From e0417504de095ab3c529a62a334106fdd7df7775 Mon Sep 17 00:00:00 2001 From: Denis Hilt Date: Wed, 19 Apr 2023 01:10:46 +0200 Subject: [PATCH 1/9] Update webpack dependencies --- package-lock.json | 14391 ++++++++++++++++++++------------------------ package.json | 12 +- 2 files changed, 6578 insertions(+), 7825 deletions(-) diff --git a/package-lock.json b/package-lock.json index 107c1b2..5b04ecf 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,2163 +1,2983 @@ { "name": "angular-ui-scroll", - "version": "1.8.1", - "lockfileVersion": 1, + "version": "1.8.2", + "lockfileVersion": 3, "requires": true, - "dependencies": { - "@babel/code-frame": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.0.0.tgz", - "integrity": "sha512-OfC2uemaknXr87bdLUkWog7nYuliM9Ij5HUcajsVcMCpQrcLmtxRbVFTIqmcSkSeYRBFBRxs2FiUqFJDLdiebA==", - "dev": true, - "requires": { - "@babel/highlight": "^7.0.0" - } - }, - "@babel/core": { - "version": "7.3.3", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.3.3.tgz", - "integrity": "sha512-w445QGI2qd0E0GlSnq6huRZWPMmQGCp5gd5ZWS4hagn0EiwzxD5QMFkpchyusAyVC1n27OKXzQ0/88aVU9n4xQ==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.0.0", - "@babel/generator": "^7.3.3", - "@babel/helpers": "^7.2.0", - "@babel/parser": "^7.3.3", - "@babel/template": "^7.2.2", - "@babel/traverse": "^7.2.2", - "@babel/types": "^7.3.3", - "convert-source-map": "^1.1.0", - "debug": "^4.1.0", - "json5": "^2.1.0", - "lodash": "^4.17.11", - "resolve": "^1.3.2", - "semver": "^5.4.1", - "source-map": "^0.5.0" + "packages": { + "": { + "name": "angular-ui-scroll", + "version": "1.8.2", + "license": "MIT", + "devDependencies": { + "@babel/core": "^7.3.3", + "@babel/preset-env": "^7.3.1", + "babel-loader": "^8.1.0", + "clean-webpack-plugin": "^4.0.0", + "copy-webpack-plugin": "^6.1.1", + "jasmine-core": "^2.8.0", + "jshint": "^2.10.1", + "karma": "^5.0.5", + "karma-chrome-launcher": "^2.2.0", + "karma-firefox-launcher": "^1.1.0", + "karma-jasmine": "^2.0.1", + "karma-sourcemap-loader": "^0.3.7", + "karma-webpack": "^5.0.0", + "npm-run-all": "^4.1.2", + "terser-webpack-plugin": "^4.2.2", + "webpack": "^5.79.0", + "webpack-cli": "^5.0.1", + "webpack-dev-server": "^4.13.3" + }, + "peerDependencies": { + "angular": ">=1.2.0" } }, - "@babel/generator": { - "version": "7.3.3", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.3.3.tgz", - "integrity": "sha512-aEADYwRRZjJyMnKN7llGIlircxTCofm3dtV5pmY6ob18MSIuipHpA2yZWkPlycwu5HJcx/pADS3zssd8eY7/6A==", + "node_modules/@ampproject/remapping": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.1.tgz", + "integrity": "sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==", "dev": true, - "requires": { - "@babel/types": "^7.3.3", - "jsesc": "^2.5.1", - "lodash": "^4.17.11", - "source-map": "^0.5.0", - "trim-right": "^1.0.1" + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.0", + "@jridgewell/trace-mapping": "^0.3.9" + }, + "engines": { + "node": ">=6.0.0" } }, - "@babel/helper-annotate-as-pure": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.0.0.tgz", - "integrity": "sha512-3UYcJUj9kvSLbLbUIfQTqzcy5VX7GRZ/CCDrnOaZorFFM01aXp1+GJwuFGV4NDDoAS+mOUyHcO6UD/RfqOks3Q==", + "node_modules/@babel/code-frame": { + "version": "7.21.4", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.21.4.tgz", + "integrity": "sha512-LYvhNKfwWSPpocw8GI7gpK2nq3HSDuEPC/uSYaALSJu9xjsalaaYFOq0Pwt5KmVqwEbZlDu81aLXwBOmD/Fv9g==", "dev": true, - "requires": { - "@babel/types": "^7.0.0" + "dependencies": { + "@babel/highlight": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" } }, - "@babel/helper-builder-binary-assignment-operator-visitor": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.1.0.tgz", - "integrity": "sha512-qNSR4jrmJ8M1VMM9tibvyRAHXQs2PmaksQF7c1CGJNipfe3D8p+wgNwgso/P2A2r2mdgBWAXljNWR0QRZAMW8w==", + "node_modules/@babel/compat-data": { + "version": "7.21.4", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.21.4.tgz", + "integrity": "sha512-/DYyDpeCfaVinT40FPGdkkb+lYSKvsVuMjDAG7jPOWWiM1ibOaB9CXJAlc4d1QpP/U2q2P9jbrSlClKSErd55g==", "dev": true, - "requires": { - "@babel/helper-explode-assignable-expression": "^7.1.0", - "@babel/types": "^7.0.0" + "engines": { + "node": ">=6.9.0" } }, - "@babel/helper-call-delegate": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/@babel/helper-call-delegate/-/helper-call-delegate-7.1.0.tgz", - "integrity": "sha512-YEtYZrw3GUK6emQHKthltKNZwszBcHK58Ygcis+gVUrF4/FmTVr5CCqQNSfmvg2y+YDEANyYoaLz/SHsnusCwQ==", + "node_modules/@babel/core": { + "version": "7.21.4", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.21.4.tgz", + "integrity": "sha512-qt/YV149Jman/6AfmlxJ04LMIu8bMoyl3RB91yTFrxQmgbrSvQMy7cI8Q62FHx1t8wJ8B5fu0UDoLwHAhUo1QA==", "dev": true, - "requires": { - "@babel/helper-hoist-variables": "^7.0.0", - "@babel/traverse": "^7.1.0", - "@babel/types": "^7.0.0" + "dependencies": { + "@ampproject/remapping": "^2.2.0", + "@babel/code-frame": "^7.21.4", + "@babel/generator": "^7.21.4", + "@babel/helper-compilation-targets": "^7.21.4", + "@babel/helper-module-transforms": "^7.21.2", + "@babel/helpers": "^7.21.0", + "@babel/parser": "^7.21.4", + "@babel/template": "^7.20.7", + "@babel/traverse": "^7.21.4", + "@babel/types": "^7.21.4", + "convert-source-map": "^1.7.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.2", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" } }, - "@babel/helper-create-regexp-features-plugin": { - "version": "7.8.8", - "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.8.8.tgz", - "integrity": "sha512-LYVPdwkrQEiX9+1R29Ld/wTrmQu1SSKYnuOk3g0CkcZMA1p0gsNxJFj/3gBdaJ7Cg0Fnek5z0DsMULePP7Lrqg==", + "node_modules/@babel/generator": { + "version": "7.21.4", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.21.4.tgz", + "integrity": "sha512-NieM3pVIYW2SwGzKoqfPrQsf4xGs9M9AIG3ThppsSRmO+m7eQhmI6amajKMUeIO37wFfsvnvcxQFx6x6iqxDnA==", "dev": true, - "requires": { - "@babel/helper-annotate-as-pure": "^7.8.3", - "@babel/helper-regex": "^7.8.3", - "regexpu-core": "^4.7.0" - }, "dependencies": { - "@babel/helper-annotate-as-pure": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.8.3.tgz", - "integrity": "sha512-6o+mJrZBxOoEX77Ezv9zwW7WV8DdluouRKNY/IR5u/YTMuKHgugHOzYWlYvYLpLA9nPsQCAAASpCIbjI9Mv+Uw==", - "dev": true, - "requires": { - "@babel/types": "^7.8.3" - } - }, - "@babel/helper-regex": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-regex/-/helper-regex-7.8.3.tgz", - "integrity": "sha512-BWt0QtYv/cg/NecOAZMdcn/waj/5P26DR4mVLXfFtDokSR6fyuG0Pj+e2FqtSME+MqED1khnSMulkmGl8qWiUQ==", - "dev": true, - "requires": { - "lodash": "^4.17.13" - } - }, - "@babel/types": { - "version": "7.9.6", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.9.6.tgz", - "integrity": "sha512-qxXzvBO//jO9ZnoasKF1uJzHd2+M6Q2ZPIVfnFps8JJvXy0ZBbwbNOmE6SGIY5XOY6d1Bo5lb9d9RJ8nv3WSeA==", - "dev": true, - "requires": { - "@babel/helper-validator-identifier": "^7.9.5", - "lodash": "^4.17.13", - "to-fast-properties": "^2.0.0" - } - }, - "jsesc": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", - "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=", - "dev": true - }, - "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==", - "dev": true, - "requires": { - "regenerate": "^1.4.0" - } - }, - "regexpu-core": { - "version": "4.7.0", - "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-4.7.0.tgz", - "integrity": "sha512-TQ4KXRnIn6tz6tjnrXEkD/sshygKH/j5KzK86X8MkeHyZ8qst/LZ89j3X4/8HEIfHANTFIP/AbXakeRhWIl5YQ==", - "dev": true, - "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.1", - "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.5.1.tgz", - "integrity": "sha512-5qxzGZjDs9w4tzT3TPhCJqWdCc3RLYwy9J2NB0nm5Lz+S273lvWcpjaTGHsT1dc6Hhfq41uSEOw8wBmxrKOuyg==", - "dev": true - }, - "regjsparser": { - "version": "0.6.4", - "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.6.4.tgz", - "integrity": "sha512-64O87/dPDgfk8/RQqC4gkZoGyyWFIEUTTh80CU6CWuK5vkCGyekIx+oKcEIYtP/RAxSQltCZHCNu/mdd7fqlJw==", - "dev": true, - "requires": { - "jsesc": "~0.5.0" - } - }, - "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==", - "dev": true - } + "@babel/types": "^7.21.4", + "@jridgewell/gen-mapping": "^0.3.2", + "@jridgewell/trace-mapping": "^0.3.17", + "jsesc": "^2.5.1" + }, + "engines": { + "node": ">=6.9.0" } }, - "@babel/helper-define-map": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/@babel/helper-define-map/-/helper-define-map-7.1.0.tgz", - "integrity": "sha512-yPPcW8dc3gZLN+U1mhYV91QU3n5uTbx7DUdf8NnPbjS0RMwBuHi9Xt2MUgppmNz7CJxTBWsGczTiEp1CSOTPRg==", + "node_modules/@babel/helper-annotate-as-pure": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.18.6.tgz", + "integrity": "sha512-duORpUiYrEpzKIop6iNbjnwKLAKnJ47csTyRACyEmWj0QdUrm5aqNJGHSSEQSUAvNW0ojX0dOmK9dZduvkfeXA==", "dev": true, - "requires": { - "@babel/helper-function-name": "^7.1.0", - "@babel/types": "^7.0.0", - "lodash": "^4.17.10" + "dependencies": { + "@babel/types": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" } }, - "@babel/helper-explode-assignable-expression": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.1.0.tgz", - "integrity": "sha512-NRQpfHrJ1msCHtKjbzs9YcMmJZOg6mQMmGRB+hbamEdG5PNpaSm95275VD92DvJKuyl0s2sFiDmMZ+EnnvufqA==", + "node_modules/@babel/helper-builder-binary-assignment-operator-visitor": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.18.9.tgz", + "integrity": "sha512-yFQ0YCHoIqarl8BCRwBL8ulYUaZpz3bNsA7oFepAzee+8/+ImtADXNOmO5vJvsPff3qi+hvpkY/NYBTrBQgdNw==", "dev": true, - "requires": { - "@babel/traverse": "^7.1.0", - "@babel/types": "^7.0.0" + "dependencies": { + "@babel/helper-explode-assignable-expression": "^7.18.6", + "@babel/types": "^7.18.9" + }, + "engines": { + "node": ">=6.9.0" } }, - "@babel/helper-function-name": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.1.0.tgz", - "integrity": "sha512-A95XEoCpb3TO+KZzJ4S/5uW5fNe26DjBGqf1o9ucyLyCmi1dXq/B3c8iaWTfBk3VvetUxl16e8tIrd5teOCfGw==", + "node_modules/@babel/helper-compilation-targets": { + "version": "7.21.4", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.21.4.tgz", + "integrity": "sha512-Fa0tTuOXZ1iL8IeDFUWCzjZcn+sJGd9RZdH9esYVjEejGmzf+FFYQpMi/kZUk2kPy/q1H3/GPw7np8qar/stfg==", "dev": true, - "requires": { - "@babel/helper-get-function-arity": "^7.0.0", - "@babel/template": "^7.1.0", - "@babel/types": "^7.0.0" + "dependencies": { + "@babel/compat-data": "^7.21.4", + "@babel/helper-validator-option": "^7.21.0", + "browserslist": "^4.21.3", + "lru-cache": "^5.1.1", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" } }, - "@babel/helper-get-function-arity": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.0.0.tgz", - "integrity": "sha512-r2DbJeg4svYvt3HOS74U4eWKsUAMRH01Z1ds1zx8KNTPtpTL5JAsdFv8BNyOpVqdFhHkkRDIg5B4AsxmkjAlmQ==", + "node_modules/@babel/helper-create-class-features-plugin": { + "version": "7.21.4", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.21.4.tgz", + "integrity": "sha512-46QrX2CQlaFRF4TkwfTt6nJD7IHq8539cCL7SDpqWSDeJKY1xylKKY5F/33mJhLZ3mFvKv2gGrVS6NkyF6qs+Q==", "dev": true, - "requires": { - "@babel/types": "^7.0.0" + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.18.6", + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-function-name": "^7.21.0", + "@babel/helper-member-expression-to-functions": "^7.21.0", + "@babel/helper-optimise-call-expression": "^7.18.6", + "@babel/helper-replace-supers": "^7.20.7", + "@babel/helper-skip-transparent-expression-wrappers": "^7.20.0", + "@babel/helper-split-export-declaration": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" } }, - "@babel/helper-hoist-variables": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.0.0.tgz", - "integrity": "sha512-Ggv5sldXUeSKsuzLkddtyhyHe2YantsxWKNi7A+7LeD12ExRDWTRk29JCXpaHPAbMaIPZSil7n+lq78WY2VY7w==", + "node_modules/@babel/helper-create-regexp-features-plugin": { + "version": "7.21.4", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.21.4.tgz", + "integrity": "sha512-M00OuhU+0GyZ5iBBN9czjugzWrEq2vDpf/zCYHxxf93ul/Q5rv+a5h+/+0WnI1AebHNVtl5bFV0qsJoH23DbfA==", "dev": true, - "requires": { - "@babel/types": "^7.0.0" + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.18.6", + "regexpu-core": "^5.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" } }, - "@babel/helper-member-expression-to-functions": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.0.0.tgz", - "integrity": "sha512-avo+lm/QmZlv27Zsi0xEor2fKcqWG56D5ae9dzklpIaY7cQMK5N8VSpaNVPPagiqmy7LrEjK1IWdGMOqPu5csg==", + "node_modules/@babel/helper-define-polyfill-provider": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.3.tgz", + "integrity": "sha512-z5aQKU4IzbqCC1XH0nAqfsFLMVSo22SBKUc0BxGrLkolTdPTructy0ToNnlO2zA4j9Q/7pjMZf0DSY+DSTYzww==", "dev": true, - "requires": { - "@babel/types": "^7.0.0" + "dependencies": { + "@babel/helper-compilation-targets": "^7.17.7", + "@babel/helper-plugin-utils": "^7.16.7", + "debug": "^4.1.1", + "lodash.debounce": "^4.0.8", + "resolve": "^1.14.2", + "semver": "^6.1.2" + }, + "peerDependencies": { + "@babel/core": "^7.4.0-0" } }, - "@babel/helper-module-imports": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.0.0.tgz", - "integrity": "sha512-aP/hlLq01DWNEiDg4Jn23i+CXxW/owM4WpDLFUbpjxe4NS3BhLVZQ5i7E0ZrxuQ/vwekIeciyamgB1UIYxxM6A==", + "node_modules/@babel/helper-environment-visitor": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz", + "integrity": "sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==", "dev": true, - "requires": { - "@babel/types": "^7.0.0" + "engines": { + "node": ">=6.9.0" } }, - "@babel/helper-module-transforms": { - "version": "7.2.2", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.2.2.tgz", - "integrity": "sha512-YRD7I6Wsv+IHuTPkAmAS4HhY0dkPobgLftHp0cRGZSdrRvmZY8rFvae/GVu3bD00qscuvK3WPHB3YdNpBXUqrA==", + "node_modules/@babel/helper-explode-assignable-expression": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.18.6.tgz", + "integrity": "sha512-eyAYAsQmB80jNfg4baAtLeWAQHfHFiR483rzFK+BhETlGZaQC9bsfrugfXDCbRHLQbIA7U5NxhhOxN7p/dWIcg==", "dev": true, - "requires": { - "@babel/helper-module-imports": "^7.0.0", - "@babel/helper-simple-access": "^7.1.0", - "@babel/helper-split-export-declaration": "^7.0.0", - "@babel/template": "^7.2.2", - "@babel/types": "^7.2.2", - "lodash": "^4.17.10" + "dependencies": { + "@babel/types": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" } }, - "@babel/helper-optimise-call-expression": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.0.0.tgz", - "integrity": "sha512-u8nd9NQePYNQV8iPWu/pLLYBqZBa4ZaY1YWRFMuxrid94wKI1QNt67NEZ7GAe5Kc/0LLScbim05xZFWkAdrj9g==", + "node_modules/@babel/helper-function-name": { + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.21.0.tgz", + "integrity": "sha512-HfK1aMRanKHpxemaY2gqBmL04iAPOPRj7DxtNbiDOrJK+gdwkiNRVpCpUJYbUT+aZyemKN8brqTOxzCaG6ExRg==", "dev": true, - "requires": { - "@babel/types": "^7.0.0" + "dependencies": { + "@babel/template": "^7.20.7", + "@babel/types": "^7.21.0" + }, + "engines": { + "node": ">=6.9.0" } }, - "@babel/helper-plugin-utils": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.0.0.tgz", - "integrity": "sha512-CYAOUCARwExnEixLdB6sDm2dIJ/YgEAKDM1MOeMeZu9Ld/bDgVo8aiWrXwcY7OBh+1Ea2uUcVRcxKk0GJvW7QA==", - "dev": true - }, - "@babel/helper-regex": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@babel/helper-regex/-/helper-regex-7.0.0.tgz", - "integrity": "sha512-TR0/N0NDCcUIUEbqV6dCO+LptmmSQFQ7q70lfcEB4URsjD0E1HzicrwUH+ap6BAQ2jhCX9Q4UqZy4wilujWlkg==", + "node_modules/@babel/helper-hoist-variables": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz", + "integrity": "sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==", "dev": true, - "requires": { - "lodash": "^4.17.10" + "dependencies": { + "@babel/types": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" } }, - "@babel/helper-remap-async-to-generator": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.1.0.tgz", - "integrity": "sha512-3fOK0L+Fdlg8S5al8u/hWE6vhufGSn0bN09xm2LXMy//REAF8kDCrYoOBKYmA8m5Nom+sV9LyLCwrFynA8/slg==", + "node_modules/@babel/helper-member-expression-to-functions": { + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.21.0.tgz", + "integrity": "sha512-Muu8cdZwNN6mRRNG6lAYErJ5X3bRevgYR2O8wN0yn7jJSnGDu6eG59RfT29JHxGUovyfrh6Pj0XzmR7drNVL3Q==", "dev": true, - "requires": { - "@babel/helper-annotate-as-pure": "^7.0.0", - "@babel/helper-wrap-function": "^7.1.0", - "@babel/template": "^7.1.0", - "@babel/traverse": "^7.1.0", - "@babel/types": "^7.0.0" + "dependencies": { + "@babel/types": "^7.21.0" + }, + "engines": { + "node": ">=6.9.0" } }, - "@babel/helper-replace-supers": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.2.3.tgz", - "integrity": "sha512-GyieIznGUfPXPWu0yLS6U55Mz67AZD9cUk0BfirOWlPrXlBcan9Gz+vHGz+cPfuoweZSnPzPIm67VtQM0OWZbA==", + "node_modules/@babel/helper-module-imports": { + "version": "7.21.4", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.21.4.tgz", + "integrity": "sha512-orajc5T2PsRYUN3ZryCEFeMDYwyw09c/pZeaQEZPH0MpKzSvn3e0uXsDBu3k03VI+9DBiRo+l22BfKTpKwa/Wg==", "dev": true, - "requires": { - "@babel/helper-member-expression-to-functions": "^7.0.0", - "@babel/helper-optimise-call-expression": "^7.0.0", - "@babel/traverse": "^7.2.3", - "@babel/types": "^7.0.0" + "dependencies": { + "@babel/types": "^7.21.4" + }, + "engines": { + "node": ">=6.9.0" } }, - "@babel/helper-simple-access": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.1.0.tgz", - "integrity": "sha512-Vk+78hNjRbsiu49zAPALxTb+JUQCz1aolpd8osOF16BGnLtseD21nbHgLPGUwrXEurZgiCOUmvs3ExTu4F5x6w==", + "node_modules/@babel/helper-module-transforms": { + "version": "7.21.2", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.21.2.tgz", + "integrity": "sha512-79yj2AR4U/Oqq/WOV7Lx6hUjau1Zfo4cI+JLAVYeMV5XIlbOhmjEk5ulbTc9fMpmlojzZHkUUxAiK+UKn+hNQQ==", "dev": true, - "requires": { - "@babel/template": "^7.1.0", - "@babel/types": "^7.0.0" + "dependencies": { + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-module-imports": "^7.18.6", + "@babel/helper-simple-access": "^7.20.2", + "@babel/helper-split-export-declaration": "^7.18.6", + "@babel/helper-validator-identifier": "^7.19.1", + "@babel/template": "^7.20.7", + "@babel/traverse": "^7.21.2", + "@babel/types": "^7.21.2" + }, + "engines": { + "node": ">=6.9.0" } }, - "@babel/helper-split-export-declaration": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.0.0.tgz", - "integrity": "sha512-MXkOJqva62dfC0w85mEf/LucPPS/1+04nmmRMPEBUB++hiiThQ2zPtX/mEWQ3mtzCEjIJvPY8nuwxXtQeQwUag==", + "node_modules/@babel/helper-optimise-call-expression": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.18.6.tgz", + "integrity": "sha512-HP59oD9/fEHQkdcbgFCnbmgH5vIQTJbxh2yf+CdM89/glUNnuzr87Q8GIjGEnOktTROemO0Pe0iPAYbqZuOUiA==", "dev": true, - "requires": { - "@babel/types": "^7.0.0" + "dependencies": { + "@babel/types": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" } }, - "@babel/helper-validator-identifier": { - "version": "7.9.5", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.9.5.tgz", - "integrity": "sha512-/8arLKUFq882w4tWGj9JYzRpAlZgiWUJ+dtteNTDqrRBz9Iguck9Rn3ykuBDoUwh2TO4tSAJlrxDUOXWklJe4g==", - "dev": true - }, - "@babel/helper-wrap-function": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.2.0.tgz", - "integrity": "sha512-o9fP1BZLLSrYlxYEYyl2aS+Flun5gtjTIG8iln+XuEzQTs0PLagAGSXUcqruJwD5fM48jzIEggCKpIfWTcR7pQ==", + "node_modules/@babel/helper-plugin-utils": { + "version": "7.20.2", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.20.2.tgz", + "integrity": "sha512-8RvlJG2mj4huQ4pZ+rU9lqKi9ZKiRmuvGuM2HlWmkmgOhbs6zEAw6IEiJ5cQqGbDzGZOhwuOQNtZMi/ENLjZoQ==", "dev": true, - "requires": { - "@babel/helper-function-name": "^7.1.0", - "@babel/template": "^7.1.0", - "@babel/traverse": "^7.1.0", - "@babel/types": "^7.2.0" + "engines": { + "node": ">=6.9.0" } }, - "@babel/helpers": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.3.1.tgz", - "integrity": "sha512-Q82R3jKsVpUV99mgX50gOPCWwco9Ec5Iln/8Vyu4osNIOQgSrd9RFrQeUvmvddFNoLwMyOUWU+5ckioEKpDoGA==", + "node_modules/@babel/helper-remap-async-to-generator": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.18.9.tgz", + "integrity": "sha512-dI7q50YKd8BAv3VEfgg7PS7yD3Rtbi2J1XMXaalXO0W0164hYLnh8zpjRS0mte9MfVp/tltvr/cfdXPvJr1opA==", "dev": true, - "requires": { - "@babel/template": "^7.1.2", - "@babel/traverse": "^7.1.5", - "@babel/types": "^7.3.0" + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.18.6", + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-wrap-function": "^7.18.9", + "@babel/types": "^7.18.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" } }, - "@babel/highlight": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.0.0.tgz", - "integrity": "sha512-UFMC4ZeFC48Tpvj7C8UgLvtkaUuovQX+5xNWrsIoMG8o2z+XFKjKaN9iVmS84dPwVN00W4wPmqvYoZF3EGAsfw==", + "node_modules/@babel/helper-replace-supers": { + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.20.7.tgz", + "integrity": "sha512-vujDMtB6LVfNW13jhlCrp48QNslK6JXi7lQG736HVbHz/mbf4Dc7tIRh1Xf5C0rF7BP8iiSxGMCmY6Ci1ven3A==", "dev": true, - "requires": { - "chalk": "^2.0.0", - "esutils": "^2.0.2", - "js-tokens": "^4.0.0" + "dependencies": { + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-member-expression-to-functions": "^7.20.7", + "@babel/helper-optimise-call-expression": "^7.18.6", + "@babel/template": "^7.20.7", + "@babel/traverse": "^7.20.7", + "@babel/types": "^7.20.7" + }, + "engines": { + "node": ">=6.9.0" } }, - "@babel/parser": { - "version": "7.3.3", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.3.3.tgz", - "integrity": "sha512-xsH1CJoln2r74hR+y7cg2B5JCPaTh+Hd+EbBRk9nWGSNspuo6krjhX0Om6RnRQuIvFq8wVXCLKH3kwKDYhanSg==", - "dev": true - }, - "@babel/plugin-proposal-async-generator-functions": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.2.0.tgz", - "integrity": "sha512-+Dfo/SCQqrwx48ptLVGLdE39YtWRuKc/Y9I5Fy0P1DDBB9lsAHpjcEJQt+4IifuSOSTLBKJObJqMvaO1pIE8LQ==", + "node_modules/@babel/helper-simple-access": { + "version": "7.20.2", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.20.2.tgz", + "integrity": "sha512-+0woI/WPq59IrqDYbVGfshjT5Dmk/nnbdpcF8SnMhhXObpTq2KNBdLFRFrkVdbDOyUmHBCxzm5FHV1rACIkIbA==", "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/helper-remap-async-to-generator": "^7.1.0", - "@babel/plugin-syntax-async-generators": "^7.2.0" + "dependencies": { + "@babel/types": "^7.20.2" + }, + "engines": { + "node": ">=6.9.0" } }, - "@babel/plugin-proposal-json-strings": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.2.0.tgz", - "integrity": "sha512-MAFV1CA/YVmYwZG0fBQyXhmj0BHCB5egZHCKWIFVv/XCxAeVGIHfos3SwDck4LvCllENIAg7xMKOG5kH0dzyUg==", + "node_modules/@babel/helper-skip-transparent-expression-wrappers": { + "version": "7.20.0", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.20.0.tgz", + "integrity": "sha512-5y1JYeNKfvnT8sZcK9DVRtpTbGiomYIHviSP3OQWmDPU3DeH4a1ZlT/N2lyQ5P8egjcRaT/Y9aNqUxK0WsnIIg==", "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/plugin-syntax-json-strings": "^7.2.0" + "dependencies": { + "@babel/types": "^7.20.0" + }, + "engines": { + "node": ">=6.9.0" } }, - "@babel/plugin-proposal-object-rest-spread": { - "version": "7.3.2", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.3.2.tgz", - "integrity": "sha512-DjeMS+J2+lpANkYLLO+m6GjoTMygYglKmRe6cDTbFv3L9i6mmiE8fe6B8MtCSLZpVXscD5kn7s6SgtHrDoBWoA==", + "node_modules/@babel/helper-split-export-declaration": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz", + "integrity": "sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==", "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/plugin-syntax-object-rest-spread": "^7.2.0" + "dependencies": { + "@babel/types": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" } }, - "@babel/plugin-proposal-optional-catch-binding": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.2.0.tgz", - "integrity": "sha512-mgYj3jCcxug6KUcX4OBoOJz3CMrwRfQELPQ5560F70YQUBZB7uac9fqaWamKR1iWUzGiK2t0ygzjTScZnVz75g==", + "node_modules/@babel/helper-string-parser": { + "version": "7.19.4", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.19.4.tgz", + "integrity": "sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw==", "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/plugin-syntax-optional-catch-binding": "^7.2.0" + "engines": { + "node": ">=6.9.0" } }, - "@babel/plugin-proposal-unicode-property-regex": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.2.0.tgz", - "integrity": "sha512-LvRVYb7kikuOtIoUeWTkOxQEV1kYvL5B6U3iWEGCzPNRus1MzJweFqORTj+0jkxozkTSYNJozPOddxmqdqsRpw==", + "node_modules/@babel/helper-validator-identifier": { + "version": "7.19.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz", + "integrity": "sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==", "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/helper-regex": "^7.0.0", - "regexpu-core": "^4.2.0" + "engines": { + "node": ">=6.9.0" } }, - "@babel/plugin-syntax-async-generators": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.2.0.tgz", - "integrity": "sha512-1ZrIRBv2t0GSlcwVoQ6VgSLpLgiN/FVQUzt9znxo7v2Ov4jJrs8RY8tv0wvDmFN3qIdMKWrmMMW6yZ0G19MfGg==", + "node_modules/@babel/helper-validator-option": { + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.21.0.tgz", + "integrity": "sha512-rmL/B8/f0mKS2baE9ZpyTcTavvEuWhTTW8amjzXNvYG4AwBsqTLikfXsEofsJEfKHf+HQVQbFOHy6o+4cnC/fQ==", "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.0.0" + "engines": { + "node": ">=6.9.0" } }, - "@babel/plugin-syntax-json-strings": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.2.0.tgz", - "integrity": "sha512-5UGYnMSLRE1dqqZwug+1LISpA403HzlSfsg6P9VXU6TBjcSHeNlw4DxDx7LgpF+iKZoOG/+uzqoRHTdcUpiZNg==", + "node_modules/@babel/helper-wrap-function": { + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.20.5.tgz", + "integrity": "sha512-bYMxIWK5mh+TgXGVqAtnu5Yn1un+v8DDZtqyzKRLUzrh70Eal2O3aZ7aPYiMADO4uKlkzOiRiZ6GX5q3qxvW9Q==", "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.0.0" + "dependencies": { + "@babel/helper-function-name": "^7.19.0", + "@babel/template": "^7.18.10", + "@babel/traverse": "^7.20.5", + "@babel/types": "^7.20.5" + }, + "engines": { + "node": ">=6.9.0" } }, - "@babel/plugin-syntax-object-rest-spread": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.2.0.tgz", - "integrity": "sha512-t0JKGgqk2We+9may3t0xDdmneaXmyxq0xieYcKHxIsrJO64n1OiMWNUtc5gQK1PA0NpdCRrtZp4z+IUaKugrSA==", + "node_modules/@babel/helpers": { + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.21.0.tgz", + "integrity": "sha512-XXve0CBtOW0pd7MRzzmoyuSj0e3SEzj8pgyFxnTT1NJZL38BD1MK7yYrm8yefRPIDvNNe14xR4FdbHwpInD4rA==", "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.0.0" + "dependencies": { + "@babel/template": "^7.20.7", + "@babel/traverse": "^7.21.0", + "@babel/types": "^7.21.0" + }, + "engines": { + "node": ">=6.9.0" } }, - "@babel/plugin-syntax-optional-catch-binding": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.2.0.tgz", - "integrity": "sha512-bDe4xKNhb0LI7IvZHiA13kff0KEfaGX/Hv4lMA9+7TEc63hMNvfKo6ZFpXhKuEp+II/q35Gc4NoMeDZyaUbj9w==", + "node_modules/@babel/highlight": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz", + "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==", "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.0.0" + "dependencies": { + "@babel/helper-validator-identifier": "^7.18.6", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + }, + "engines": { + "node": ">=6.9.0" } }, - "@babel/plugin-transform-arrow-functions": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.2.0.tgz", - "integrity": "sha512-ER77Cax1+8/8jCB9fo4Ud161OZzWN5qawi4GusDuRLcDbDG+bIGYY20zb2dfAFdTRGzrfq2xZPvF0R64EHnimg==", + "node_modules/@babel/parser": { + "version": "7.21.4", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.21.4.tgz", + "integrity": "sha512-alVJj7k7zIxqBZ7BTRhz0IqJFxW1VJbm6N8JbcYhQ186df9ZBPbZBmWSqAMXwHGsCJdYks7z/voa3ibiS5bCIw==", "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.0.0" + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" } }, - "@babel/plugin-transform-async-to-generator": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.2.0.tgz", - "integrity": "sha512-CEHzg4g5UraReozI9D4fblBYABs7IM6UerAVG7EJVrTLC5keh00aEuLUT+O40+mJCEzaXkYfTCUKIyeDfMOFFQ==", + "node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.18.6.tgz", + "integrity": "sha512-Dgxsyg54Fx1d4Nge8UnvTrED63vrwOdPmyvPzlNN/boaliRP54pm3pGzZD1SJUwrBA+Cs/xdG8kXX6Mn/RfISQ==", "dev": true, - "requires": { - "@babel/helper-module-imports": "^7.0.0", - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/helper-remap-async-to-generator": "^7.1.0" + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" } }, - "@babel/plugin-transform-block-scoped-functions": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.2.0.tgz", - "integrity": "sha512-ntQPR6q1/NKuphly49+QiQiTN0O63uOwjdD6dhIjSWBI5xlrbUFh720TIpzBhpnrLfv2tNH/BXvLIab1+BAI0w==", + "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.20.7.tgz", + "integrity": "sha512-sbr9+wNE5aXMBBFBICk01tt7sBf2Oc9ikRFEcem/ZORup9IMUdNhW7/wVLEbbtlWOsEubJet46mHAL2C8+2jKQ==", "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.0.0" + "dependencies": { + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/helper-skip-transparent-expression-wrappers": "^7.20.0", + "@babel/plugin-proposal-optional-chaining": "^7.20.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.13.0" } }, - "@babel/plugin-transform-block-scoping": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.2.0.tgz", - "integrity": "sha512-vDTgf19ZEV6mx35yiPJe4fS02mPQUUcBNwWQSZFXSzTSbsJFQvHt7DqyS3LK8oOWALFOsJ+8bbqBgkirZteD5Q==", + "node_modules/@babel/plugin-proposal-async-generator-functions": { + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.20.7.tgz", + "integrity": "sha512-xMbiLsn/8RK7Wq7VeVytytS2L6qE69bXPB10YCmMdDZbKF4okCqY74pI/jJQ/8U0b/F6NrT2+14b8/P9/3AMGA==", "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.0.0", - "lodash": "^4.17.10" + "dependencies": { + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/helper-remap-async-to-generator": "^7.18.9", + "@babel/plugin-syntax-async-generators": "^7.8.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-transform-classes": { - "version": "7.3.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.3.3.tgz", - "integrity": "sha512-n0CLbsg7KOXsMF4tSTLCApNMoXk0wOPb0DYfsOO1e7SfIb9gOyfbpKI2MZ+AXfqvlfzq2qsflJ1nEns48Caf2w==", + "node_modules/@babel/plugin-proposal-class-properties": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.18.6.tgz", + "integrity": "sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ==", "dev": true, - "requires": { - "@babel/helper-annotate-as-pure": "^7.0.0", - "@babel/helper-define-map": "^7.1.0", - "@babel/helper-function-name": "^7.1.0", - "@babel/helper-optimise-call-expression": "^7.0.0", - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/helper-replace-supers": "^7.1.0", - "@babel/helper-split-export-declaration": "^7.0.0", - "globals": "^11.1.0" + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-transform-computed-properties": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.2.0.tgz", - "integrity": "sha512-kP/drqTxY6Xt3NNpKiMomfgkNn4o7+vKxK2DDKcBG9sHj51vHqMBGy8wbDS/J4lMxnqs153/T3+DmCEAkC5cpA==", + "node_modules/@babel/plugin-proposal-class-static-block": { + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.21.0.tgz", + "integrity": "sha512-XP5G9MWNUskFuP30IfFSEFB0Z6HzLIUcjYM4bYOPHXl7eiJ9HFv8tWj6TXTN5QODiEhDZAeI4hLok2iHFFV4hw==", "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.0.0" + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.21.0", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/plugin-syntax-class-static-block": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.12.0" } }, - "@babel/plugin-transform-destructuring": { - "version": "7.3.2", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.3.2.tgz", - "integrity": "sha512-Lrj/u53Ufqxl/sGxyjsJ2XNtNuEjDyjpqdhMNh5aZ+XFOdThL46KBj27Uem4ggoezSYBxKWAil6Hu8HtwqesYw==", + "node_modules/@babel/plugin-proposal-dynamic-import": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.18.6.tgz", + "integrity": "sha512-1auuwmK+Rz13SJj36R+jqFPMJWyKEDd7lLSdOj4oJK0UTgGueSAtkrCvz9ewmgyU/P941Rv2fQwZJN8s6QruXw==", "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.0.0" + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/plugin-syntax-dynamic-import": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-transform-dotall-regex": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.2.0.tgz", - "integrity": "sha512-sKxnyHfizweTgKZf7XsXu/CNupKhzijptfTM+bozonIuyVrLWVUvYjE2bhuSBML8VQeMxq4Mm63Q9qvcvUcciQ==", + "node_modules/@babel/plugin-proposal-export-namespace-from": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.18.9.tgz", + "integrity": "sha512-k1NtHyOMvlDDFeb9G5PhUXuGj8m/wiwojgQVEhJ/fsVsMCpLyOP4h0uGEjYJKrRI+EVPlb5Jk+Gt9P97lOGwtA==", "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/helper-regex": "^7.0.0", - "regexpu-core": "^4.1.3" + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.9", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-transform-duplicate-keys": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.2.0.tgz", - "integrity": "sha512-q+yuxW4DsTjNceUiTzK0L+AfQ0zD9rWaTLiUqHA8p0gxx7lu1EylenfzjeIWNkPy6e/0VG/Wjw9uf9LueQwLOw==", + "node_modules/@babel/plugin-proposal-json-strings": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.18.6.tgz", + "integrity": "sha512-lr1peyn9kOdbYc0xr0OdHTZ5FMqS6Di+H0Fz2I/JwMzGmzJETNeOFq2pBySw6X/KFL5EWDjlJuMsUGRFb8fQgQ==", "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.0.0" + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/plugin-syntax-json-strings": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-transform-exponentiation-operator": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.2.0.tgz", - "integrity": "sha512-umh4hR6N7mu4Elq9GG8TOu9M0bakvlsREEC+ialrQN6ABS4oDQ69qJv1VtR3uxlKMCQMCvzk7vr17RHKcjx68A==", + "node_modules/@babel/plugin-proposal-logical-assignment-operators": { + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.20.7.tgz", + "integrity": "sha512-y7C7cZgpMIjWlKE5T7eJwp+tnRYM89HmRvWM5EQuB5BoHEONjmQ8lSNmBUwOyy/GFRsohJED51YBF79hE1djug==", "dev": true, - "requires": { - "@babel/helper-builder-binary-assignment-operator-visitor": "^7.1.0", - "@babel/helper-plugin-utils": "^7.0.0" + "dependencies": { + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-transform-for-of": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.2.0.tgz", - "integrity": "sha512-Kz7Mt0SsV2tQk6jG5bBv5phVbkd0gd27SgYD4hH1aLMJRchM0dzHaXvrWhVZ+WxAlDoAKZ7Uy3jVTW2mKXQ1WQ==", + "node_modules/@babel/plugin-proposal-nullish-coalescing-operator": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.18.6.tgz", + "integrity": "sha512-wQxQzxYeJqHcfppzBDnm1yAY0jSRkUXR2z8RePZYrKwMKgMlE8+Z6LUno+bd6LvbGh8Gltvy74+9pIYkr+XkKA==", "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.0.0" + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-transform-function-name": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.2.0.tgz", - "integrity": "sha512-kWgksow9lHdvBC2Z4mxTsvc7YdY7w/V6B2vy9cTIPtLEE9NhwoWivaxdNM/S37elu5bqlLP/qOY906LukO9lkQ==", + "node_modules/@babel/plugin-proposal-numeric-separator": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.18.6.tgz", + "integrity": "sha512-ozlZFogPqoLm8WBr5Z8UckIoE4YQ5KESVcNudyXOR8uqIkliTEgJ3RoketfG6pmzLdeZF0H/wjE9/cCEitBl7Q==", "dev": true, - "requires": { - "@babel/helper-function-name": "^7.1.0", - "@babel/helper-plugin-utils": "^7.0.0" + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/plugin-syntax-numeric-separator": "^7.10.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-transform-literals": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.2.0.tgz", - "integrity": "sha512-2ThDhm4lI4oV7fVQ6pNNK+sx+c/GM5/SaML0w/r4ZB7sAneD/piDJtwdKlNckXeyGK7wlwg2E2w33C/Hh+VFCg==", + "node_modules/@babel/plugin-proposal-object-rest-spread": { + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.20.7.tgz", + "integrity": "sha512-d2S98yCiLxDVmBmE8UjGcfPvNEUbA1U5q5WxaWFUGRzJSVAZqm5W6MbPct0jxnegUZ0niLeNX+IOzEs7wYg9Dg==", "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.0.0" + "dependencies": { + "@babel/compat-data": "^7.20.5", + "@babel/helper-compilation-targets": "^7.20.7", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-transform-parameters": "^7.20.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-transform-modules-amd": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.2.0.tgz", - "integrity": "sha512-mK2A8ucqz1qhrdqjS9VMIDfIvvT2thrEsIQzbaTdc5QFzhDjQv2CkJJ5f6BXIkgbmaoax3zBr2RyvV/8zeoUZw==", + "node_modules/@babel/plugin-proposal-optional-catch-binding": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.18.6.tgz", + "integrity": "sha512-Q40HEhs9DJQyaZfUjjn6vE8Cv4GmMHCYuMGIWUnlxH6400VGxOuwWsPt4FxXxJkC/5eOzgn0z21M9gMT4MOhbw==", "dev": true, - "requires": { - "@babel/helper-module-transforms": "^7.1.0", - "@babel/helper-plugin-utils": "^7.0.0" + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-transform-modules-commonjs": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.2.0.tgz", - "integrity": "sha512-V6y0uaUQrQPXUrmj+hgnks8va2L0zcZymeU7TtWEgdRLNkceafKXEduv7QzgQAE4lT+suwooG9dC7LFhdRAbVQ==", + "node_modules/@babel/plugin-proposal-optional-chaining": { + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.21.0.tgz", + "integrity": "sha512-p4zeefM72gpmEe2fkUr/OnOXpWEf8nAgk7ZYVqqfFiyIG7oFfVZcCrU64hWn5xp4tQ9LkV4bTIa5rD0KANpKNA==", "dev": true, - "requires": { - "@babel/helper-module-transforms": "^7.1.0", - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/helper-simple-access": "^7.1.0" + "dependencies": { + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/helper-skip-transparent-expression-wrappers": "^7.20.0", + "@babel/plugin-syntax-optional-chaining": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-transform-modules-systemjs": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.2.0.tgz", - "integrity": "sha512-aYJwpAhoK9a+1+O625WIjvMY11wkB/ok0WClVwmeo3mCjcNRjt+/8gHWrB5i+00mUju0gWsBkQnPpdvQ7PImmQ==", + "node_modules/@babel/plugin-proposal-private-methods": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.18.6.tgz", + "integrity": "sha512-nutsvktDItsNn4rpGItSNV2sz1XwS+nfU0Rg8aCx3W3NOKVzdMjJRu0O5OkgDp3ZGICSTbgRpxZoWsxoKRvbeA==", "dev": true, - "requires": { - "@babel/helper-hoist-variables": "^7.0.0", - "@babel/helper-plugin-utils": "^7.0.0" + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-transform-modules-umd": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.2.0.tgz", - "integrity": "sha512-BV3bw6MyUH1iIsGhXlOK6sXhmSarZjtJ/vMiD9dNmpY8QXFFQTj+6v92pcfy1iqa8DeAfJFwoxcrS/TUZda6sw==", + "node_modules/@babel/plugin-proposal-private-property-in-object": { + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0.tgz", + "integrity": "sha512-ha4zfehbJjc5MmXBlHec1igel5TJXXLDDRbuJ4+XT2TJcyD9/V1919BA8gMvsdHcNMBy4WBUBiRb3nw/EQUtBw==", "dev": true, - "requires": { - "@babel/helper-module-transforms": "^7.1.0", - "@babel/helper-plugin-utils": "^7.0.0" + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.18.6", + "@babel/helper-create-class-features-plugin": "^7.21.0", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-transform-named-capturing-groups-regex": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.8.3.tgz", - "integrity": "sha512-f+tF/8UVPU86TrCb06JoPWIdDpTNSGGcAtaD9mLP0aYGA0OS0j7j7DHJR0GTFrUZPUU6loZhbsVZgTh0N+Qdnw==", + "node_modules/@babel/plugin-proposal-unicode-property-regex": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.18.6.tgz", + "integrity": "sha512-2BShG/d5yoZyXZfVePH91urL5wTG6ASZU9M4o03lKK8u8UW1y08OMttBSOADTcJrnPMpvDXRG3G8fyLh4ovs8w==", "dev": true, - "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.8.3" + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-transform-new-target": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.0.0.tgz", - "integrity": "sha512-yin069FYjah+LbqfGeTfzIBODex/e++Yfa0rH0fpfam9uTbuEeEOx5GLGr210ggOV77mVRNoeqSYqeuaqSzVSw==", + "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==", "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.0.0" + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-transform-object-super": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.2.0.tgz", - "integrity": "sha512-VMyhPYZISFZAqAPVkiYb7dUe2AsVi2/wCT5+wZdsNO31FojQJa9ns40hzZ6U9f50Jlq4w6qwzdBB2uwqZ00ebg==", + "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==", "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/helper-replace-supers": "^7.1.0" + "dependencies": { + "@babel/helper-plugin-utils": "^7.12.13" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-transform-parameters": { - "version": "7.3.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.3.3.tgz", - "integrity": "sha512-IrIP25VvXWu/VlBWTpsjGptpomtIkYrN/3aDp4UKm7xK6UxZY88kcJ1UwETbzHAlwN21MnNfwlar0u8y3KpiXw==", + "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==", "dev": true, - "requires": { - "@babel/helper-call-delegate": "^7.1.0", - "@babel/helper-get-function-arity": "^7.0.0", - "@babel/helper-plugin-utils": "^7.0.0" + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-transform-regenerator": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.0.0.tgz", - "integrity": "sha512-sj2qzsEx8KDVv1QuJc/dEfilkg3RRPvPYx/VnKLtItVQRWt1Wqf5eVCOLZm29CiGFfYYsA3VPjfizTCV0S0Dlw==", + "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==", "dev": true, - "requires": { - "regenerator-transform": "^0.13.3" + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-transform-shorthand-properties": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.2.0.tgz", - "integrity": "sha512-QP4eUM83ha9zmYtpbnyjTLAGKQritA5XW/iG9cjtuOI8s1RuL/3V6a3DeSHfKutJQ+ayUfeZJPcnCYEQzaPQqg==", + "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==", "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.0.0" + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.3" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-transform-spread": { - "version": "7.2.2", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.2.2.tgz", - "integrity": "sha512-KWfky/58vubwtS0hLqEnrWJjsMGaOeSBn90Ezn5Jeg9Z8KKHmELbP1yGylMlm5N6TPKeY9A2+UaSYLdxahg01w==", + "node_modules/@babel/plugin-syntax-import-assertions": { + "version": "7.20.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.20.0.tgz", + "integrity": "sha512-IUh1vakzNoWalR8ch/areW7qFopR2AEw03JlG7BbrDqmQ4X3q9uuipQwSGrUn7oGiemKjtSLDhNtQHzMHr1JdQ==", "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.0.0" + "dependencies": { + "@babel/helper-plugin-utils": "^7.19.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-transform-sticky-regex": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.2.0.tgz", - "integrity": "sha512-KKYCoGaRAf+ckH8gEL3JHUaFVyNHKe3ASNsZ+AlktgHevvxGigoIttrEJb8iKN03Q7Eazlv1s6cx2B2cQ3Jabw==", + "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==", "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/helper-regex": "^7.0.0" + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-transform-template-literals": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.2.0.tgz", - "integrity": "sha512-FkPix00J9A/XWXv4VoKJBMeSkyY9x/TqIh76wzcdfl57RJJcf8CehQ08uwfhCDNtRQYtHQKBTwKZDEyjE13Lwg==", + "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==", "dev": true, - "requires": { - "@babel/helper-annotate-as-pure": "^7.0.0", - "@babel/helper-plugin-utils": "^7.0.0" + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-transform-typeof-symbol": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.2.0.tgz", - "integrity": "sha512-2LNhETWYxiYysBtrBTqL8+La0jIoQQnIScUJc74OYvUGRmkskNY4EzLCnjHBzdmb38wqtTaixpo1NctEcvMDZw==", + "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==", "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.0.0" + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-transform-unicode-regex": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.2.0.tgz", - "integrity": "sha512-m48Y0lMhrbXEJnVUaYly29jRXbQ3ksxPrS1Tg8t+MHqzXhtBYAvI51euOBaoAlZLPHsieY9XPVMf80a5x0cPcA==", + "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==", "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/helper-regex": "^7.0.0", - "regexpu-core": "^4.1.3" + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/preset-env": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.3.1.tgz", - "integrity": "sha512-FHKrD6Dxf30e8xgHQO0zJZpUPfVZg+Xwgz5/RdSWCbza9QLNk4Qbp40ctRoqDxml3O8RMzB1DU55SXeDG6PqHQ==", + "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==", "dev": true, - "requires": { - "@babel/helper-module-imports": "^7.0.0", - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/plugin-proposal-async-generator-functions": "^7.2.0", - "@babel/plugin-proposal-json-strings": "^7.2.0", - "@babel/plugin-proposal-object-rest-spread": "^7.3.1", - "@babel/plugin-proposal-optional-catch-binding": "^7.2.0", - "@babel/plugin-proposal-unicode-property-regex": "^7.2.0", - "@babel/plugin-syntax-async-generators": "^7.2.0", - "@babel/plugin-syntax-json-strings": "^7.2.0", - "@babel/plugin-syntax-object-rest-spread": "^7.2.0", - "@babel/plugin-syntax-optional-catch-binding": "^7.2.0", - "@babel/plugin-transform-arrow-functions": "^7.2.0", - "@babel/plugin-transform-async-to-generator": "^7.2.0", - "@babel/plugin-transform-block-scoped-functions": "^7.2.0", - "@babel/plugin-transform-block-scoping": "^7.2.0", - "@babel/plugin-transform-classes": "^7.2.0", - "@babel/plugin-transform-computed-properties": "^7.2.0", - "@babel/plugin-transform-destructuring": "^7.2.0", - "@babel/plugin-transform-dotall-regex": "^7.2.0", - "@babel/plugin-transform-duplicate-keys": "^7.2.0", - "@babel/plugin-transform-exponentiation-operator": "^7.2.0", - "@babel/plugin-transform-for-of": "^7.2.0", - "@babel/plugin-transform-function-name": "^7.2.0", - "@babel/plugin-transform-literals": "^7.2.0", - "@babel/plugin-transform-modules-amd": "^7.2.0", - "@babel/plugin-transform-modules-commonjs": "^7.2.0", - "@babel/plugin-transform-modules-systemjs": "^7.2.0", - "@babel/plugin-transform-modules-umd": "^7.2.0", - "@babel/plugin-transform-named-capturing-groups-regex": "^7.3.0", - "@babel/plugin-transform-new-target": "^7.0.0", - "@babel/plugin-transform-object-super": "^7.2.0", - "@babel/plugin-transform-parameters": "^7.2.0", - "@babel/plugin-transform-regenerator": "^7.0.0", - "@babel/plugin-transform-shorthand-properties": "^7.2.0", - "@babel/plugin-transform-spread": "^7.2.0", - "@babel/plugin-transform-sticky-regex": "^7.2.0", - "@babel/plugin-transform-template-literals": "^7.2.0", - "@babel/plugin-transform-typeof-symbol": "^7.2.0", - "@babel/plugin-transform-unicode-regex": "^7.2.0", - "browserslist": "^4.3.4", - "invariant": "^2.2.2", - "js-levenshtein": "^1.1.3", - "semver": "^5.3.0" - } - }, - "@babel/template": { - "version": "7.2.2", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.2.2.tgz", - "integrity": "sha512-zRL0IMM02AUDwghf5LMSSDEz7sBCO2YnNmpg3uWTZj/v1rcG2BmQUvaGU8GhU8BvfMh1k2KIAYZ7Ji9KXPUg7g==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.0.0", - "@babel/parser": "^7.2.2", - "@babel/types": "^7.2.2" - } - }, - "@babel/traverse": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.2.3.tgz", - "integrity": "sha512-Z31oUD/fJvEWVR0lNZtfgvVt512ForCTNKYcJBGbPb1QZfve4WGH8Wsy7+Mev33/45fhP/hwQtvgusNdcCMgSw==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.0.0", - "@babel/generator": "^7.2.2", - "@babel/helper-function-name": "^7.1.0", - "@babel/helper-split-export-declaration": "^7.0.0", - "@babel/parser": "^7.2.3", - "@babel/types": "^7.2.2", - "debug": "^4.1.0", - "globals": "^11.1.0", - "lodash": "^4.17.10" + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/types": { - "version": "7.3.3", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.3.3.tgz", - "integrity": "sha512-2tACZ80Wg09UnPg5uGAOUvvInaqLk3l/IAhQzlxLQOIXacr6bMsra5SH6AWw/hIDRCSbCdHP2KzSOD+cT7TzMQ==", + "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==", "dev": true, - "requires": { - "esutils": "^2.0.2", - "lodash": "^4.17.11", - "to-fast-properties": "^2.0.0" + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@nodelib/fs.scandir": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.3.tgz", - "integrity": "sha512-eGmwYQn3gxo4r7jdQnkrrN6bY478C3P+a/y72IJukF8LjB6ZHeB3c+Ehacj3sYeSmUXGlnA67/PmbM9CVwL7Dw==", + "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==", "dev": true, - "requires": { - "@nodelib/fs.stat": "2.0.3", - "run-parallel": "^1.1.9" + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@nodelib/fs.stat": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.3.tgz", - "integrity": "sha512-bQBFruR2TAwoevBEd/NWMoAAtNGzTRgdrqnYCc7dhzfoNvqPzLyqlEQnzZ3kVnNrSp25iyxE00/3h2fqGAGArA==", - "dev": true - }, - "@nodelib/fs.walk": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.4.tgz", - "integrity": "sha512-1V9XOY4rDW0rehzbrcqAmHnz8e7SKvX27gh8Gt2WgB0+pdzdiLV83p72kZPU+jvMbS1qU5mauP2iOvO8rhmurQ==", + "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==", "dev": true, - "requires": { - "@nodelib/fs.scandir": "2.1.3", - "fastq": "^1.6.0" + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@npmcli/move-file": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@npmcli/move-file/-/move-file-1.0.1.tgz", - "integrity": "sha512-Uv6h1sT+0DrblvIrolFtbvM1FgWm+/sy4B3pvLp67Zys+thcukzS5ekn7HsZFGpWP4Q3fYJCljbWQE/XivMRLw==", + "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==", "dev": true, - "requires": { - "mkdirp": "^1.0.4" - }, "dependencies": { - "mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", - "dev": true - } + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@types/color-name": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@types/color-name/-/color-name-1.1.1.tgz", - "integrity": "sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ==", - "dev": true - }, - "@types/events": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@types/events/-/events-3.0.0.tgz", - "integrity": "sha512-EaObqwIvayI5a8dCzhFrjKzVwKLxjoG9T6Ppd5CEo07LRKfQ8Yokw54r5+Wq7FaBQ+yXRvQAYPrHwya1/UFt9g==", - "dev": true - }, - "@types/glob": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.1.1.tgz", - "integrity": "sha512-1Bh06cbWJUHMC97acuD6UMG29nMt0Aqz1vF3guLfG+kHHJhy3AyohZFFxYk2f7Q1SQIrNwvncxAE0N/9s70F2w==", + "node_modules/@babel/plugin-transform-arrow-functions": { + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.20.7.tgz", + "integrity": "sha512-3poA5E7dzDomxj9WXWwuD6A5F3kc7VXwIJO+E+J8qtDtS+pXPAhrgEyh+9GBwBgPq1Z+bB+/JD60lp5jsN7JPQ==", "dev": true, - "requires": { - "@types/events": "*", - "@types/minimatch": "*", - "@types/node": "*" + "dependencies": { + "@babel/helper-plugin-utils": "^7.20.2" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@types/json-schema": { - "version": "7.0.6", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.6.tgz", - "integrity": "sha512-3c+yGKvVP5Y9TYBEibGNR+kLtijnj7mYrXRg+WpFb2X9xm04g/DXYkfg4hmzJQosc9snFNUPkbYIhu+KAm6jJw==", + "node_modules/@babel/plugin-transform-async-to-generator": { + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.20.7.tgz", + "integrity": "sha512-Uo5gwHPT9vgnSXQxqGtpdufUiWp96gk7yiP4Mp5bm1QMkEmLXBO7PAGYbKoJ6DhAwiNkcHFBol/x5zZZkL/t0Q==", + "dev": true, + "dependencies": { + "@babel/helper-module-imports": "^7.18.6", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/helper-remap-async-to-generator": "^7.18.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-block-scoped-functions": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.18.6.tgz", + "integrity": "sha512-ExUcOqpPWnliRcPqves5HJcJOvHvIIWfuS4sroBUenPuMdmW+SMHDakmtS7qOo13sVppmUijqeTv7qqGsvURpQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-block-scoping": { + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.21.0.tgz", + "integrity": "sha512-Mdrbunoh9SxwFZapeHVrwFmri16+oYotcZysSzhNIVDwIAb1UV+kvnxULSYq9J3/q5MDG+4X6w8QVgD1zhBXNQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.20.2" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-classes": { + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.21.0.tgz", + "integrity": "sha512-RZhbYTCEUAe6ntPehC4hlslPWosNHDox+vAs4On/mCLRLfoDVHf6hVEd7kuxr1RnHwJmxFfUM3cZiZRmPxJPXQ==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.18.6", + "@babel/helper-compilation-targets": "^7.20.7", + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-function-name": "^7.21.0", + "@babel/helper-optimise-call-expression": "^7.18.6", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/helper-replace-supers": "^7.20.7", + "@babel/helper-split-export-declaration": "^7.18.6", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-computed-properties": { + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.20.7.tgz", + "integrity": "sha512-Lz7MvBK6DTjElHAmfu6bfANzKcxpyNPeYBGEafyA6E5HtRpjpZwU+u7Qrgz/2OR0z+5TvKYbPdphfSaAcZBrYQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/template": "^7.20.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-destructuring": { + "version": "7.21.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.21.3.tgz", + "integrity": "sha512-bp6hwMFzuiE4HqYEyoGJ/V2LeIWn+hLVKc4pnj++E5XQptwhtcGmSayM029d/j2X1bPKGTlsyPwAubuU22KhMA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.20.2" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-dotall-regex": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.18.6.tgz", + "integrity": "sha512-6S3jpun1eEbAxq7TdjLotAsl4WpQI9DxfkycRcKrjhQYzU87qpXdknpBg/e+TdcMehqGnLFi7tnFUBR02Vq6wg==", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-duplicate-keys": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.18.9.tgz", + "integrity": "sha512-d2bmXCtZXYc59/0SanQKbiWINadaJXqtvIQIzd4+hNwkWBgyCd5F/2t1kXoUdvPMrxzPvhK6EMQRROxsue+mfw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-exponentiation-operator": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.18.6.tgz", + "integrity": "sha512-wzEtc0+2c88FVR34aQmiz56dxEkxr2g8DQb/KfaFa1JYXOFVsbhvAonFN6PwVWj++fKmku8NP80plJ5Et4wqHw==", + "dev": true, + "dependencies": { + "@babel/helper-builder-binary-assignment-operator-visitor": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-for-of": { + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.21.0.tgz", + "integrity": "sha512-LlUYlydgDkKpIY7mcBWvyPPmMcOphEyYA27Ef4xpbh1IiDNLr0kZsos2nf92vz3IccvJI25QUwp86Eo5s6HmBQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.20.2" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-function-name": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.18.9.tgz", + "integrity": "sha512-WvIBoRPaJQ5yVHzcnJFor7oS5Ls0PYixlTYE63lCj2RtdQEl15M68FXQlxnG6wdraJIXRdR7KI+hQ7q/9QjrCQ==", + "dev": true, + "dependencies": { + "@babel/helper-compilation-targets": "^7.18.9", + "@babel/helper-function-name": "^7.18.9", + "@babel/helper-plugin-utils": "^7.18.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-literals": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.18.9.tgz", + "integrity": "sha512-IFQDSRoTPnrAIrI5zoZv73IFeZu2dhu6irxQjY9rNjTT53VmKg9fenjvoiOWOkJ6mm4jKVPtdMzBY98Fp4Z4cg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-member-expression-literals": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.18.6.tgz", + "integrity": "sha512-qSF1ihLGO3q+/g48k85tUjD033C29TNTVB2paCwZPVmOsjn9pClvYYrM2VeJpBY2bcNkuny0YUyTNRyRxJ54KA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-amd": { + "version": "7.20.11", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.20.11.tgz", + "integrity": "sha512-NuzCt5IIYOW0O30UvqktzHYR2ud5bOWbY0yaxWZ6G+aFzOMJvrs5YHNikrbdaT15+KNO31nPOy5Fim3ku6Zb5g==", + "dev": true, + "dependencies": { + "@babel/helper-module-transforms": "^7.20.11", + "@babel/helper-plugin-utils": "^7.20.2" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-commonjs": { + "version": "7.21.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.21.2.tgz", + "integrity": "sha512-Cln+Yy04Gxua7iPdj6nOV96smLGjpElir5YwzF0LBPKoPlLDNJePNlrGGaybAJkd0zKRnOVXOgizSqPYMNYkzA==", + "dev": true, + "dependencies": { + "@babel/helper-module-transforms": "^7.21.2", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/helper-simple-access": "^7.20.2" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-systemjs": { + "version": "7.20.11", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.20.11.tgz", + "integrity": "sha512-vVu5g9BPQKSFEmvt2TA4Da5N+QVS66EX21d8uoOihC+OCpUoGvzVsXeqFdtAEfVa5BILAeFt+U7yVmLbQnAJmw==", + "dev": true, + "dependencies": { + "@babel/helper-hoist-variables": "^7.18.6", + "@babel/helper-module-transforms": "^7.20.11", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/helper-validator-identifier": "^7.19.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-umd": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.18.6.tgz", + "integrity": "sha512-dcegErExVeXcRqNtkRU/z8WlBLnvD4MRnHgNs3MytRO1Mn1sHRyhbcpYbVMGclAqOjdW+9cfkdZno9dFdfKLfQ==", + "dev": true, + "dependencies": { + "@babel/helper-module-transforms": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.20.5.tgz", + "integrity": "sha512-mOW4tTzi5iTLnw+78iEq3gr8Aoq4WNRGpmSlrogqaiCBoR1HFhpU4JkpQFOHfeYx3ReVIFWOQJS4aZBRvuZ6mA==", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.20.5", + "@babel/helper-plugin-utils": "^7.20.2" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-transform-new-target": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.18.6.tgz", + "integrity": "sha512-DjwFA/9Iu3Z+vrAn+8pBUGcjhxKguSMlsFqeCKbhb9BAV756v0krzVK04CRDi/4aqmk8BsHb4a/gFcaA5joXRw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-object-super": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.18.6.tgz", + "integrity": "sha512-uvGz6zk+pZoS1aTZrOvrbj6Pp/kK2mp45t2B+bTDre2UgsZZ8EZLSJtUg7m/no0zOJUWgFONpB7Zv9W2tSaFlA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/helper-replace-supers": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-parameters": { + "version": "7.21.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.21.3.tgz", + "integrity": "sha512-Wxc+TvppQG9xWFYatvCGPvZ6+SIUxQ2ZdiBP+PHYMIjnPXD+uThCshaz4NZOnODAtBjjcVQQ/3OKs9LW28purQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.20.2" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-property-literals": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.18.6.tgz", + "integrity": "sha512-cYcs6qlgafTud3PAzrrRNbQtfpQ8+y/+M5tKmksS9+M1ckbH6kzY8MrexEM9mcA6JDsukE19iIRvAyYl463sMg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-regenerator": { + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.20.5.tgz", + "integrity": "sha512-kW/oO7HPBtntbsahzQ0qSE3tFvkFwnbozz3NWFhLGqH75vLEg+sCGngLlhVkePlCs3Jv0dBBHDzCHxNiFAQKCQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.20.2", + "regenerator-transform": "^0.15.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-reserved-words": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.18.6.tgz", + "integrity": "sha512-oX/4MyMoypzHjFrT1CdivfKZ+XvIPMFXwwxHp/r0Ddy2Vuomt4HDFGmft1TAY2yiTKiNSsh3kjBAzcM8kSdsjA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-shorthand-properties": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.18.6.tgz", + "integrity": "sha512-eCLXXJqv8okzg86ywZJbRn19YJHU4XUa55oz2wbHhaQVn/MM+XhukiT7SYqp/7o00dg52Rj51Ny+Ecw4oyoygw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-spread": { + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.20.7.tgz", + "integrity": "sha512-ewBbHQ+1U/VnH1fxltbJqDeWBU1oNLG8Dj11uIv3xVf7nrQu0bPGe5Rf716r7K5Qz+SqtAOVswoVunoiBtGhxw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/helper-skip-transparent-expression-wrappers": "^7.20.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-sticky-regex": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.18.6.tgz", + "integrity": "sha512-kfiDrDQ+PBsQDO85yj1icueWMfGfJFKN1KCkndygtu/C9+XUfydLC8Iv5UYJqRwy4zk8EcplRxEOeLyjq1gm6Q==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-template-literals": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.18.9.tgz", + "integrity": "sha512-S8cOWfT82gTezpYOiVaGHrCbhlHgKhQt8XH5ES46P2XWmX92yisoZywf5km75wv5sYcXDUCLMmMxOLCtthDgMA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-typeof-symbol": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.18.9.tgz", + "integrity": "sha512-SRfwTtF11G2aemAZWivL7PD+C9z52v9EvMqH9BuYbabyPuKUvSWks3oCg6041pT925L4zVFqaVBeECwsmlguEw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-escapes": { + "version": "7.18.10", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.18.10.tgz", + "integrity": "sha512-kKAdAI+YzPgGY/ftStBFXTI1LZFju38rYThnfMykS+IXy8BVx+res7s2fxf1l8I35DV2T97ezo6+SGrXz6B3iQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-regex": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.18.6.tgz", + "integrity": "sha512-gE7A6Lt7YLnNOL3Pb9BNeZvi+d8l7tcRrG4+pwJjK9hD2xX4mEvjlQW60G9EEmfXVYRPv9VRQcyegIVHCql/AA==", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/preset-env": { + "version": "7.21.4", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.21.4.tgz", + "integrity": "sha512-2W57zHs2yDLm6GD5ZpvNn71lZ0B/iypSdIeq25OurDKji6AdzV07qp4s3n1/x5BqtiGaTrPN3nerlSCaC5qNTw==", + "dev": true, + "dependencies": { + "@babel/compat-data": "^7.21.4", + "@babel/helper-compilation-targets": "^7.21.4", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/helper-validator-option": "^7.21.0", + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.18.6", + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.20.7", + "@babel/plugin-proposal-async-generator-functions": "^7.20.7", + "@babel/plugin-proposal-class-properties": "^7.18.6", + "@babel/plugin-proposal-class-static-block": "^7.21.0", + "@babel/plugin-proposal-dynamic-import": "^7.18.6", + "@babel/plugin-proposal-export-namespace-from": "^7.18.9", + "@babel/plugin-proposal-json-strings": "^7.18.6", + "@babel/plugin-proposal-logical-assignment-operators": "^7.20.7", + "@babel/plugin-proposal-nullish-coalescing-operator": "^7.18.6", + "@babel/plugin-proposal-numeric-separator": "^7.18.6", + "@babel/plugin-proposal-object-rest-spread": "^7.20.7", + "@babel/plugin-proposal-optional-catch-binding": "^7.18.6", + "@babel/plugin-proposal-optional-chaining": "^7.21.0", + "@babel/plugin-proposal-private-methods": "^7.18.6", + "@babel/plugin-proposal-private-property-in-object": "^7.21.0", + "@babel/plugin-proposal-unicode-property-regex": "^7.18.6", + "@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-import-assertions": "^7.20.0", + "@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.20.7", + "@babel/plugin-transform-async-to-generator": "^7.20.7", + "@babel/plugin-transform-block-scoped-functions": "^7.18.6", + "@babel/plugin-transform-block-scoping": "^7.21.0", + "@babel/plugin-transform-classes": "^7.21.0", + "@babel/plugin-transform-computed-properties": "^7.20.7", + "@babel/plugin-transform-destructuring": "^7.21.3", + "@babel/plugin-transform-dotall-regex": "^7.18.6", + "@babel/plugin-transform-duplicate-keys": "^7.18.9", + "@babel/plugin-transform-exponentiation-operator": "^7.18.6", + "@babel/plugin-transform-for-of": "^7.21.0", + "@babel/plugin-transform-function-name": "^7.18.9", + "@babel/plugin-transform-literals": "^7.18.9", + "@babel/plugin-transform-member-expression-literals": "^7.18.6", + "@babel/plugin-transform-modules-amd": "^7.20.11", + "@babel/plugin-transform-modules-commonjs": "^7.21.2", + "@babel/plugin-transform-modules-systemjs": "^7.20.11", + "@babel/plugin-transform-modules-umd": "^7.18.6", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.20.5", + "@babel/plugin-transform-new-target": "^7.18.6", + "@babel/plugin-transform-object-super": "^7.18.6", + "@babel/plugin-transform-parameters": "^7.21.3", + "@babel/plugin-transform-property-literals": "^7.18.6", + "@babel/plugin-transform-regenerator": "^7.20.5", + "@babel/plugin-transform-reserved-words": "^7.18.6", + "@babel/plugin-transform-shorthand-properties": "^7.18.6", + "@babel/plugin-transform-spread": "^7.20.7", + "@babel/plugin-transform-sticky-regex": "^7.18.6", + "@babel/plugin-transform-template-literals": "^7.18.9", + "@babel/plugin-transform-typeof-symbol": "^7.18.9", + "@babel/plugin-transform-unicode-escapes": "^7.18.10", + "@babel/plugin-transform-unicode-regex": "^7.18.6", + "@babel/preset-modules": "^0.1.5", + "@babel/types": "^7.21.4", + "babel-plugin-polyfill-corejs2": "^0.3.3", + "babel-plugin-polyfill-corejs3": "^0.6.0", + "babel-plugin-polyfill-regenerator": "^0.4.1", + "core-js-compat": "^3.25.1", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/preset-modules": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.5.tgz", + "integrity": "sha512-A57th6YRG7oR3cq/yt/Y84MvGgE0eJG2F1JLhKuyG+jFxEgrd/HAMJatiFtmOiZurz+0DkrvbheCLaV5f2JfjA==", + "dev": true, + "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" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/regjsgen": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/@babel/regjsgen/-/regjsgen-0.8.0.tgz", + "integrity": "sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==", "dev": true }, - "@types/minimatch": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.3.tgz", - "integrity": "sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA==", + "node_modules/@babel/runtime": { + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.21.0.tgz", + "integrity": "sha512-xwII0//EObnq89Ji5AKYQaRYiW/nZ3llSv29d49IuxPhKbtJoLP+9QUUZ4nVragQVtaVGeZrpB+ZtG/Pdy/POw==", + "dev": true, + "dependencies": { + "regenerator-runtime": "^0.13.11" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/template": { + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.20.7.tgz", + "integrity": "sha512-8SegXApWe6VoNw0r9JHpSteLKTpTiLZ4rMlGIm9JQ18KiCtyQiAMEazujAHrUS5flrcqYZa75ukev3P6QmUwUw==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.18.6", + "@babel/parser": "^7.20.7", + "@babel/types": "^7.20.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse": { + "version": "7.21.4", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.21.4.tgz", + "integrity": "sha512-eyKrRHKdyZxqDm+fV1iqL9UAHMoIg0nDaGqfIOd8rKH17m5snv7Gn4qgjBoFfLz9APvjFU/ICT00NVCv1Epp8Q==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.21.4", + "@babel/generator": "^7.21.4", + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-function-name": "^7.21.0", + "@babel/helper-hoist-variables": "^7.18.6", + "@babel/helper-split-export-declaration": "^7.18.6", + "@babel/parser": "^7.21.4", + "@babel/types": "^7.21.4", + "debug": "^4.1.0", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/types": { + "version": "7.21.4", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.21.4.tgz", + "integrity": "sha512-rU2oY501qDxE8Pyo7i/Orqma4ziCOrby0/9mvbDUGEfvZjb279Nk9k19e2fiCxHbRRpY2ZyrgW1eq22mvmOIzA==", + "dev": true, + "dependencies": { + "@babel/helper-string-parser": "^7.19.4", + "@babel/helper-validator-identifier": "^7.19.1", + "to-fast-properties": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@discoveryjs/json-ext": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.5.7.tgz", + "integrity": "sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw==", + "dev": true, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/@gar/promisify": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/@gar/promisify/-/promisify-1.1.3.tgz", + "integrity": "sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw==", "dev": true }, - "@types/node": { - "version": "14.0.1", - "resolved": "https://registry.npmjs.org/@types/node/-/node-14.0.1.tgz", - "integrity": "sha512-FAYBGwC+W6F9+huFIDtn43cpy7+SzG+atzRiTfdp3inUKL2hXnd4rG8hylJLIh4+hqrQy1P17kvJByE/z825hA==", + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz", + "integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==", + "dev": true, + "dependencies": { + "@jridgewell/set-array": "^1.0.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", + "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==", + "dev": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/set-array": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", + "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", + "dev": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/source-map": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.3.tgz", + "integrity": "sha512-b+fsZXeLYi9fEULmfBrhxn4IrPlINf8fiNarzTof004v3lFdntdwa9PF7vFJqm3mg7s+ScJMxXaE3Acp1irZcg==", + "dev": true, + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.0", + "@jridgewell/trace-mapping": "^0.3.9" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.4.15", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", + "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==", "dev": true }, - "@webassemblyjs/ast": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.9.0.tgz", - "integrity": "sha512-C6wW5L+b7ogSDVqymbkkvuW9kruN//YisMED04xzeBBqjHa2FYnmvOlS6Xj68xWQRgWvI9cIglsjFowH/RJyEA==", + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.18", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.18.tgz", + "integrity": "sha512-w+niJYzMHdd7USdiH2U6869nqhD2nbfZXND5Yp93qIbEmnDNk7PD48o+YchRVpzMU7M6jVCbenTR7PA1FLQ9pA==", "dev": true, - "requires": { - "@webassemblyjs/helper-module-context": "1.9.0", - "@webassemblyjs/helper-wasm-bytecode": "1.9.0", - "@webassemblyjs/wast-parser": "1.9.0" + "dependencies": { + "@jridgewell/resolve-uri": "3.1.0", + "@jridgewell/sourcemap-codec": "1.4.14" } }, - "@webassemblyjs/floating-point-hex-parser": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.9.0.tgz", - "integrity": "sha512-TG5qcFsS8QB4g4MhrxK5TqfdNe7Ey/7YL/xN+36rRjl/BlGE/NcBvJcqsRgCP6Z92mRE+7N50pRIi8SmKUbcQA==", + "node_modules/@jridgewell/trace-mapping/node_modules/@jridgewell/sourcemap-codec": { + "version": "1.4.14", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", + "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==", "dev": true }, - "@webassemblyjs/helper-api-error": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.9.0.tgz", - "integrity": "sha512-NcMLjoFMXpsASZFxJ5h2HZRcEhDkvnNFOAKneP5RbKRzaWJN36NC4jqQHKwStIhGXu5mUWlUUk7ygdtrO8lbmw==", + "node_modules/@leichtgewicht/ip-codec": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@leichtgewicht/ip-codec/-/ip-codec-2.0.4.tgz", + "integrity": "sha512-Hcv+nVC0kZnQ3tD9GVu5xSMR4VVYOteQIr/hwFPVEvPdlXqgGEuRjiheChHgdM+JyqdgNcmzZOX/tnl0JOiI7A==", "dev": true }, - "@webassemblyjs/helper-buffer": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.9.0.tgz", - "integrity": "sha512-qZol43oqhq6yBPx7YM3m9Bv7WMV9Eevj6kMi6InKOuZxhw+q9hOkvq5e/PpKSiLfyetpaBnogSbNCfBwyB00CA==", + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@npmcli/fs": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-1.1.1.tgz", + "integrity": "sha512-8KG5RD0GVP4ydEzRn/I4BNDuxDtqVbOdm8675T49OIG/NGhaK0pjPX7ZcDlvKYbA+ulvVK3ztfcF4uBdOxuJbQ==", + "dev": true, + "dependencies": { + "@gar/promisify": "^1.0.1", + "semver": "^7.3.5" + } + }, + "node_modules/@npmcli/fs/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@npmcli/fs/node_modules/semver": { + "version": "7.5.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.0.tgz", + "integrity": "sha512-+XC0AD/R7Q2mPSRuy2Id0+CGTZ98+8f+KvwirxOKIEyid+XSx6HbC63p+O4IndTHuX5Z+JxQ0TghCkO5Cg/2HA==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@npmcli/fs/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", "dev": true }, - "@webassemblyjs/helper-code-frame": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.9.0.tgz", - "integrity": "sha512-ERCYdJBkD9Vu4vtjUYe8LZruWuNIToYq/ME22igL+2vj2dQ2OOujIZr3MEFvfEaqKoVqpsFKAGsRdBSBjrIvZA==", + "node_modules/@npmcli/move-file": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@npmcli/move-file/-/move-file-1.1.2.tgz", + "integrity": "sha512-1SUf/Cg2GzGDyaf15aR9St9TWlb+XvbZXWpDx8YKs7MLzMH/BCeopv+y9vzrzgkfykCGuWOlSu3mZhj2+FQcrg==", + "deprecated": "This functionality has been moved to @npmcli/fs", "dev": true, - "requires": { - "@webassemblyjs/wast-printer": "1.9.0" + "dependencies": { + "mkdirp": "^1.0.4", + "rimraf": "^3.0.2" + }, + "engines": { + "node": ">=10" } }, - "@webassemblyjs/helper-fsm": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-fsm/-/helper-fsm-1.9.0.tgz", - "integrity": "sha512-OPRowhGbshCb5PxJ8LocpdX9Kl0uB4XsAjl6jH/dWKlk/mzsANvhwbiULsaiqT5GZGT9qinTICdj6PLuM5gslw==", + "node_modules/@npmcli/move-file/node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@types/body-parser": { + "version": "1.19.2", + "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.2.tgz", + "integrity": "sha512-ALYone6pm6QmwZoAgeyNksccT9Q4AWZQ6PvfwR37GT6r6FWUPguq6sUmNGSMV2Wr761oQoBxwGGa6DR5o1DC9g==", + "dev": true, + "dependencies": { + "@types/connect": "*", + "@types/node": "*" + } + }, + "node_modules/@types/bonjour": { + "version": "3.5.10", + "resolved": "https://registry.npmjs.org/@types/bonjour/-/bonjour-3.5.10.tgz", + "integrity": "sha512-p7ienRMiS41Nu2/igbJxxLDWrSZ0WxM8UQgCeO9KhoVF7cOVFkrKsiDr1EsJIla8vV3oEEjGcz11jc5yimhzZw==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/connect": { + "version": "3.4.35", + "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.35.tgz", + "integrity": "sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/connect-history-api-fallback": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/@types/connect-history-api-fallback/-/connect-history-api-fallback-1.3.5.tgz", + "integrity": "sha512-h8QJa8xSb1WD4fpKBDcATDNGXghFj6/3GRWG6dhmRcu0RX1Ubasur2Uvx5aeEwlf0MwblEC2bMzzMQntxnw/Cw==", + "dev": true, + "dependencies": { + "@types/express-serve-static-core": "*", + "@types/node": "*" + } + }, + "node_modules/@types/eslint": { + "version": "8.37.0", + "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.37.0.tgz", + "integrity": "sha512-Piet7dG2JBuDIfohBngQ3rCt7MgO9xCO4xIMKxBThCq5PNRB91IjlJ10eJVwfoNtvTErmxLzwBZ7rHZtbOMmFQ==", + "dev": true, + "dependencies": { + "@types/estree": "*", + "@types/json-schema": "*" + } + }, + "node_modules/@types/eslint-scope": { + "version": "3.7.4", + "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.4.tgz", + "integrity": "sha512-9K4zoImiZc3HlIp6AVUDE4CWYx22a+lhSZMYNpbjW04+YF0KWj4pJXnEMjdnFTiQibFFmElcsasJXDbdI/EPhA==", + "dev": true, + "dependencies": { + "@types/eslint": "*", + "@types/estree": "*" + } + }, + "node_modules/@types/estree": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.0.tgz", + "integrity": "sha512-WulqXMDUTYAXCjZnk6JtIHPigp55cVtDgDrO2gHRwhyJto21+1zbVCtOYB2L1F9w4qCQ0rOGWBnBe0FNTiEJIQ==", "dev": true }, - "@webassemblyjs/helper-module-context": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-module-context/-/helper-module-context-1.9.0.tgz", - "integrity": "sha512-MJCW8iGC08tMk2enck1aPW+BE5Cw8/7ph/VGZxwyvGbJwjktKkDK7vy7gAmMDx88D7mhDTCNKAW5tED+gZ0W8g==", + "node_modules/@types/express": { + "version": "4.17.17", + "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.17.tgz", + "integrity": "sha512-Q4FmmuLGBG58btUnfS1c1r/NQdlp3DMfGDGig8WhfpA2YRUtEkxAjkZb0yvplJGYdF1fsQ81iMDcH24sSCNC/Q==", "dev": true, - "requires": { - "@webassemblyjs/ast": "1.9.0" + "dependencies": { + "@types/body-parser": "*", + "@types/express-serve-static-core": "^4.17.33", + "@types/qs": "*", + "@types/serve-static": "*" } }, - "@webassemblyjs/helper-wasm-bytecode": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.9.0.tgz", - "integrity": "sha512-R7FStIzyNcd7xKxCZH5lE0Bqy+hGTwS3LJjuv1ZVxd9O7eHCedSdrId/hMOd20I+v8wDXEn+bjfKDLzTepoaUw==", + "node_modules/@types/express-serve-static-core": { + "version": "4.17.33", + "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.33.tgz", + "integrity": "sha512-TPBqmR/HRYI3eC2E5hmiivIzv+bidAfXofM+sbonAGvyDhySGw9/PQZFt2BLOrjUUR++4eJVpx6KnLQK1Fk9tA==", + "dev": true, + "dependencies": { + "@types/node": "*", + "@types/qs": "*", + "@types/range-parser": "*" + } + }, + "node_modules/@types/glob": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.2.0.tgz", + "integrity": "sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA==", + "dev": true, + "dependencies": { + "@types/minimatch": "*", + "@types/node": "*" + } + }, + "node_modules/@types/http-proxy": { + "version": "1.17.10", + "resolved": "https://registry.npmjs.org/@types/http-proxy/-/http-proxy-1.17.10.tgz", + "integrity": "sha512-Qs5aULi+zV1bwKAg5z1PWnDXWmsn+LxIvUGv6E2+OOMYhclZMO+OXd9pYVf2gLykf2I7IV2u7oTHwChPNsvJ7g==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/json-schema": { + "version": "7.0.11", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz", + "integrity": "sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==", "dev": true }, - "@webassemblyjs/helper-wasm-section": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.9.0.tgz", - "integrity": "sha512-XnMB8l3ek4tvrKUUku+IVaXNHz2YsJyOOmz+MMkZvh8h1uSJpSen6vYnw3IoQ7WwEuAhL8Efjms1ZWjqh2agvw==", + "node_modules/@types/mime": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@types/mime/-/mime-3.0.1.tgz", + "integrity": "sha512-Y4XFY5VJAuw0FgAqPNd6NNoV44jbq9Bz2L7Rh/J6jLTiHBSBJa9fxqQIvkIld4GsoDOcCbvzOUAbLPsSKKg+uA==", + "dev": true + }, + "node_modules/@types/minimatch": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-5.1.2.tgz", + "integrity": "sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA==", + "dev": true + }, + "node_modules/@types/node": { + "version": "18.15.11", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.15.11.tgz", + "integrity": "sha512-E5Kwq2n4SbMzQOn6wnmBjuK9ouqlURrcZDVfbo9ftDDTFt3nk7ZKK4GMOzoYgnpQJKcxwQw+lGaBvvlMo0qN/Q==", + "dev": true + }, + "node_modules/@types/qs": { + "version": "6.9.7", + "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.7.tgz", + "integrity": "sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw==", + "dev": true + }, + "node_modules/@types/range-parser": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.4.tgz", + "integrity": "sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw==", + "dev": true + }, + "node_modules/@types/retry": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.12.0.tgz", + "integrity": "sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==", + "dev": true + }, + "node_modules/@types/serve-index": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/@types/serve-index/-/serve-index-1.9.1.tgz", + "integrity": "sha512-d/Hs3nWDxNL2xAczmOVZNj92YZCS6RGxfBPjKzuu/XirCgXdpKEb88dYNbrYGint6IVWLNP+yonwVAuRC0T2Dg==", "dev": true, - "requires": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/helper-buffer": "1.9.0", - "@webassemblyjs/helper-wasm-bytecode": "1.9.0", - "@webassemblyjs/wasm-gen": "1.9.0" + "dependencies": { + "@types/express": "*" } }, - "@webassemblyjs/ieee754": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.9.0.tgz", - "integrity": "sha512-dcX8JuYU/gvymzIHc9DgxTzUUTLexWwt8uCTWP3otys596io0L5aW02Gb1RjYpx2+0Jus1h4ZFqjla7umFniTg==", + "node_modules/@types/serve-static": { + "version": "1.15.1", + "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.1.tgz", + "integrity": "sha512-NUo5XNiAdULrJENtJXZZ3fHtfMolzZwczzBbnAeBbqBwG+LaG6YaJtuwzwGSQZ2wsCrxjEhNNjAkKigy3n8teQ==", + "dev": true, + "dependencies": { + "@types/mime": "*", + "@types/node": "*" + } + }, + "node_modules/@types/sockjs": { + "version": "0.3.33", + "resolved": "https://registry.npmjs.org/@types/sockjs/-/sockjs-0.3.33.tgz", + "integrity": "sha512-f0KEEe05NvUnat+boPTZ0dgaLZ4SfSouXUgv5noUiefG2ajgKjmETo9ZJyuqsl7dfl2aHlLJUiki6B4ZYldiiw==", "dev": true, - "requires": { + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/ws": { + "version": "8.5.4", + "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.4.tgz", + "integrity": "sha512-zdQDHKUgcX/zBc4GrwsE/7dVdAD8JR4EuiAXiiUhhfyIJXXb2+PrGshFyeXWQPMmmZ2XxgaqclgpIC7eTXc1mg==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@webassemblyjs/ast": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.1.tgz", + "integrity": "sha512-ukBh14qFLjxTQNTXocdyksN5QdM28S1CxHt2rdskFyL+xFV7VremuBLVbmCePj+URalXBENx/9Lm7lnhihtCSw==", + "dev": true, + "dependencies": { + "@webassemblyjs/helper-numbers": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1" + } + }, + "node_modules/@webassemblyjs/floating-point-hex-parser": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.1.tgz", + "integrity": "sha512-iGRfyc5Bq+NnNuX8b5hwBrRjzf0ocrJPI6GWFodBFzmFnyvrQ83SHKhmilCU/8Jv67i4GJZBMhEzltxzcNagtQ==", + "dev": true + }, + "node_modules/@webassemblyjs/helper-api-error": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.1.tgz", + "integrity": "sha512-RlhS8CBCXfRUR/cwo2ho9bkheSXG0+NwooXcc3PAILALf2QLdFyj7KGsKRbVc95hZnhnERon4kW/D3SZpp6Tcg==", + "dev": true + }, + "node_modules/@webassemblyjs/helper-buffer": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.1.tgz", + "integrity": "sha512-gwikF65aDNeeXa8JxXa2BAk+REjSyhrNC9ZwdT0f8jc4dQQeDQ7G4m0f2QCLPJiMTTO6wfDmRmj/pW0PsUvIcA==", + "dev": true + }, + "node_modules/@webassemblyjs/helper-numbers": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.1.tgz", + "integrity": "sha512-vDkbxiB8zfnPdNK9Rajcey5C0w+QJugEglN0of+kmO8l7lDb77AnlKYQF7aarZuCrv+l0UvqL+68gSDr3k9LPQ==", + "dev": true, + "dependencies": { + "@webassemblyjs/floating-point-hex-parser": "1.11.1", + "@webassemblyjs/helper-api-error": "1.11.1", + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@webassemblyjs/helper-wasm-bytecode": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.1.tgz", + "integrity": "sha512-PvpoOGiJwXeTrSf/qfudJhwlvDQxFgelbMqtq52WWiXC6Xgg1IREdngmPN3bs4RoO83PnL/nFrxucXj1+BX62Q==", + "dev": true + }, + "node_modules/@webassemblyjs/helper-wasm-section": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.1.tgz", + "integrity": "sha512-10P9No29rYX1j7F3EVPX3JvGPQPae+AomuSTPiF9eBQeChHI6iqjMIwR9JmOJXwpnn/oVGDk7I5IlskuMwU/pg==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-buffer": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1", + "@webassemblyjs/wasm-gen": "1.11.1" + } + }, + "node_modules/@webassemblyjs/ieee754": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.1.tgz", + "integrity": "sha512-hJ87QIPtAMKbFq6CGTkZYJivEwZDbQUgYd3qKSadTNOhVY7p+gfP6Sr0lLRVTaG1JjFj+r3YchoqRYxNH3M0GQ==", + "dev": true, + "dependencies": { "@xtuc/ieee754": "^1.2.0" } }, - "@webassemblyjs/leb128": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.9.0.tgz", - "integrity": "sha512-ENVzM5VwV1ojs9jam6vPys97B/S65YQtv/aanqnU7D8aSoHFX8GyhGg0CMfyKNIHBuAVjy3tlzd5QMMINa7wpw==", + "node_modules/@webassemblyjs/leb128": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.1.tgz", + "integrity": "sha512-BJ2P0hNZ0u+Th1YZXJpzW6miwqQUGcIHT1G/sf72gLVD9DZ5AdYTqPNbHZh6K1M5VmKvFXwGSWZADz+qBWxeRw==", "dev": true, - "requires": { + "dependencies": { "@xtuc/long": "4.2.2" } }, - "@webassemblyjs/utf8": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.9.0.tgz", - "integrity": "sha512-GZbQlWtopBTP0u7cHrEx+73yZKrQoBMpwkGEIqlacljhXCkVM1kMQge/Mf+csMJAjEdSwhOyLAS0AoR3AG5P8w==", + "node_modules/@webassemblyjs/utf8": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.1.tgz", + "integrity": "sha512-9kqcxAEdMhiwQkHpkNiorZzqpGrodQQ2IGrHHxCy+Ozng0ofyMA0lTqiLkVs1uzTRejX+/O0EOT7KxqVPuXosQ==", "dev": true }, - "@webassemblyjs/wasm-edit": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.9.0.tgz", - "integrity": "sha512-FgHzBm80uwz5M8WKnMTn6j/sVbqilPdQXTWraSjBwFXSYGirpkSWE2R9Qvz9tNiTKQvoKILpCuTjBKzOIm0nxw==", + "node_modules/@webassemblyjs/wasm-edit": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.1.tgz", + "integrity": "sha512-g+RsupUC1aTHfR8CDgnsVRVZFJqdkFHpsHMfJuWQzWU3tvnLC07UqHICfP+4XyL2tnr1amvl1Sdp06TnYCmVkA==", "dev": true, - "requires": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/helper-buffer": "1.9.0", - "@webassemblyjs/helper-wasm-bytecode": "1.9.0", - "@webassemblyjs/helper-wasm-section": "1.9.0", - "@webassemblyjs/wasm-gen": "1.9.0", - "@webassemblyjs/wasm-opt": "1.9.0", - "@webassemblyjs/wasm-parser": "1.9.0", - "@webassemblyjs/wast-printer": "1.9.0" + "dependencies": { + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-buffer": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1", + "@webassemblyjs/helper-wasm-section": "1.11.1", + "@webassemblyjs/wasm-gen": "1.11.1", + "@webassemblyjs/wasm-opt": "1.11.1", + "@webassemblyjs/wasm-parser": "1.11.1", + "@webassemblyjs/wast-printer": "1.11.1" } }, - "@webassemblyjs/wasm-gen": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.9.0.tgz", - "integrity": "sha512-cPE3o44YzOOHvlsb4+E9qSqjc9Qf9Na1OO/BHFy4OI91XDE14MjFN4lTMezzaIWdPqHnsTodGGNP+iRSYfGkjA==", + "node_modules/@webassemblyjs/wasm-gen": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.1.tgz", + "integrity": "sha512-F7QqKXwwNlMmsulj6+O7r4mmtAlCWfO/0HdgOxSklZfQcDu0TpLiD1mRt/zF25Bk59FIjEuGAIyn5ei4yMfLhA==", "dev": true, - "requires": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/helper-wasm-bytecode": "1.9.0", - "@webassemblyjs/ieee754": "1.9.0", - "@webassemblyjs/leb128": "1.9.0", - "@webassemblyjs/utf8": "1.9.0" + "dependencies": { + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1", + "@webassemblyjs/ieee754": "1.11.1", + "@webassemblyjs/leb128": "1.11.1", + "@webassemblyjs/utf8": "1.11.1" } }, - "@webassemblyjs/wasm-opt": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.9.0.tgz", - "integrity": "sha512-Qkjgm6Anhm+OMbIL0iokO7meajkzQD71ioelnfPEj6r4eOFuqm4YC3VBPqXjFyyNwowzbMD+hizmprP/Fwkl2A==", + "node_modules/@webassemblyjs/wasm-opt": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.1.tgz", + "integrity": "sha512-VqnkNqnZlU5EB64pp1l7hdm3hmQw7Vgqa0KF/KCNO9sIpI6Fk6brDEiX+iCOYrvMuBWDws0NkTOxYEb85XQHHw==", "dev": true, - "requires": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/helper-buffer": "1.9.0", - "@webassemblyjs/wasm-gen": "1.9.0", - "@webassemblyjs/wasm-parser": "1.9.0" + "dependencies": { + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-buffer": "1.11.1", + "@webassemblyjs/wasm-gen": "1.11.1", + "@webassemblyjs/wasm-parser": "1.11.1" } }, - "@webassemblyjs/wasm-parser": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.9.0.tgz", - "integrity": "sha512-9+wkMowR2AmdSWQzsPEjFU7njh8HTO5MqO8vjwEHuM+AMHioNqSBONRdr0NQQ3dVQrzp0s8lTcYqzUdb7YgELA==", + "node_modules/@webassemblyjs/wasm-parser": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.1.tgz", + "integrity": "sha512-rrBujw+dJu32gYB7/Lup6UhdkPx9S9SnobZzRVL7VcBH9Bt9bCBLEuX/YXOOtBsOZ4NQrRykKhffRWHvigQvOA==", "dev": true, - "requires": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/helper-api-error": "1.9.0", - "@webassemblyjs/helper-wasm-bytecode": "1.9.0", - "@webassemblyjs/ieee754": "1.9.0", - "@webassemblyjs/leb128": "1.9.0", - "@webassemblyjs/utf8": "1.9.0" + "dependencies": { + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-api-error": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1", + "@webassemblyjs/ieee754": "1.11.1", + "@webassemblyjs/leb128": "1.11.1", + "@webassemblyjs/utf8": "1.11.1" } }, - "@webassemblyjs/wast-parser": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-parser/-/wast-parser-1.9.0.tgz", - "integrity": "sha512-qsqSAP3QQ3LyZjNC/0jBJ/ToSxfYJ8kYyuiGvtn/8MK89VrNEfwj7BPQzJVHi0jGTRK2dGdJ5PRqhtjzoww+bw==", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/floating-point-hex-parser": "1.9.0", - "@webassemblyjs/helper-api-error": "1.9.0", - "@webassemblyjs/helper-code-frame": "1.9.0", - "@webassemblyjs/helper-fsm": "1.9.0", + "node_modules/@webassemblyjs/wast-printer": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.11.1.tgz", + "integrity": "sha512-IQboUWM4eKzWW+N/jij2sRatKMh99QEelo3Eb2q0qXkvPRISAj8Qxtmw5itwqK+TTkBuUIE45AxYPToqPtL5gg==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.11.1", "@xtuc/long": "4.2.2" } }, - "@webassemblyjs/wast-printer": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.9.0.tgz", - "integrity": "sha512-2J0nE95rHXHyQ24cWjMKJ1tqB/ds8z/cyeOZxJhcb+rW+SQASVjuznUSmdz5GpVJTzU8JkhYut0D3siFDD6wsA==", + "node_modules/@webpack-cli/configtest": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@webpack-cli/configtest/-/configtest-2.0.1.tgz", + "integrity": "sha512-njsdJXJSiS2iNbQVS0eT8A/KPnmyH4pv1APj2K0d1wrZcBLw+yppxOy4CGqa0OxDJkzfL/XELDhD8rocnIwB5A==", "dev": true, - "requires": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/wast-parser": "1.9.0", - "@xtuc/long": "4.2.2" + "engines": { + "node": ">=14.15.0" + }, + "peerDependencies": { + "webpack": "5.x.x", + "webpack-cli": "5.x.x" + } + }, + "node_modules/@webpack-cli/info": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@webpack-cli/info/-/info-2.0.1.tgz", + "integrity": "sha512-fE1UEWTwsAxRhrJNikE7v4EotYflkEhBL7EbajfkPlf6E37/2QshOy/D48Mw8G5XMFlQtS6YV42vtbG9zBpIQA==", + "dev": true, + "engines": { + "node": ">=14.15.0" + }, + "peerDependencies": { + "webpack": "5.x.x", + "webpack-cli": "5.x.x" } }, - "@xtuc/ieee754": { + "node_modules/@webpack-cli/serve": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@webpack-cli/serve/-/serve-2.0.1.tgz", + "integrity": "sha512-0G7tNyS+yW8TdgHwZKlDWYXFA6OJQnoLCQvYKkQP0Q2X205PSQ6RNUj0M+1OB/9gRQaUZ/ccYfaxd0nhaWKfjw==", + "dev": true, + "engines": { + "node": ">=14.15.0" + }, + "peerDependencies": { + "webpack": "5.x.x", + "webpack-cli": "5.x.x" + }, + "peerDependenciesMeta": { + "webpack-dev-server": { + "optional": true + } + } + }, + "node_modules/@xtuc/ieee754": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", "dev": true }, - "@xtuc/long": { + "node_modules/@xtuc/long": { "version": "4.2.2", "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", "dev": true }, - "accepts": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.5.tgz", - "integrity": "sha1-63d99gEXI6OxTopywIBcjoZ0a9I=", + "node_modules/accepts": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", + "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", "dev": true, - "requires": { - "mime-types": "~2.1.18", - "negotiator": "0.6.1" + "dependencies": { + "mime-types": "~2.1.34", + "negotiator": "0.6.3" + }, + "engines": { + "node": ">= 0.6" } }, - "acorn": { - "version": "6.4.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.4.1.tgz", - "integrity": "sha512-ZVA9k326Nwrj3Cj9jlh3wGFutC2ZornPNARZwsNYqQYgN0EsV2d53w5RN/co65Ohn4sUAUtb1rSUAOD6XN9idA==", - "dev": true + "node_modules/acorn": { + "version": "8.8.2", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.2.tgz", + "integrity": "sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==", + "dev": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } }, - "after": { + "node_modules/acorn-import-assertions": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.8.0.tgz", + "integrity": "sha512-m7VZ3jwz4eK6A4Vtt8Ew1/mNbP24u0FhdyfA7fSvnJR6LMdfOYnmuIrrJAgrYfYJ10F/otaHTtrtrtmHdMNzEw==", + "dev": true, + "peerDependencies": { + "acorn": "^8" + } + }, + "node_modules/after": { "version": "0.8.2", "resolved": "https://registry.npmjs.org/after/-/after-0.8.2.tgz", - "integrity": "sha1-/ts5T58OAqqXaOcCvaI7UF+ufh8=", + "integrity": "sha512-QbJ0NTQ/I9DI3uSJA4cbexiwQeRAfjPScqIbSjUDd9TOrcg6pTkdgziesOqxBMBzit8vFCTwrP27t13vFOORRA==", "dev": true }, - "aggregate-error": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.0.1.tgz", - "integrity": "sha512-quoaXsZ9/BLNae5yiNoUz+Nhkwz83GhWwtYFglcjEQB2NDHCIpApbqXxIFnm4Pq/Nvhrsq5sYJFyohrrxnTGAA==", + "node_modules/aggregate-error": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", + "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", "dev": true, - "requires": { + "dependencies": { "clean-stack": "^2.0.0", "indent-string": "^4.0.0" + }, + "engines": { + "node": ">=8" } }, - "ajv": { - "version": "6.9.1", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.9.1.tgz", - "integrity": "sha512-XDN92U311aINL77ieWHmqCcNlwjoP5cHXDxIxbf2MaPYuCXOHS7gHH8jktxeK5omgd52XbSTX6a4Piwd1pQmzA==", + "node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", "dev": true, - "requires": { - "fast-deep-equal": "^2.0.1", + "dependencies": { + "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", "json-schema-traverse": "^0.4.1", "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" } }, - "ajv-errors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/ajv-errors/-/ajv-errors-1.0.1.tgz", - "integrity": "sha512-DCRfO/4nQ+89p/RK43i8Ezd41EqdGIU4ld7nGF8OQ14oc/we5rEntLCUa7+jrn3nn83BosfwZA0wb4pon2o8iQ==", - "dev": true + "node_modules/ajv-formats": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz", + "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", + "dev": true, + "dependencies": { + "ajv": "^8.0.0" + }, + "peerDependencies": { + "ajv": "^8.0.0" + }, + "peerDependenciesMeta": { + "ajv": { + "optional": true + } + } }, - "ajv-keywords": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.4.0.tgz", - "integrity": "sha512-aUjdRFISbuFOl0EIZc+9e4FfZp0bDZgAdOOf30bJmw8VM9v84SHyVyxDfbWxpGYbdZD/9XoKxfHVNmxPkhwyGw==", - "dev": true + "node_modules/ajv-formats/node_modules/ajv": { + "version": "8.12.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", + "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } }, - "ansi-colors": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-3.2.3.tgz", - "integrity": "sha512-LEHHyuhlPY3TmuUYMh2oz89lTShfvgbmzaBcxve9t/9Wuy7Dwf4yoAKcND7KFT1HAQfqZ12qtc+DUrBMeKF9nw==", + "node_modules/ajv-formats/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", "dev": true }, - "ansi-html": { - "version": "0.0.7", - "resolved": "https://registry.npmjs.org/ansi-html/-/ansi-html-0.0.7.tgz", - "integrity": "sha1-gTWEAhliqenm/QOflA0S9WynhZ4=", - "dev": true + "node_modules/ajv-keywords": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "dev": true, + "peerDependencies": { + "ajv": "^6.9.1" + } }, - "ansi-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", - "dev": true + "node_modules/angular": { + "version": "1.8.3", + "resolved": "https://registry.npmjs.org/angular/-/angular-1.8.3.tgz", + "integrity": "sha512-5qjkWIQQVsHj4Sb5TcEs4WZWpFeVFHXwxEBHUhrny41D8UrBAd6T/6nPPAsLngJCReIOqi95W3mxdveveutpZw==", + "deprecated": "For the actively supported Angular, see https://www.npmjs.com/package/@angular/core. AngularJS support has officially ended. For extended AngularJS support options, see https://goo.gle/angularjs-path-forward.", + "peer": true + }, + "node_modules/ansi-html-community": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/ansi-html-community/-/ansi-html-community-0.0.8.tgz", + "integrity": "sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw==", + "dev": true, + "engines": [ + "node >= 0.8.0" + ], + "bin": { + "ansi-html": "bin/ansi-html" + } }, - "ansi-styles": { + "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==", "dev": true, - "requires": { + "dependencies": { "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" } }, - "anymatch": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", - "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", - "dev": true, - "requires": { - "micromatch": "^3.1.4", - "normalize-path": "^2.1.1" - }, - "dependencies": { - "normalize-path": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", - "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", - "dev": true, - "requires": { - "remove-trailing-separator": "^1.0.1" - } - } + "node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dev": true, + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" } }, - "aproba": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", - "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==", - "dev": true - }, - "arr-diff": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", - "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", - "dev": true - }, - "arr-flatten": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", - "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", - "dev": true - }, - "arr-union": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", - "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=", - "dev": true - }, - "array-filter": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/array-filter/-/array-filter-0.0.1.tgz", - "integrity": "sha1-fajPLiZijtcygDWB/SH2fKzS7uw=", - "dev": true + "node_modules/array-buffer-byte-length": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.0.tgz", + "integrity": "sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "is-array-buffer": "^3.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, - "array-flatten": { + "node_modules/array-flatten": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-2.1.2.tgz", "integrity": "sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ==", "dev": true }, - "array-map": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/array-map/-/array-map-0.0.0.tgz", - "integrity": "sha1-iKK6tz0c97zVwbEYoAP2b2ZfpmI=", - "dev": true - }, - "array-reduce": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/array-reduce/-/array-reduce-0.0.0.tgz", - "integrity": "sha1-FziZ0//Rx9k4PkR5Ul2+J4yrXys=", - "dev": true - }, - "array-union": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", - "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", + "node_modules/array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", "dev": true, - "requires": { - "array-uniq": "^1.0.1" + "engines": { + "node": ">=8" } }, - "array-uniq": { + "node_modules/array-uniq": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", - "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=", - "dev": true - }, - "array-unique": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", - "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", - "dev": true + "integrity": "sha512-MNha4BWQ6JbwhFhj03YK552f7cb3AzoE8SzeljgChvL1dl3IcvggXVz1DilzySZkCja+CXuZbdW7yATchWn8/Q==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } }, - "arraybuffer.slice": { + "node_modules/arraybuffer.slice": { "version": "0.0.7", "resolved": "https://registry.npmjs.org/arraybuffer.slice/-/arraybuffer.slice-0.0.7.tgz", "integrity": "sha512-wGUIVQXuehL5TCqQun8OW81jGzAWycqzFF8lFp+GOM5BXLYj3bKNsYC4daB7n6XjCqxQA/qgTJ+8ANR3acjrog==", "dev": true }, - "asn1.js": { - "version": "5.4.1", - "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-5.4.1.tgz", - "integrity": "sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA==", + "node_modules/available-typed-arrays": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz", + "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==", "dev": true, - "requires": { - "bn.js": "^4.0.0", - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0", - "safer-buffer": "^2.1.0" + "engines": { + "node": ">= 0.4" }, - "dependencies": { - "bn.js": { - "version": "4.11.9", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", - "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", - "dev": true - } + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "assert": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/assert/-/assert-1.5.0.tgz", - "integrity": "sha512-EDsgawzwoun2CZkCgtxJbv392v4nbk9XDD06zI+kQYoBM/3RBWLlEyJARDOmhAAosBjWACEkKL6S+lIZtcAubA==", + "node_modules/babel-loader": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-8.3.0.tgz", + "integrity": "sha512-H8SvsMF+m9t15HNLMipppzkC+Y2Yq+v3SonZyU70RBL/h1gxPkH08Ot8pEE9Z4Kd+czyWJClmFS8qzIP9OZ04Q==", "dev": true, - "requires": { - "object-assign": "^4.1.1", - "util": "0.10.3" - }, "dependencies": { - "inherits": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", - "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=", - "dev": true - }, - "util": { - "version": "0.10.3", - "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz", - "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=", - "dev": true, - "requires": { - "inherits": "2.0.1" - } - } + "find-cache-dir": "^3.3.1", + "loader-utils": "^2.0.0", + "make-dir": "^3.1.0", + "schema-utils": "^2.6.5" + }, + "engines": { + "node": ">= 8.9" + }, + "peerDependencies": { + "@babel/core": "^7.0.0", + "webpack": ">=2" } }, - "assign-symbols": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", - "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=", - "dev": true - }, - "async": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/async/-/async-2.6.2.tgz", - "integrity": "sha512-H1qVYh1MYhEEFLsP97cVKqCGo7KfCyTt6uEWqsTBr9SO84oK9Uwbyd/yCW+6rKJLHksBNUVWZDAjfS+Ccx0Bbg==", + "node_modules/babel-plugin-polyfill-corejs2": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.3.tgz", + "integrity": "sha512-8hOdmFYFSZhqg2C/JgLUQ+t52o5nirNwaWM2B9LWteozwIvM14VSwdsCAUET10qT+kmySAlseadmfeeSWFCy+Q==", "dev": true, - "requires": { - "lodash": "^4.17.11" + "dependencies": { + "@babel/compat-data": "^7.17.7", + "@babel/helper-define-polyfill-provider": "^0.3.3", + "semver": "^6.1.1" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "async-each": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.3.tgz", - "integrity": "sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ==", - "dev": true - }, - "async-limiter": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz", - "integrity": "sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==", - "dev": true - }, - "atob": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", - "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", - "dev": true - }, - "babel-loader": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-8.1.0.tgz", - "integrity": "sha512-7q7nC1tYOrqvUrN3LQK4GwSk/TQorZSOlO9C+RZDZpODgyN4ZlCqE5q9cDsyWOliN+aU9B4JX01xK9eJXowJLw==", + "node_modules/babel-plugin-polyfill-corejs3": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.6.0.tgz", + "integrity": "sha512-+eHqR6OPcBhJOGgsIar7xoAB1GcSwVUA3XjAd7HJNzOXT4wv6/H7KIdA/Nc60cvUlDbKApmqNvD1B1bzOt4nyA==", "dev": true, - "requires": { - "find-cache-dir": "^2.1.0", - "loader-utils": "^1.4.0", - "mkdirp": "^0.5.3", - "pify": "^4.0.1", - "schema-utils": "^2.6.5" + "dependencies": { + "@babel/helper-define-polyfill-provider": "^0.3.3", + "core-js-compat": "^3.25.1" }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/babel-plugin-polyfill-regenerator": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.4.1.tgz", + "integrity": "sha512-NtQGmyQDXjQqQ+IzRkBVwEOz9lQ4zxAQZgoAYEtU9dJjnl1Oc98qnN7jcp+bE7O7aYzVpavXE3/VKXNzUbh7aw==", + "dev": true, "dependencies": { - "ajv": { - "version": "6.12.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.0.tgz", - "integrity": "sha512-D6gFiFA0RRLyUbvijN74DWAjXSFxWKaWP7mldxkVhyhAV3+SWA9HEJPHQ2c9soIeTFJqcSdFDGFgdqs1iUU2Hw==", - "dev": true, - "requires": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - } - }, - "ajv-keywords": { - "version": "3.4.1", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.4.1.tgz", - "integrity": "sha512-RO1ibKvd27e6FEShVFfPALuHI3WjSVNeK5FIsmme/LYRNxjKuNj+Dt7bucLa6NdSv3JcVTyMlm9kGR84z1XpaQ==", - "dev": true - }, - "emojis-list": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", - "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", - "dev": true - }, - "fast-deep-equal": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.1.tgz", - "integrity": "sha512-8UEa58QDLauDNfpbrX55Q9jrGHThw2ZMdOky5Gl1CDtVeJDPVrG4Jxx1N8jw2gkWaff5UUuX1KJd+9zGe2B+ZA==", - "dev": true - }, - "json5": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", - "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", - "dev": true, - "requires": { - "minimist": "^1.2.0" - } - }, - "loader-utils": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz", - "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==", - "dev": true, - "requires": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^1.0.1" - } - }, - "mkdirp": { - "version": "0.5.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.4.tgz", - "integrity": "sha512-iG9AK/dJLtJ0XNgTuDbSyNS3zECqDlAhnQW4CsNxBG3LQJBbHmRX1egw39DmtOdCAqY+dKXV+sgPgilNWUKMVw==", - "dev": true, - "requires": { - "minimist": "^1.2.5" - } - }, - "pify": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", - "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", - "dev": true - }, - "schema-utils": { - "version": "2.6.5", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.6.5.tgz", - "integrity": "sha512-5KXuwKziQrTVHh8j/Uxz+QUbxkaLW9X/86NBlx/gnKgtsZA2GIVMUn17qWhRFwF8jdYb3Dig5hRO/W5mZqy6SQ==", - "dev": true, - "requires": { - "ajv": "^6.12.0", - "ajv-keywords": "^3.4.1" - } - } + "@babel/helper-define-polyfill-provider": "^0.3.3" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "backo2": { + "node_modules/backo2": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/backo2/-/backo2-1.0.2.tgz", - "integrity": "sha1-MasayLEpNjRj41s+u2n038+6eUc=", + "integrity": "sha512-zj6Z6M7Eq+PBZ7PQxl5NT665MvJdAkzp0f60nAJ+sLaSCBPMwVak5ZegFbgVCzFcCJTKFoMizvM5Ld7+JrRJHA==", "dev": true }, - "balanced-match": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", - "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", - "dev": true - }, - "base": { - "version": "0.11.2", - "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", - "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", - "dev": true, - "requires": { - "cache-base": "^1.0.1", - "class-utils": "^0.3.5", - "component-emitter": "^1.2.1", - "define-property": "^1.0.0", - "isobject": "^3.0.1", - "mixin-deep": "^1.2.0", - "pascalcase": "^0.1.1" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dev": true, - "requires": { - "is-descriptor": "^1.0.0" - } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - } - } - }, - "base64-arraybuffer": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-0.1.5.tgz", - "integrity": "sha1-c5JncZI7Whl0etZmqlzUv5xunOg=", + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", "dev": true }, - "base64-js": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.3.1.tgz", - "integrity": "sha512-mLQ4i2QO1ytvGWFWmcngKO//JXAQueZvwEKtjgQFM4jIK0kU+ytMfplL8j+n5mspOfjHwoAg+9yhb7BwAHm36g==", - "dev": true + "node_modules/base64-arraybuffer": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-0.1.4.tgz", + "integrity": "sha512-a1eIFi4R9ySrbiMuyTGx5e92uRH5tQY6kArNcFaKBUleIoLjdjBg7Zxm3Mqm3Kmkf27HLR/1fnxX9q8GQ7Iavg==", + "dev": true, + "engines": { + "node": ">= 0.6.0" + } }, - "base64id": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/base64id/-/base64id-1.0.0.tgz", - "integrity": "sha1-R2iMuZu2gE8OBtPnY7HDLlfY5rY=", - "dev": true + "node_modules/base64id": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/base64id/-/base64id-2.0.0.tgz", + "integrity": "sha512-lGe34o6EHj9y3Kts9R4ZYs/Gr+6N7MCaMlIFA3F1R2O5/m7K06AxfSeO5530PEERE6/WyEg3lsuyw4GHlPZHog==", + "dev": true, + "engines": { + "node": "^4.5.0 || >= 5.9" + } }, - "batch": { + "node_modules/batch": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz", - "integrity": "sha1-3DQxT05nkxgJP8dgJyUl+UvyXBY=", + "integrity": "sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw==", "dev": true }, - "better-assert": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/better-assert/-/better-assert-1.0.2.tgz", - "integrity": "sha1-QIZrnhueC1W0gYlDEeaPr/rrxSI=", - "dev": true, - "requires": { - "callsite": "1.0.0" - } - }, - "big.js": { + "node_modules/big.js": { "version": "5.2.2", "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", - "dev": true - }, - "binary-extensions": { - "version": "1.13.1", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz", - "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==", - "dev": true + "dev": true, + "engines": { + "node": "*" + } }, - "bindings": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", - "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", + "node_modules/binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", "dev": true, - "optional": true, - "requires": { - "file-uri-to-path": "1.0.0" + "engines": { + "node": ">=8" } }, - "blob": { + "node_modules/blob": { "version": "0.0.5", "resolved": "https://registry.npmjs.org/blob/-/blob-0.0.5.tgz", "integrity": "sha512-gaqbzQPqOoamawKg0LGVd7SzLgXS+JH61oWprSLH+P+abTczqJbhTR8CmJ2u9/bUYNmHTGJx/UEmn6doAvvuig==", "dev": true }, - "bluebird": { - "version": "3.7.2", - "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", - "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==", - "dev": true - }, - "bn.js": { - "version": "5.1.3", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.1.3.tgz", - "integrity": "sha512-GkTiFpjFtUzU9CbMeJ5iazkCzGL3jrhzerzZIuqLABjbwRaFt33I9tUdSNryIptM+RxDet6OKm2WnLXzW51KsQ==", - "dev": true - }, - "body-parser": { - "version": "1.19.0", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz", - "integrity": "sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw==", + "node_modules/body-parser": { + "version": "1.20.2", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.2.tgz", + "integrity": "sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA==", "dev": true, - "requires": { - "bytes": "3.1.0", - "content-type": "~1.0.4", + "dependencies": { + "bytes": "3.1.2", + "content-type": "~1.0.5", "debug": "2.6.9", - "depd": "~1.1.2", - "http-errors": "1.7.2", + "depd": "2.0.0", + "destroy": "1.2.0", + "http-errors": "2.0.0", "iconv-lite": "0.4.24", - "on-finished": "~2.3.0", - "qs": "6.7.0", - "raw-body": "2.4.0", - "type-is": "~1.6.17" + "on-finished": "2.4.1", + "qs": "6.11.0", + "raw-body": "2.5.2", + "type-is": "~1.6.18", + "unpipe": "1.0.0" }, + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/body-parser/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, "dependencies": { - "bytes": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", - "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==", - "dev": true - }, - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "http-errors": { - "version": "1.7.2", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz", - "integrity": "sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==", - "dev": true, - "requires": { - "depd": "~1.1.2", - "inherits": "2.0.3", - "setprototypeof": "1.1.1", - "statuses": ">= 1.5.0 < 2", - "toidentifier": "1.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - }, - "setprototypeof": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz", - "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==", - "dev": true - } + "ms": "2.0.0" } }, - "bonjour": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/bonjour/-/bonjour-3.5.0.tgz", - "integrity": "sha1-jokKGD2O6aI5OzhExpGkK897yfU=", + "node_modules/body-parser/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, + "node_modules/bonjour-service": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/bonjour-service/-/bonjour-service-1.1.1.tgz", + "integrity": "sha512-Z/5lQRMOG9k7W+FkeGTNjh7htqn/2LMnfOvBZ8pynNZCM9MwkQkI3zeI4oz09uWdcgmgHugVvBqxGg4VQJ5PCg==", "dev": true, - "requires": { - "array-flatten": "^2.1.0", - "deep-equal": "^1.0.1", + "dependencies": { + "array-flatten": "^2.1.2", "dns-equal": "^1.0.0", - "dns-txt": "^2.0.2", - "multicast-dns": "^6.0.1", - "multicast-dns-service-types": "^1.1.0" + "fast-deep-equal": "^3.1.3", + "multicast-dns": "^7.2.5" } }, - "brace-expansion": { + "node_modules/brace-expansion": { "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "dev": true, - "requires": { + "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" } }, - "braces": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", - "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", - "dev": true, - "requires": { - "arr-flatten": "^1.1.0", - "array-unique": "^0.3.2", - "extend-shallow": "^2.0.1", - "fill-range": "^4.0.0", - "isobject": "^3.0.1", - "repeat-element": "^1.1.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } + "node_modules/braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "dependencies": { + "fill-range": "^7.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/browserslist": { + "version": "4.21.5", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.5.tgz", + "integrity": "sha512-tUkiguQGW7S3IhB7N+c2MV/HZPSCPAAiYBZXLsBhFB/PCy6ZKKsZrmBayHV9fdGV/ARIfJ14NkxKzRDjvp7L6w==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" } + ], + "dependencies": { + "caniuse-lite": "^1.0.30001449", + "electron-to-chromium": "^1.4.284", + "node-releases": "^2.0.8", + "update-browserslist-db": "^1.0.10" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" } }, - "brorand": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", - "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=", + "node_modules/buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", "dev": true }, - "browserify-aes": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", - "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", - "dev": true, - "requires": { - "buffer-xor": "^1.0.3", - "cipher-base": "^1.0.0", - "create-hash": "^1.1.0", - "evp_bytestokey": "^1.0.3", - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "browserify-cipher": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz", - "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==", + "node_modules/bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", "dev": true, - "requires": { - "browserify-aes": "^1.0.4", - "browserify-des": "^1.0.0", - "evp_bytestokey": "^1.0.0" + "engines": { + "node": ">= 0.8" } }, - "browserify-des": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz", - "integrity": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==", + "node_modules/cacache": { + "version": "15.3.0", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-15.3.0.tgz", + "integrity": "sha512-VVdYzXEn+cnbXpFgWs5hTT7OScegHVmLhJIR8Ufqk3iFD6A6j5iSX1KuBTfNEv4tdJWE2PzA6IVFtcLC7fN9wQ==", "dev": true, - "requires": { - "cipher-base": "^1.0.1", - "des.js": "^1.0.0", - "inherits": "^2.0.1", - "safe-buffer": "^5.1.2" + "dependencies": { + "@npmcli/fs": "^1.0.0", + "@npmcli/move-file": "^1.0.1", + "chownr": "^2.0.0", + "fs-minipass": "^2.0.0", + "glob": "^7.1.4", + "infer-owner": "^1.0.4", + "lru-cache": "^6.0.0", + "minipass": "^3.1.1", + "minipass-collect": "^1.0.2", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.2", + "mkdirp": "^1.0.3", + "p-map": "^4.0.0", + "promise-inflight": "^1.0.1", + "rimraf": "^3.0.2", + "ssri": "^8.0.1", + "tar": "^6.0.2", + "unique-filename": "^1.1.1" + }, + "engines": { + "node": ">= 10" } }, - "browserify-rsa": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.0.1.tgz", - "integrity": "sha1-IeCr+vbyApzy+vsTNWenAdQTVSQ=", + "node_modules/cacache/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", "dev": true, - "requires": { - "bn.js": "^4.1.0", - "randombytes": "^2.0.1" - }, "dependencies": { - "bn.js": { - "version": "4.11.9", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", - "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", - "dev": true - } - } - }, - "browserify-sign": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.2.1.tgz", - "integrity": "sha512-/vrA5fguVAKKAVTNJjgSm1tRQDHUU6DbwO9IROu/0WAzC8PKhucDSh18J0RMvVeHAn5puMd+QHC2erPRNf8lmg==", - "dev": true, - "requires": { - "bn.js": "^5.1.1", - "browserify-rsa": "^4.0.1", - "create-hash": "^1.2.0", - "create-hmac": "^1.1.7", - "elliptic": "^6.5.3", - "inherits": "^2.0.4", - "parse-asn1": "^5.1.5", - "readable-stream": "^3.6.0", - "safe-buffer": "^5.2.0" - }, - "dependencies": { - "inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true - }, - "readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "dev": true, - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - }, - "safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "dev": true - } + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" } }, - "browserify-zlib": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz", - "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==", + "node_modules/cacache/node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", "dev": true, - "requires": { - "pako": "~1.0.5" + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "browserslist": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.4.1.tgz", - "integrity": "sha512-pEBxEXg7JwaakBXjATYw/D1YZh4QUSCX/Mnd/wnqSRPPSi1U39iDhDoKGoBUcraKdxDlrYqJxSI5nNvD+dWP2A==", + "node_modules/cacache/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "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==", "dev": true, - "requires": { - "caniuse-lite": "^1.0.30000929", - "electron-to-chromium": "^1.3.103", - "node-releases": "^1.1.3" + "dependencies": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "buffer": { - "version": "4.9.2", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.2.tgz", - "integrity": "sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg==", + "node_modules/camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", "dev": true, - "requires": { - "base64-js": "^1.0.2", - "ieee754": "^1.1.4", - "isarray": "^1.0.0" + "engines": { + "node": ">=6" } }, - "buffer-from": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", - "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==", - "dev": true - }, - "buffer-indexof": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/buffer-indexof/-/buffer-indexof-1.1.1.tgz", - "integrity": "sha512-4/rOEg86jivtPTeOUUT61jJO1Ya1TrR/OkqCSZDyq84WJh3LuuiphBYJN+fm5xufIk4XAFcEwte/8WzC8If/1g==", - "dev": true - }, - "buffer-xor": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", - "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=", - "dev": true - }, - "builtin-status-codes": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz", - "integrity": "sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug=", - "dev": true - }, - "bytes": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", - "integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=", - "dev": true - }, - "cacache": { - "version": "12.0.4", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-12.0.4.tgz", - "integrity": "sha512-a0tMB40oefvuInr4Cwb3GerbL9xTj1D5yg0T5xrjGCGyfvbxseIXX7BAO/u/hIXdafzOI5JC3wDwHyf24buOAQ==", + "node_modules/caniuse-lite": { + "version": "1.0.30001480", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001480.tgz", + "integrity": "sha512-q7cpoPPvZYgtyC4VaBSN0Bt+PJ4c4EYRf0DrduInOz2SkFpHD5p3LnvEpqBp7UnJn+8x1Ogl1s38saUxe+ihQQ==", "dev": true, - "requires": { - "bluebird": "^3.5.5", - "chownr": "^1.1.1", - "figgy-pudding": "^3.5.1", - "glob": "^7.1.4", - "graceful-fs": "^4.1.15", - "infer-owner": "^1.0.3", - "lru-cache": "^5.1.1", - "mississippi": "^3.0.0", - "mkdirp": "^0.5.1", - "move-concurrently": "^1.0.1", - "promise-inflight": "^1.0.1", - "rimraf": "^2.6.3", - "ssri": "^6.0.1", - "unique-filename": "^1.1.1", - "y18n": "^4.0.0" - }, - "dependencies": { - "glob": { - "version": "7.1.6", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", - "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", - "dev": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" }, - "lru-cache": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", - "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", - "dev": true, - "requires": { - "yallist": "^3.0.2" - } + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" }, - "yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", - "dev": true + { + "type": "github", + "url": "https://github.com/sponsors/ai" } - } + ] }, - "cache-base": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", - "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", - "dev": true, - "requires": { - "collection-visit": "^1.0.0", - "component-emitter": "^1.2.1", - "get-value": "^2.0.6", - "has-value": "^1.0.0", - "isobject": "^3.0.1", - "set-value": "^2.0.0", - "to-object-path": "^0.3.0", - "union-value": "^1.0.0", - "unset-value": "^1.0.0" - } - }, - "callsite": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/callsite/-/callsite-1.0.0.tgz", - "integrity": "sha1-KAOY5dZkvXQDi28JBRU+borxvCA=", - "dev": true - }, - "camelcase": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.0.0.tgz", - "integrity": "sha512-faqwZqnWxbxn+F1d399ygeamQNy3lPp/H9H6rNrqYh4FSVCtcY+3cub1MxA8o9mDd55mM8Aghuu/kuyYA6VTsA==", - "dev": true - }, - "caniuse-lite": { - "version": "1.0.30000938", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30000938.tgz", - "integrity": "sha512-ekW8NQ3/FvokviDxhdKLZZAx7PptXNwxKgXtnR5y+PR3hckwuP3yJ1Ir+4/c97dsHNqtAyfKUGdw8P4EYzBNgw==", - "dev": true - }, - "chalk": { + "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==", "dev": true, - "requires": { + "dependencies": { "ansi-styles": "^3.2.1", "escape-string-regexp": "^1.0.5", "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" } }, - "chokidar": { - "version": "2.1.8", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz", - "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==", - "dev": true, - "requires": { - "anymatch": "^2.0.0", - "async-each": "^1.0.1", - "braces": "^2.3.2", - "fsevents": "^1.2.7", - "glob-parent": "^3.1.0", - "inherits": "^2.0.3", - "is-binary-path": "^1.0.0", - "is-glob": "^4.0.0", - "normalize-path": "^3.0.0", - "path-is-absolute": "^1.0.0", - "readdirp": "^2.2.1", - "upath": "^1.1.1" - } - }, - "chownr": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", - "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==", - "dev": true - }, - "chrome-trace-event": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.2.tgz", - "integrity": "sha512-9e/zx1jw7B4CO+c/RXoCsfg/x1AfUBioy4owYH0bJprEYAx5hRFLRhWBqHAG57D0ZM4H7vxbP7bPe0VwhQRYDQ==", + "node_modules/chokidar": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", + "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", "dev": true, - "requires": { - "tslib": "^1.9.0" + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ], + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" } }, - "cipher-base": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", - "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", + "node_modules/chownr": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", + "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", "dev": true, - "requires": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" + "engines": { + "node": ">=10" } }, - "class-utils": { - "version": "0.3.6", - "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", - "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", + "node_modules/chrome-trace-event": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz", + "integrity": "sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==", "dev": true, - "requires": { - "arr-union": "^3.1.0", - "define-property": "^0.2.5", - "isobject": "^3.0.0", - "static-extend": "^0.1.1" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "requires": { - "is-descriptor": "^0.1.0" - } - } + "engines": { + "node": ">=6.0" } }, - "clean-stack": { + "node_modules/clean-stack": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", - "dev": true + "dev": true, + "engines": { + "node": ">=6" + } }, - "clean-webpack-plugin": { - "version": "0.1.19", - "resolved": "https://registry.npmjs.org/clean-webpack-plugin/-/clean-webpack-plugin-0.1.19.tgz", - "integrity": "sha512-M1Li5yLHECcN2MahoreuODul5LkjohJGFxLPTjl3j1ttKrF5rgjZET1SJduuqxLAuT1gAPOdkhg03qcaaU1KeA==", + "node_modules/clean-webpack-plugin": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/clean-webpack-plugin/-/clean-webpack-plugin-4.0.0.tgz", + "integrity": "sha512-WuWE1nyTNAyW5T7oNyys2EN0cfP2fdRxhxnIQWiAp0bMabPdHhoGxM8A6YL2GhqwgrPnnaemVE7nv5XJ2Fhh2w==", "dev": true, - "requires": { - "rimraf": "^2.6.1" + "dependencies": { + "del": "^4.1.1" + }, + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "webpack": ">=4.0.0 <6.0.0" } }, - "cli": { + "node_modules/cli": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/cli/-/cli-1.0.1.tgz", - "integrity": "sha1-IoF1NPJL+klQw01TLUjsvGIbjBQ=", + "integrity": "sha512-41U72MB56TfUMGndAKK8vJ78eooOD4Z5NOL4xEfjc0c23s+6EYKXlXsmACBVclLP1yOfWCgEganVzddVrSNoTg==", "dev": true, - "requires": { + "dependencies": { "exit": "0.1.2", "glob": "^7.1.1" + }, + "engines": { + "node": ">=0.2.5" } }, - "cliui": { + "node_modules/cliui": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", "dev": true, - "requires": { + "dependencies": { "string-width": "^4.2.0", "strip-ansi": "^6.0.0", "wrap-ansi": "^6.2.0" } }, - "clone-deep": { + "node_modules/cliui/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/cliui/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/clone-deep": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz", "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==", "dev": true, - "requires": { + "dependencies": { "is-plain-object": "^2.0.4", "kind-of": "^6.0.2", "shallow-clone": "^3.0.0" + }, + "engines": { + "node": ">=6" } }, - "collection-visit": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", - "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", - "dev": true, - "requires": { - "map-visit": "^1.0.0", - "object-visit": "^1.0.0" - } - }, - "color-convert": { + "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==", "dev": true, - "requires": { + "dependencies": { "color-name": "1.1.3" } }, - "color-name": { + "node_modules/color-name": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true + }, + "node_modules/colorette": { + "version": "2.0.20", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz", + "integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==", "dev": true }, - "colors": { + "node_modules/colors": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz", "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==", - "dev": true + "dev": true, + "engines": { + "node": ">=0.1.90" + } }, - "commander": { + "node_modules/commander": { "version": "2.20.3", "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", "dev": true }, - "commondir": { + "node_modules/commondir": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", - "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=", + "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==", "dev": true }, - "component-bind": { + "node_modules/component-bind": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/component-bind/-/component-bind-1.0.0.tgz", - "integrity": "sha1-AMYIq33Nk4l8AAllGx06jh5zu9E=", + "integrity": "sha512-WZveuKPeKAG9qY+FkYDeADzdHyTYdIboXS59ixDeRJL5ZhxpqUnxSOwop4FQjMsiYm3/Or8cegVbpAHNA7pHxw==", "dev": true }, - "component-emitter": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz", - "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=", + "node_modules/component-emitter": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", + "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==", "dev": true }, - "component-inherit": { + "node_modules/component-inherit": { "version": "0.0.3", "resolved": "https://registry.npmjs.org/component-inherit/-/component-inherit-0.0.3.tgz", - "integrity": "sha1-ZF/ErfWLcrZJ1crmUTVhnbJv8UM=", + "integrity": "sha512-w+LhYREhatpVqTESyGFg3NlP6Iu0kEKUHETY9GoZP/pQyW4mHFZuFWRUCIqVPZ36ueVLtoOEZaAqbCF2RDndaA==", "dev": true }, - "compressible": { + "node_modules/compressible": { "version": "2.0.18", "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz", "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==", "dev": true, - "requires": { + "dependencies": { "mime-db": ">= 1.43.0 < 2" }, - "dependencies": { - "mime-db": { - "version": "1.44.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.44.0.tgz", - "integrity": "sha512-/NOTfLrsPBVeH7YtFPgsVWveuL+4SjjYxaQ1xtM1KMFj7HdxlBlxeyNLzhyJVx7r4rZGJAZ/6lkKCitSc/Nmpg==", - "dev": true - } + "engines": { + "node": ">= 0.6" } }, - "compression": { + "node_modules/compression": { "version": "1.7.4", "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.4.tgz", "integrity": "sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==", "dev": true, - "requires": { + "dependencies": { "accepts": "~1.3.5", "bytes": "3.0.0", "compressible": "~2.0.16", @@ -2166,154 +2986,142 @@ "safe-buffer": "5.1.2", "vary": "~1.1.2" }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/compression/node_modules/bytes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", + "integrity": "sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/compression/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - } + "ms": "2.0.0" } }, - "concat-map": { + "node_modules/compression/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, + "node_modules/compression/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==", + "dev": true + }, + "node_modules/concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", "dev": true }, - "concat-stream": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", - "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", - "dev": true, - "requires": { - "buffer-from": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^2.2.2", - "typedarray": "^0.0.6" - } - }, - "connect": { + "node_modules/connect": { "version": "3.7.0", "resolved": "https://registry.npmjs.org/connect/-/connect-3.7.0.tgz", "integrity": "sha512-ZqRXc+tZukToSNmh5C2iWMSoV3X1YUcPbqEM4DkEG5tNQXrQUZCNVGGv3IuicnkMtPfGf3Xtp8WCXs295iQ1pQ==", "dev": true, - "requires": { + "dependencies": { "debug": "2.6.9", "finalhandler": "1.1.2", "parseurl": "~1.3.3", "utils-merge": "1.0.1" }, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/connect-history-api-fallback": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-2.0.0.tgz", + "integrity": "sha512-U73+6lQFmfiNPrYbXqr6kZ1i1wiRqXnp2nhMsINseWXO8lDau0LGEffJ8kQi4EjLZympVgRdvqjAgiZ1tgzDDA==", + "dev": true, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/connect/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - } + "ms": "2.0.0" } }, - "connect-history-api-fallback": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-1.6.0.tgz", - "integrity": "sha512-e54B99q/OUoH64zYYRf3HBP5z24G38h5D3qXu23JGRoigpX5Ss4r9ZnDk3g0Z8uQC2x2lPaJ+UlWBc1ZWBWdLg==", + "node_modules/connect/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", "dev": true }, - "console-browserify": { + "node_modules/console-browserify": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.1.0.tgz", - "integrity": "sha1-8CQcRXMKn8YyOyBtvzjtx0HQuxA=", + "integrity": "sha512-duS7VP5pvfsNLDvL1O4VOEbw37AI3A4ZUQYemvDlnpGrNu9tprR7BYWpDYwC0Xia0Zxz5ZupdiIrUp0GH1aXfg==", "dev": true, - "requires": { + "dependencies": { "date-now": "^0.1.4" } }, - "constants-browserify": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz", - "integrity": "sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=", - "dev": true - }, - "content-disposition": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz", - "integrity": "sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g==", + "node_modules/content-disposition": { + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", + "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", "dev": true, - "requires": { - "safe-buffer": "5.1.2" + "dependencies": { + "safe-buffer": "5.2.1" + }, + "engines": { + "node": ">= 0.6" } }, - "content-type": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", - "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==", - "dev": true - }, - "convert-source-map": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.6.0.tgz", - "integrity": "sha512-eFu7XigvxdZ1ETfbgPBohgyQ/Z++C0eEhTor0qRwBw9unw+L0/6V8wkSuGgzdThkiS5lSpdptOQPD8Ak40a+7A==", + "node_modules/content-type": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", + "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", "dev": true, - "requires": { - "safe-buffer": "~5.1.1" + "engines": { + "node": ">= 0.6" } }, - "cookie": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.3.1.tgz", - "integrity": "sha1-5+Ch+e9DtMi6klxcWpboBtFoc7s=", - "dev": true - }, - "cookie-signature": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", - "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=", + "node_modules/convert-source-map": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", + "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", "dev": true }, - "copy-concurrently": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/copy-concurrently/-/copy-concurrently-1.0.5.tgz", - "integrity": "sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A==", + "node_modules/cookie": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.2.tgz", + "integrity": "sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==", "dev": true, - "requires": { - "aproba": "^1.1.1", - "fs-write-stream-atomic": "^1.0.8", - "iferr": "^0.1.5", - "mkdirp": "^0.5.1", - "rimraf": "^2.5.4", - "run-queue": "^1.0.0" + "engines": { + "node": ">= 0.6" } }, - "copy-descriptor": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", - "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=", + "node_modules/cookie-signature": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", + "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==", "dev": true }, - "copy-webpack-plugin": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-6.1.1.tgz", - "integrity": "sha512-4TlkHFYkrZ3WppLA5XkPmBLI5lnEpFsXvpeqxCf5PzkratZiVklNXsvoQkLhUU43q7ZL3AOXtaHAd9jLNJoU0w==", + "node_modules/copy-webpack-plugin": { + "version": "6.4.1", + "resolved": "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-6.4.1.tgz", + "integrity": "sha512-MXyPCjdPVx5iiWyl40Va3JGh27bKzOTNY3NjUTrosD2q7dR/cLD0013uqJ3BpFbUjyONINjb6qI7nDIJujrMbA==", "dev": true, - "requires": { + "dependencies": { "cacache": "^15.0.5", "fast-glob": "^3.2.4", "find-cache-dir": "^3.3.1", @@ -2322,475 +3130,173 @@ "loader-utils": "^2.0.0", "normalize-path": "^3.0.0", "p-limit": "^3.0.2", - "schema-utils": "^2.7.1", + "schema-utils": "^3.0.0", "serialize-javascript": "^5.0.1", "webpack-sources": "^1.4.3" }, - "dependencies": { - "ajv": { - "version": "6.12.5", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.5.tgz", - "integrity": "sha512-lRF8RORchjpKG50/WFf8xmg7sgCLFiYNNnqdKflk63whMQcWR5ngGjiSXkL9bjxy6B2npOK2HSMN49jEBMSkag==", - "dev": true, - "requires": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - } - }, - "ajv-keywords": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", - "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", - "dev": true - }, - "cacache": { - "version": "15.0.5", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-15.0.5.tgz", - "integrity": "sha512-lloiL22n7sOjEEXdL8NAjTgv9a1u43xICE9/203qonkZUCj5X1UEWIdf2/Y0d6QcCtMzbKQyhrcDbdvlZTs/+A==", - "dev": true, - "requires": { - "@npmcli/move-file": "^1.0.1", - "chownr": "^2.0.0", - "fs-minipass": "^2.0.0", - "glob": "^7.1.4", - "infer-owner": "^1.0.4", - "lru-cache": "^6.0.0", - "minipass": "^3.1.1", - "minipass-collect": "^1.0.2", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.2", - "mkdirp": "^1.0.3", - "p-map": "^4.0.0", - "promise-inflight": "^1.0.1", - "rimraf": "^3.0.2", - "ssri": "^8.0.0", - "tar": "^6.0.2", - "unique-filename": "^1.1.1" - } - }, - "chownr": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", - "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", - "dev": true - }, - "emojis-list": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", - "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", - "dev": true - }, - "fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "dev": true - }, - "find-cache-dir": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.1.tgz", - "integrity": "sha512-t2GDMt3oGC/v+BMwzmllWDuJF/xcDtE5j/fCGbqDD7OLuJkj0cfh1YSA5VKPvwMeLFLNDBkwOKZ2X85jGLVftQ==", - "dev": true, - "requires": { - "commondir": "^1.0.1", - "make-dir": "^3.0.2", - "pkg-dir": "^4.1.0" - } - }, - "find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, - "requires": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - } - }, - "glob": { - "version": "7.1.6", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", - "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", - "dev": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "glob-parent": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.1.tgz", - "integrity": "sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ==", - "dev": true, - "requires": { - "is-glob": "^4.0.1" - } - }, - "json5": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.3.tgz", - "integrity": "sha512-KXPvOm8K9IJKFM0bmdn8QXh7udDh1g/giieX0NLCaMnb4hEiVFqnop2ImTXCc5e0/oHz3LTqmHGtExn5hfMkOA==", - "dev": true, - "requires": { - "minimist": "^1.2.5" - } - }, - "loader-utils": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.0.tgz", - "integrity": "sha512-rP4F0h2RaWSvPEkD7BLDFQnvSf+nK+wr3ESUjNTyAGobqrijmW92zc+SO6d4p4B1wh7+B/Jg1mkQe5NYUEHtHQ==", - "dev": true, - "requires": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^2.1.2" - } - }, - "locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dev": true, - "requires": { - "p-locate": "^4.1.0" - } - }, - "make-dir": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", - "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", - "dev": true, - "requires": { - "semver": "^6.0.0" - } - }, - "mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", - "dev": true - }, - "p-limit": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.0.2.tgz", - "integrity": "sha512-iwqZSOoWIW+Ew4kAGUlN16J4M7OB3ysMLSZtnhmqx7njIHFPlxWBX8xo3lVTyFVq6mI/lL9qt2IsN1sHwaxJkg==", - "dev": true, - "requires": { - "p-try": "^2.0.0" - } - }, - "p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dev": true, - "requires": { - "p-limit": "^2.2.0" - }, - "dependencies": { - "p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dev": true, - "requires": { - "p-try": "^2.0.0" - } - } - } - }, - "p-map": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", - "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", - "dev": true, - "requires": { - "aggregate-error": "^3.0.0" - } - }, - "path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "dev": true - }, - "pkg-dir": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", - "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", - "dev": true, - "requires": { - "find-up": "^4.0.0" - } - }, - "rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "dev": true, - "requires": { - "glob": "^7.1.3" - } - }, - "schema-utils": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.1.tgz", - "integrity": "sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg==", - "dev": true, - "requires": { - "@types/json-schema": "^7.0.5", - "ajv": "^6.12.4", - "ajv-keywords": "^3.5.2" - } - }, - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - }, - "serialize-javascript": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-5.0.1.tgz", - "integrity": "sha512-SaaNal9imEO737H2c05Og0/8LUXG7EnsZyMa8MzkmuHoELfT6txuj0cMqRj6zfPKnmQ1yasR4PCJc8x+M4JSPA==", - "dev": true, - "requires": { - "randombytes": "^2.1.0" - } - }, - "ssri": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-8.0.0.tgz", - "integrity": "sha512-aq/pz989nxVYwn16Tsbj1TqFpD5LLrQxHf5zaHuieFV+R0Bbr4y8qUsOA45hXT/N4/9UNXTarBjnjVmjSOVaAA==", - "dev": true, - "requires": { - "minipass": "^3.1.1" - } - } + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^4.37.0 || ^5.0.0" } }, - "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=", - "dev": true - }, - "create-ecdh": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.4.tgz", - "integrity": "sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A==", + "node_modules/copy-webpack-plugin/node_modules/schema-utils": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.2.tgz", + "integrity": "sha512-pvjEHOgWc9OWA/f/DE3ohBWTD6EleVLf7iFUkoSwAxttdBhB9QUebQgxER2kWueOvRJXPHNnyrvvh9eZINB8Eg==", "dev": true, - "requires": { - "bn.js": "^4.1.0", - "elliptic": "^6.5.3" - }, "dependencies": { - "bn.js": { - "version": "4.11.9", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", - "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", - "dev": true - } + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" } }, - "create-hash": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", - "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", + "node_modules/core-js-compat": { + "version": "3.30.1", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.30.1.tgz", + "integrity": "sha512-d690npR7MC6P0gq4npTl5n2VQeNAmUrJ90n+MHiKS7W2+xno4o3F5GDEuylSdi6EJ3VssibSGXOa1r3YXD3Mhw==", "dev": true, - "requires": { - "cipher-base": "^1.0.1", - "inherits": "^2.0.1", - "md5.js": "^1.3.4", - "ripemd160": "^2.0.1", - "sha.js": "^2.4.0" + "dependencies": { + "browserslist": "^4.21.5" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-js" } }, - "create-hmac": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", - "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", - "dev": true, - "requires": { - "cipher-base": "^1.0.3", - "create-hash": "^1.1.0", - "inherits": "^2.0.1", - "ripemd160": "^2.0.0", - "safe-buffer": "^5.0.1", - "sha.js": "^2.4.8" - } + "node_modules/core-util-is": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", + "dev": true }, - "cross-spawn": { + "node_modules/cross-spawn": { "version": "6.0.5", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", "dev": true, - "requires": { + "dependencies": { "nice-try": "^1.0.4", "path-key": "^2.0.1", "semver": "^5.5.0", "shebang-command": "^1.2.0", "which": "^1.2.9" + }, + "engines": { + "node": ">=4.8" } }, - "crypto-browserify": { - "version": "3.12.0", - "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz", - "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==", + "node_modules/cross-spawn/node_modules/semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", "dev": true, - "requires": { - "browserify-cipher": "^1.0.0", - "browserify-sign": "^4.0.0", - "create-ecdh": "^4.0.0", - "create-hash": "^1.1.0", - "create-hmac": "^1.1.0", - "diffie-hellman": "^5.0.0", - "inherits": "^2.0.1", - "pbkdf2": "^3.0.3", - "public-encrypt": "^4.0.0", - "randombytes": "^2.0.0", - "randomfill": "^1.0.3" + "bin": { + "semver": "bin/semver" } }, - "custom-event": { + "node_modules/custom-event": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/custom-event/-/custom-event-1.0.1.tgz", - "integrity": "sha1-XQKkaFCt8bSjF5RqOSj8y1v9BCU=", + "integrity": "sha512-GAj5FOq0Hd+RsCGVJxZuKaIDXDf3h6GQoNEjFgbLLI/trgtavwUbSnZ5pVfg27DVCaWjIohryS0JFwIJyT2cMg==", "dev": true }, - "cyclist": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/cyclist/-/cyclist-1.0.1.tgz", - "integrity": "sha1-WW6WmP0MgOEgOMK4LW6xs1tiJNk=", - "dev": true - }, - "date-format": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/date-format/-/date-format-2.1.0.tgz", - "integrity": "sha512-bYQuGLeFxhkxNOF3rcMtiZxvCBAquGzZm6oWA1oZ0g2THUzivaRhv8uOhdr19LmoobSOLoIAxeUK2RdbM8IFTA==", - "dev": true + "node_modules/date-format": { + "version": "4.0.14", + "resolved": "https://registry.npmjs.org/date-format/-/date-format-4.0.14.tgz", + "integrity": "sha512-39BOQLs9ZjKh0/patS9nrT8wc3ioX3/eA/zgbKNopnF2wCqJEoxywwwElATYvRsXdnOxA/OQeQoFZ3rFjVajhg==", + "dev": true, + "engines": { + "node": ">=4.0" + } }, - "date-now": { + "node_modules/date-now": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/date-now/-/date-now-0.1.4.tgz", - "integrity": "sha1-6vQ5/U1ISK105cx9vvIAZyueNFs=", + "integrity": "sha512-AsElvov3LoNB7tf5k37H2jYSB+ZZPMT5sG2QjJCcdlV5chIv6htBUBUui2IKRjgtKAKtCBN7Zbwa+MtwLjSeNw==", "dev": true }, - "debug": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", "dev": true, - "requires": { - "ms": "^2.1.1" + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } } }, - "decamelize": { + "node_modules/decamelize": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", - "dev": true - }, - "decode-uri-component": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", - "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=", - "dev": true - }, - "deep-equal": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.1.1.tgz", - "integrity": "sha512-yd9c5AdiqVcR+JjcwUQb9DkhJc8ngNr0MahEBGvDiJw8puWab2yZlh+nkasOnZP+EGTAP6rRp2JzJhJZzvNF8g==", + "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==", "dev": true, - "requires": { - "is-arguments": "^1.0.4", - "is-date-object": "^1.0.1", - "is-regex": "^1.0.4", - "object-is": "^1.0.1", - "object-keys": "^1.1.1", - "regexp.prototype.flags": "^1.2.0" - }, - "dependencies": { - "object-keys": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", - "dev": true - } + "engines": { + "node": ">=0.10.0" } }, - "default-gateway": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/default-gateway/-/default-gateway-4.2.0.tgz", - "integrity": "sha512-h6sMrVB1VMWVrW13mSc6ia/DwYYw5MN6+exNu1OaJeFac5aSAvwM7lZ0NVfTABuSkQelr4h5oebg3KB1XPdjgA==", + "node_modules/default-gateway": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/default-gateway/-/default-gateway-6.0.3.tgz", + "integrity": "sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg==", "dev": true, - "requires": { - "execa": "^1.0.0", - "ip-regex": "^2.1.0" + "dependencies": { + "execa": "^5.0.0" + }, + "engines": { + "node": ">= 10" } }, - "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==", + "node_modules/define-lazy-prop": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz", + "integrity": "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==", "dev": true, - "requires": { - "object-keys": "^1.0.12" + "engines": { + "node": ">=8" } }, - "define-property": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", - "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", + "node_modules/define-properties": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.0.tgz", + "integrity": "sha512-xvqAVKGfT1+UAvPwKTVw/njhdQ8ZhXK4lI0bCIuCMrp2up9nPnaDftrLtmpTazqd1o+UY4zgzU+avtMbDP+ldA==", "dev": true, - "requires": { - "is-descriptor": "^1.0.2", - "isobject": "^3.0.1" - }, "dependencies": { - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - } + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "del": { + "node_modules/del": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/del/-/del-4.1.1.tgz", "integrity": "sha512-QwGuEUouP2kVwQenAsOof5Fv8K9t3D8Ca8NxcXKrIpEHjTXK5J2nXLdP+ALI1cgv8wj7KuwBhTwBkOZSJKM5XQ==", "dev": true, - "requires": { + "dependencies": { "@types/glob": "^7.1.1", "globby": "^6.1.0", "is-path-cwd": "^2.0.0", @@ -2799,1014 +3305,846 @@ "pify": "^4.0.1", "rimraf": "^2.6.3" }, + "engines": { + "node": ">=6" + } + }, + "node_modules/del/node_modules/array-union": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", + "integrity": "sha512-Dxr6QJj/RdU/hCaBjOfxW+q6lyuVE6JFWIrAUpuOOhoJJoQ99cUn3igRaHVB5P9WrgFVN0FfArM3x0cueOU8ng==", + "dev": true, + "dependencies": { + "array-uniq": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/del/node_modules/globby": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-6.1.0.tgz", + "integrity": "sha512-KVbFv2TQtbzCoxAnfD6JcHZTYCzyliEaaeM/gH8qQdkKr5s0OP9scEgvdcngyk7AVdY6YVW/TJHd+lQ/Df3Daw==", + "dev": true, "dependencies": { - "globby": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-6.1.0.tgz", - "integrity": "sha1-9abXDoOV4hyFj7BInWTfAkJNUGw=", - "dev": true, - "requires": { - "array-union": "^1.0.1", - "glob": "^7.0.3", - "object-assign": "^4.0.1", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0" - }, - "dependencies": { - "pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", - "dev": true - } - } - }, - "pify": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", - "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", - "dev": true - } + "array-union": "^1.0.1", + "glob": "^7.0.3", + "object-assign": "^4.0.1", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" } }, - "depd": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", - "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=", - "dev": true + "node_modules/del/node_modules/globby/node_modules/pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } }, - "des.js": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.1.tgz", - "integrity": "sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA==", + "node_modules/del/node_modules/p-map": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-2.1.0.tgz", + "integrity": "sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==", "dev": true, - "requires": { - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0" + "engines": { + "node": ">=6" } }, - "destroy": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", - "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=", - "dev": true + "node_modules/del/node_modules/pify": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", + "dev": true, + "engines": { + "node": ">=6" + } }, - "detect-file": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/detect-file/-/detect-file-1.0.0.tgz", - "integrity": "sha1-8NZtA2cqglyxtzvbP+YjEMjlUrc=", - "dev": true + "node_modules/depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "dev": true, + "engines": { + "node": ">= 0.8" + } }, - "detect-node": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.0.4.tgz", - "integrity": "sha512-ZIzRpLJrOj7jjP2miAtgqIfmzbxa4ZOr5jJc601zklsfEx9oTzmmj2nVpIPRpNlRTIh8lc1kyViIY7BWSGNmKw==", + "node_modules/destroy": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", + "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", + "dev": true, + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/detect-node": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz", + "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==", "dev": true }, - "di": { + "node_modules/di": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/di/-/di-0.0.1.tgz", - "integrity": "sha1-gGZJMmzqp8qjMG112YXqJ0i6kTw=", + "integrity": "sha512-uJaamHkagcZtHPqCIHZxnFrXlunQXgBOsZSUOWwFw31QJCAbyTBoHMW75YOTur5ZNx8pIeAKgf6GWIgaqqiLhA==", "dev": true }, - "diffie-hellman": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz", - "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==", - "dev": true, - "requires": { - "bn.js": "^4.1.0", - "miller-rabin": "^4.0.0", - "randombytes": "^2.0.0" - }, - "dependencies": { - "bn.js": { - "version": "4.11.9", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", - "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", - "dev": true - } - } - }, - "dir-glob": { + "node_modules/dir-glob": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", "dev": true, - "requires": { + "dependencies": { "path-type": "^4.0.0" }, - "dependencies": { - "path-type": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", - "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", - "dev": true - } + "engines": { + "node": ">=8" } }, - "dns-equal": { + "node_modules/dns-equal": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/dns-equal/-/dns-equal-1.0.0.tgz", - "integrity": "sha1-s55/HabrCnW6nBcySzR1PEfgZU0=", + "integrity": "sha512-z+paD6YUQsk+AbGCEM4PrOXSss5gd66QfcVBFTKR/HpFL9jCqikS94HYwKww6fQyO7IxrIIyUu+g0Ka9tUS2Cg==", "dev": true }, - "dns-packet": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-1.3.1.tgz", - "integrity": "sha512-0UxfQkMhYAUaZI+xrNZOz/as5KgDU0M/fQ9b6SpkyLbk3GEswDi6PADJVaYJradtRVsRIlF1zLyOodbcTCDzUg==", - "dev": true, - "requires": { - "ip": "^1.1.0", - "safe-buffer": "^5.0.1" - } - }, - "dns-txt": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/dns-txt/-/dns-txt-2.0.2.tgz", - "integrity": "sha1-uR2Ab10nGI5Ks+fRB9iBocxGQrY=", + "node_modules/dns-packet": { + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-5.6.0.tgz", + "integrity": "sha512-rza3UH1LwdHh9qyPXp8lkwpjSNk/AMD3dPytUoRoqnypDUhY0xvbdmVhWOfxO68frEfV9BU8V12Ez7ZsHGZpCQ==", "dev": true, - "requires": { - "buffer-indexof": "^1.0.0" + "dependencies": { + "@leichtgewicht/ip-codec": "^2.0.1" + }, + "engines": { + "node": ">=6" } }, - "dom-serialize": { + "node_modules/dom-serialize": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/dom-serialize/-/dom-serialize-2.2.1.tgz", - "integrity": "sha1-ViromZ9Evl6jB29UGdzVnrQ6yVs=", + "integrity": "sha512-Yra4DbvoW7/Z6LBN560ZwXMjoNOSAN2wRsKFGc4iBeso+mpIA6qj1vfdf9HpMaKAqG6wXTy+1SYEzmNpKXOSsQ==", "dev": true, - "requires": { + "dependencies": { "custom-event": "~1.0.0", "ent": "~2.2.0", "extend": "^3.0.0", "void-elements": "^2.0.0" } }, - "dom-serializer": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.1.1.tgz", - "integrity": "sha512-l0IU0pPzLWSHBcieZbpOKgkIn3ts3vAh7ZuFyXNwJxJXk/c4Gwj9xaTJwIDVQCXawWD0qb3IzMGH5rglQaO0XA==", + "node_modules/dom-serializer": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.2.2.tgz", + "integrity": "sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g==", "dev": true, - "requires": { - "domelementtype": "^1.3.0", - "entities": "^1.1.1" - }, "dependencies": { - "entities": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.2.tgz", - "integrity": "sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==", - "dev": true + "domelementtype": "^2.0.1", + "entities": "^2.0.0" + } + }, + "node_modules/dom-serializer/node_modules/domelementtype": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", + "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fb55" } + ] + }, + "node_modules/dom-serializer/node_modules/entities": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", + "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", + "dev": true, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" } }, - "domain-browser": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz", - "integrity": "sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==", - "dev": true - }, - "domelementtype": { + "node_modules/domelementtype": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.1.tgz", "integrity": "sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==", "dev": true }, - "domhandler": { + "node_modules/domhandler": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.3.0.tgz", - "integrity": "sha1-LeWaCCLVAn+r/28DLCsloqir5zg=", + "integrity": "sha512-q9bUwjfp7Eif8jWxxxPSykdRZAb6GkguBGSgvvCrhI9wB71W2K/Kvv4E61CF/mcCfnVJDeDWx/Vb/uAqbDj6UQ==", "dev": true, - "requires": { + "dependencies": { "domelementtype": "1" } }, - "domutils": { + "node_modules/domutils": { "version": "1.5.1", "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.5.1.tgz", - "integrity": "sha1-3NhIiib1Y9YQeeSMn3t+Mjc2gs8=", + "integrity": "sha512-gSu5Oi/I+3wDENBsOWBiRK1eoGxcywYSqg3rR960/+EfY0CF4EX1VPkgHOZ3WiS/Jg2DtliF6BhWcHlfpYUcGw==", "dev": true, - "requires": { + "dependencies": { "dom-serializer": "0", "domelementtype": "1" } }, - "duplexify": { - "version": "3.7.1", - "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz", - "integrity": "sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==", - "dev": true, - "requires": { - "end-of-stream": "^1.0.0", - "inherits": "^2.0.1", - "readable-stream": "^2.0.0", - "stream-shift": "^1.0.0" - } - }, - "ee-first": { + "node_modules/ee-first": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", - "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=", + "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==", "dev": true }, - "electron-to-chromium": { - "version": "1.3.113", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.113.tgz", - "integrity": "sha512-De+lPAxEcpxvqPTyZAXELNpRZXABRxf+uL/rSykstQhzj/B0l1150G/ExIIxKc16lI89Hgz81J0BHAcbTqK49g==", + "node_modules/electron-to-chromium": { + "version": "1.4.367", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.367.tgz", + "integrity": "sha512-mNuDxb+HpLhPGUKrg0hSxbTjHWw8EziwkwlJNkFUj3W60ypigLDRVz04vU+VRsJPi8Gub+FDhYUpuTm9xiEwRQ==", "dev": true }, - "elliptic": { - "version": "6.5.3", - "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.3.tgz", - "integrity": "sha512-IMqzv5wNQf+E6aHeIqATs0tOLeOTwj1QKbRcS3jBbYkl5oLAserA8yJTT7/VyHUYG91PRmPyeQDObKLPpeS4dw==", - "dev": true, - "requires": { - "bn.js": "^4.4.0", - "brorand": "^1.0.1", - "hash.js": "^1.0.0", - "hmac-drbg": "^1.0.0", - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0", - "minimalistic-crypto-utils": "^1.0.0" - }, - "dependencies": { - "bn.js": { - "version": "4.11.9", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", - "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", - "dev": true - } - } - }, - "emoji-regex": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", - "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", + "node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", "dev": true }, - "emojis-list": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz", - "integrity": "sha1-TapNnbAPmBmIDHn6RXrlsJof04k=", - "dev": true + "node_modules/emojis-list": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", + "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", + "dev": true, + "engines": { + "node": ">= 4" + } }, - "encodeurl": { + "node_modules/encodeurl": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=", - "dev": true - }, - "end-of-stream": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.1.tgz", - "integrity": "sha512-1MkrZNvWTKCaigbn+W15elq2BB/L22nqrSY5DKlo3X6+vclJm8Bb5djXJBmEX6fS3+zCh/F4VBK5Z2KxJt4s2Q==", + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", "dev": true, - "requires": { - "once": "^1.4.0" + "engines": { + "node": ">= 0.8" } }, - "engine.io": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-3.2.1.tgz", - "integrity": "sha512-+VlKzHzMhaU+GsCIg4AoXF1UdDFjHHwMmMKqMJNDNLlUlejz58FCy4LBqB2YVJskHGYl06BatYWKP2TVdVXE5w==", + "node_modules/engine.io": { + "version": "3.6.1", + "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-3.6.1.tgz", + "integrity": "sha512-dfs8EVg/i7QjFsXxn7cCRQ+Wai1G1TlEvHhdYEi80fxn5R1vZ2K661O6v/rezj1FP234SZ14r9CmJke99iYDGg==", "dev": true, - "requires": { + "dependencies": { "accepts": "~1.3.4", - "base64id": "1.0.0", - "cookie": "0.3.1", - "debug": "~3.1.0", - "engine.io-parser": "~2.1.0", - "ws": "~3.3.1" + "base64id": "2.0.0", + "cookie": "~0.4.1", + "debug": "~4.1.0", + "engine.io-parser": "~2.2.0", + "ws": "~7.4.2" }, - "dependencies": { - "debug": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - } + "engines": { + "node": ">=8.0.0" } }, - "engine.io-client": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-3.2.1.tgz", - "integrity": "sha512-y5AbkytWeM4jQr7m/koQLc5AxpRKC1hEVUb/s1FUAWEJq5AzJJ4NLvzuKPuxtDi5Mq755WuDvZ6Iv2rXj4PTzw==", + "node_modules/engine.io-client": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-3.5.3.tgz", + "integrity": "sha512-qsgyc/CEhJ6cgMUwxRRtOndGVhIu5hpL5tR4umSpmX/MvkFoIxUTM7oFMDQumHNzlNLwSVy6qhstFPoWTf7dOw==", "dev": true, - "requires": { - "component-emitter": "1.2.1", + "dependencies": { + "component-emitter": "~1.3.0", "component-inherit": "0.0.3", "debug": "~3.1.0", - "engine.io-parser": "~2.1.1", + "engine.io-parser": "~2.2.0", "has-cors": "1.1.0", "indexof": "0.0.1", - "parseqs": "0.0.5", - "parseuri": "0.0.5", - "ws": "~3.3.1", - "xmlhttprequest-ssl": "~1.5.4", + "parseqs": "0.0.6", + "parseuri": "0.0.6", + "ws": "~7.4.2", + "xmlhttprequest-ssl": "~1.6.2", "yeast": "0.1.2" - }, + } + }, + "node_modules/engine.io-client/node_modules/debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "dev": true, "dependencies": { - "debug": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - } + "ms": "2.0.0" } }, - "engine.io-parser": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-2.1.3.tgz", - "integrity": "sha512-6HXPre2O4Houl7c4g7Ic/XzPnHBvaEmN90vtRO9uLmwtRqQmTOw0QMevL1TOfL2Cpu1VzsaTmMotQgMdkzGkVA==", + "node_modules/engine.io-client/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, + "node_modules/engine.io-parser": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-2.2.1.tgz", + "integrity": "sha512-x+dN/fBH8Ro8TFwJ+rkB2AmuVw9Yu2mockR/p3W8f8YtExwFgDvBDi0GWyb4ZLkpahtDGZgtr3zLovanJghPqg==", "dev": true, - "requires": { + "dependencies": { "after": "0.8.2", "arraybuffer.slice": "~0.0.7", - "base64-arraybuffer": "0.1.5", + "base64-arraybuffer": "0.1.4", "blob": "0.0.5", "has-binary2": "~1.0.2" } }, - "enhanced-resolve": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-4.3.0.tgz", - "integrity": "sha512-3e87LvavsdxyoCfGusJnrZ5G8SLPOFeHSNpZI/ATL9a5leXo2k0w6MKnbqhdBad9qTobSfB20Ld7UmgoNbAZkQ==", + "node_modules/engine.io/node_modules/debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "deprecated": "Debug versions >=3.2.0 <3.2.7 || >=4 <4.3.1 have a low-severity ReDos regression when used in a Node.js environment. It is recommended you upgrade to 3.2.7 or 4.3.1. (https://github.com/visionmedia/debug/issues/797)", "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "memory-fs": "^0.5.0", - "tapable": "^1.0.0" - }, - "dependencies": { - "memory-fs": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.5.0.tgz", - "integrity": "sha512-jA0rdU5KoQMC0e6ppoNRtpp6vjFq6+NY7r8hywnC7V+1Xj/MtHwGIbB1QaK/dunyjWteJzmkpd7ooeWg10T7GA==", - "dev": true, - "requires": { - "errno": "^0.1.3", - "readable-stream": "^2.0.1" - } - } + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/enhanced-resolve": { + "version": "5.12.0", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.12.0.tgz", + "integrity": "sha512-QHTXI/sZQmko1cbDoNAa3mJ5qhWUUNAq3vR0/YiD379fWQrcfuoX1+HW2S0MTt7XmoPLapdaDKUtelUSPic7hQ==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.2.4", + "tapable": "^2.2.0" + }, + "engines": { + "node": ">=10.13.0" } }, - "ent": { + "node_modules/ent": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/ent/-/ent-2.2.0.tgz", - "integrity": "sha1-6WQhkyWiHQX0RGai9obtbOX13R0=", + "integrity": "sha512-GHrMyVZQWvTIdDtpiEXdHZnFQKzeO09apj8Cbl4pKWy4i0Oprcq17usfDt5aO63swf0JOeMWjWQE/LzgSRuWpA==", "dev": true }, - "entities": { + "node_modules/entities": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/entities/-/entities-1.0.0.tgz", - "integrity": "sha1-sph6o4ITR/zeZCsk/fyeT7cSvyY=", + "integrity": "sha512-LbLqfXgJMmy81t+7c14mnulFHJ170cM6E+0vMXR9k/ZiZwgX8i5pNgjTCX3SO4VeUsFLV+8InixoretwU+MjBQ==", "dev": true }, - "errno": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.7.tgz", - "integrity": "sha512-MfrRBDWzIWifgq6tJj60gkAwtLNb6sQPlcFrSOflcP1aFmmruKQ2wRnze/8V6kgyz7H3FF8Npzv78mZ7XLLflg==", + "node_modules/envinfo": { + "version": "7.8.1", + "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.8.1.tgz", + "integrity": "sha512-/o+BXHmB7ocbHEAs6F2EnG0ogybVVUdkRunTT2glZU9XAaGmhqskrvKwqXuDfNjEO0LZKWdejEEpnq8aM0tOaw==", "dev": true, - "requires": { - "prr": "~1.0.1" + "bin": { + "envinfo": "dist/cli.js" + }, + "engines": { + "node": ">=4" } }, - "error-ex": { + "node_modules/error-ex": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", "dev": true, - "requires": { + "dependencies": { "is-arrayish": "^0.2.1" } }, - "es-abstract": { - "version": "1.13.0", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.13.0.tgz", - "integrity": "sha512-vDZfg/ykNxQVwup/8E1BZhVzFfBxs9NqMzGcvIJrqg5k2/5Za2bWo40dK2J1pgLngZ7c+Shh8lwYtLGyrwPutg==", + "node_modules/es-abstract": { + "version": "1.21.2", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.21.2.tgz", + "integrity": "sha512-y/B5POM2iBnIxCiernH1G7rC9qQoM77lLIMQLuob0zhp8C56Po81+2Nj0WFKnd0pNReDTnkYryc+zhOzpEIROg==", "dev": true, - "requires": { - "es-to-primitive": "^1.2.0", - "function-bind": "^1.1.1", + "dependencies": { + "array-buffer-byte-length": "^1.0.0", + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "es-set-tostringtag": "^2.0.1", + "es-to-primitive": "^1.2.1", + "function.prototype.name": "^1.1.5", + "get-intrinsic": "^1.2.0", + "get-symbol-description": "^1.0.0", + "globalthis": "^1.0.3", + "gopd": "^1.0.1", "has": "^1.0.3", - "is-callable": "^1.1.4", - "is-regex": "^1.0.4", - "object-keys": "^1.0.12" + "has-property-descriptors": "^1.0.0", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3", + "internal-slot": "^1.0.5", + "is-array-buffer": "^3.0.2", + "is-callable": "^1.2.7", + "is-negative-zero": "^2.0.2", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.2", + "is-string": "^1.0.7", + "is-typed-array": "^1.1.10", + "is-weakref": "^1.0.2", + "object-inspect": "^1.12.3", + "object-keys": "^1.1.1", + "object.assign": "^4.1.4", + "regexp.prototype.flags": "^1.4.3", + "safe-regex-test": "^1.0.0", + "string.prototype.trim": "^1.2.7", + "string.prototype.trimend": "^1.0.6", + "string.prototype.trimstart": "^1.0.6", + "typed-array-length": "^1.0.4", + "unbox-primitive": "^1.0.2", + "which-typed-array": "^1.1.9" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "es-to-primitive": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.0.tgz", - "integrity": "sha512-qZryBOJjV//LaxLTV6UC//WewneB3LcXOL9NP++ozKVXsIIIpm/2c13UDiD9Jp2eThsecw9m3jPqDwTyobcdbg==", + "node_modules/es-module-lexer": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.2.1.tgz", + "integrity": "sha512-9978wrXM50Y4rTMmW5kXIC09ZdXQZqkE4mxhwkd8VbzsGkXGPgV4zWuqQJgCEzYngdo2dYDa0l8xhX4fkSwJSg==", + "dev": true + }, + "node_modules/es-set-tostringtag": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.1.tgz", + "integrity": "sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.1.3", + "has": "^1.0.3", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", "dev": true, - "requires": { + "dependencies": { "is-callable": "^1.1.4", "is-date-object": "^1.0.1", "is-symbol": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "dev": true, + "engines": { + "node": ">=6" } }, - "escape-html": { + "node_modules/escape-html": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=", + "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==", "dev": true }, - "escape-string-regexp": { + "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=", - "dev": true + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true, + "engines": { + "node": ">=0.8.0" + } }, - "eslint-scope": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-4.0.3.tgz", - "integrity": "sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg==", + "node_modules/eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", "dev": true, - "requires": { - "esrecurse": "^4.1.0", + "dependencies": { + "esrecurse": "^4.3.0", "estraverse": "^4.1.1" + }, + "engines": { + "node": ">=8.0.0" } }, - "esrecurse": { + "node_modules/esrecurse": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", "dev": true, - "requires": { + "dependencies": { "estraverse": "^5.2.0" }, - "dependencies": { - "estraverse": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz", - "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==", - "dev": true - } + "engines": { + "node": ">=4.0" } }, - "estraverse": { + "node_modules/esrecurse/node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estraverse": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", - "dev": true + "dev": true, + "engines": { + "node": ">=4.0" + } }, - "esutils": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", - "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=", - "dev": true + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } }, - "etag": { + "node_modules/etag": { "version": "1.8.1", "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", - "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=", - "dev": true + "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", + "dev": true, + "engines": { + "node": ">= 0.6" + } }, - "eventemitter3": { + "node_modules/eventemitter3": { "version": "4.0.7", "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==", "dev": true }, - "events": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/events/-/events-3.2.0.tgz", - "integrity": "sha512-/46HWwbfCX2xTawVfkKLGxMifJYQBWMwY1mjywRtb4c9x8l5NP3KoJtnIOiL1hfdRkIuYhETxQlo62IF8tcnlg==", - "dev": true - }, - "eventsource": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/eventsource/-/eventsource-1.0.7.tgz", - "integrity": "sha512-4Ln17+vVT0k8aWq+t/bF5arcS3EpT9gYtW66EPacdj/mAFevznsnyoHLPy2BA8gbIQeIHoPsvwmfBftfcG//BQ==", + "node_modules/events": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", + "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", "dev": true, - "requires": { - "original": "^1.0.0" + "engines": { + "node": ">=0.8.x" } }, - "evp_bytestokey": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", - "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", + "node_modules/execa": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", "dev": true, - "requires": { - "md5.js": "^1.3.4", - "safe-buffer": "^5.1.1" + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" } }, - "execa": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", - "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", + "node_modules/execa/node_modules/cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", "dev": true, - "requires": { - "cross-spawn": "^6.0.0", - "get-stream": "^4.0.0", - "is-stream": "^1.1.0", - "npm-run-path": "^2.0.0", - "p-finally": "^1.0.0", - "signal-exit": "^3.0.0", - "strip-eof": "^1.0.0" + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" } }, - "exit": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", - "integrity": "sha1-BjJjj42HfMghB9MKD/8aF8uhzQw=", - "dev": true + "node_modules/execa/node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true, + "engines": { + "node": ">=8" + } }, - "expand-brackets": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", - "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", + "node_modules/execa/node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", "dev": true, - "requires": { - "debug": "^2.3.3", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "posix-character-classes": "^0.1.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - } + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/execa/node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true, + "engines": { + "node": ">=8" } }, - "expand-tilde": { + "node_modules/execa/node_modules/which": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/expand-tilde/-/expand-tilde-2.0.2.tgz", - "integrity": "sha1-l+gBqgUt8CRU3kawK/YhZCzchQI=", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/exit": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", + "integrity": "sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==", "dev": true, - "requires": { - "homedir-polyfill": "^1.0.1" + "engines": { + "node": ">= 0.8.0" } }, - "express": { - "version": "4.17.1", - "resolved": "https://registry.npmjs.org/express/-/express-4.17.1.tgz", - "integrity": "sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g==", + "node_modules/express": { + "version": "4.18.2", + "resolved": "https://registry.npmjs.org/express/-/express-4.18.2.tgz", + "integrity": "sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==", "dev": true, - "requires": { - "accepts": "~1.3.7", + "dependencies": { + "accepts": "~1.3.8", "array-flatten": "1.1.1", - "body-parser": "1.19.0", - "content-disposition": "0.5.3", + "body-parser": "1.20.1", + "content-disposition": "0.5.4", "content-type": "~1.0.4", - "cookie": "0.4.0", + "cookie": "0.5.0", "cookie-signature": "1.0.6", "debug": "2.6.9", - "depd": "~1.1.2", + "depd": "2.0.0", "encodeurl": "~1.0.2", "escape-html": "~1.0.3", "etag": "~1.8.1", - "finalhandler": "~1.1.2", + "finalhandler": "1.2.0", "fresh": "0.5.2", + "http-errors": "2.0.0", "merge-descriptors": "1.0.1", "methods": "~1.1.2", - "on-finished": "~2.3.0", + "on-finished": "2.4.1", "parseurl": "~1.3.3", "path-to-regexp": "0.1.7", - "proxy-addr": "~2.0.5", - "qs": "6.7.0", + "proxy-addr": "~2.0.7", + "qs": "6.11.0", "range-parser": "~1.2.1", - "safe-buffer": "5.1.2", - "send": "0.17.1", - "serve-static": "1.14.1", - "setprototypeof": "1.1.1", - "statuses": "~1.5.0", + "safe-buffer": "5.2.1", + "send": "0.18.0", + "serve-static": "1.15.0", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", "type-is": "~1.6.18", "utils-merge": "1.0.1", "vary": "~1.1.2" }, - "dependencies": { - "accepts": { - "version": "1.3.7", - "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz", - "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==", - "dev": true, - "requires": { - "mime-types": "~2.1.24", - "negotiator": "0.6.2" - } - }, - "array-flatten": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", - "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=", - "dev": true - }, - "body-parser": { - "version": "1.19.0", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz", - "integrity": "sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw==", - "dev": true, - "requires": { - "bytes": "3.1.0", - "content-type": "~1.0.4", - "debug": "2.6.9", - "depd": "~1.1.2", - "http-errors": "1.7.2", - "iconv-lite": "0.4.24", - "on-finished": "~2.3.0", - "qs": "6.7.0", - "raw-body": "2.4.0", - "type-is": "~1.6.17" - } - }, - "bytes": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", - "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==", - "dev": true - }, - "cookie": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.0.tgz", - "integrity": "sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg==", - "dev": true - }, - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "http-errors": { - "version": "1.7.2", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz", - "integrity": "sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==", - "dev": true, - "requires": { - "depd": "~1.1.2", - "inherits": "2.0.3", - "setprototypeof": "1.1.1", - "statuses": ">= 1.5.0 < 2", - "toidentifier": "1.0.0" - } - }, - "iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "dev": true, - "requires": { - "safer-buffer": ">= 2.1.2 < 3" - } - }, - "mime-db": { - "version": "1.44.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.44.0.tgz", - "integrity": "sha512-/NOTfLrsPBVeH7YtFPgsVWveuL+4SjjYxaQ1xtM1KMFj7HdxlBlxeyNLzhyJVx7r4rZGJAZ/6lkKCitSc/Nmpg==", - "dev": true - }, - "mime-types": { - "version": "2.1.27", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.27.tgz", - "integrity": "sha512-JIhqnCasI9yD+SsmkquHBxTSEuZdQX5BuQnS2Vc7puQQQ+8yiP5AY5uWhpdv4YL4VM5c6iliiYWPgJ/nJQLp7w==", - "dev": true, - "requires": { - "mime-db": "1.44.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - }, - "negotiator": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz", - "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==", - "dev": true - }, - "qs": { - "version": "6.7.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz", - "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==", - "dev": true - }, - "range-parser": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", - "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", - "dev": true - }, - "raw-body": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.0.tgz", - "integrity": "sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q==", - "dev": true, - "requires": { - "bytes": "3.1.0", - "http-errors": "1.7.2", - "iconv-lite": "0.4.24", - "unpipe": "1.0.0" - } - }, - "setprototypeof": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz", - "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==", - "dev": true - }, - "type-is": { - "version": "1.6.18", - "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", - "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", - "dev": true, - "requires": { - "media-typer": "0.3.0", - "mime-types": "~2.1.24" - } - } + "engines": { + "node": ">= 0.10.0" } }, - "extend": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", + "node_modules/express/node_modules/array-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==", "dev": true }, - "extend-shallow": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", - "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", - "dev": true, - "requires": { - "assign-symbols": "^1.0.0", - "is-extendable": "^1.0.1" - }, - "dependencies": { - "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==", - "dev": true, - "requires": { - "is-plain-object": "^2.0.4" - } - } + "node_modules/express/node_modules/body-parser": { + "version": "1.20.1", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.1.tgz", + "integrity": "sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==", + "dev": true, + "dependencies": { + "bytes": "3.1.2", + "content-type": "~1.0.4", + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "on-finished": "2.4.1", + "qs": "6.11.0", + "raw-body": "2.5.1", + "type-is": "~1.6.18", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" } }, - "extglob": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", - "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", - "dev": true, - "requires": { - "array-unique": "^0.3.2", - "define-property": "^1.0.0", - "expand-brackets": "^2.1.4", - "extend-shallow": "^2.0.1", - "fragment-cache": "^0.2.1", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dev": true, - "requires": { - "is-descriptor": "^1.0.0" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - } + "node_modules/express/node_modules/cookie": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz", + "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/express/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/express/node_modules/finalhandler": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz", + "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==", + "dev": true, + "dependencies": { + "debug": "2.6.9", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "statuses": "2.0.1", + "unpipe": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/express/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, + "node_modules/express/node_modules/raw-body": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz", + "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==", + "dev": true, + "dependencies": { + "bytes": "3.1.2", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8" } }, - "fast-deep-equal": { + "node_modules/express/node_modules/statuses": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz", - "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", + "dev": true + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", "dev": true }, - "fast-glob": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.4.tgz", - "integrity": "sha512-kr/Oo6PX51265qeuCYsyGypiO5uJFgBS0jksyG7FUeCyQzNwYnzrNIMR1NXfkZXsMYXYLRAHgISHBz8gQcxKHQ==", + "node_modules/fast-glob": { + "version": "3.2.12", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.12.tgz", + "integrity": "sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==", "dev": true, - "requires": { + "dependencies": { "@nodelib/fs.stat": "^2.0.2", "@nodelib/fs.walk": "^1.2.3", - "glob-parent": "^5.1.0", + "glob-parent": "^5.1.2", "merge2": "^1.3.0", - "micromatch": "^4.0.2", - "picomatch": "^2.2.1" + "micromatch": "^4.0.4" }, - "dependencies": { - "braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, - "requires": { - "fill-range": "^7.0.1" - } - }, - "fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dev": true, - "requires": { - "to-regex-range": "^5.0.1" - } - }, - "glob-parent": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.1.tgz", - "integrity": "sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ==", - "dev": true, - "requires": { - "is-glob": "^4.0.1" - } - }, - "is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true - }, - "micromatch": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.2.tgz", - "integrity": "sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==", - "dev": true, - "requires": { - "braces": "^3.0.1", - "picomatch": "^2.0.5" - } - }, - "to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, - "requires": { - "is-number": "^7.0.0" - } - } + "engines": { + "node": ">=8.6.0" } }, - "fast-json-stable-stringify": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz", - "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=", + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", "dev": true }, - "fastq": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.8.0.tgz", - "integrity": "sha512-SMIZoZdLh/fgofivvIkmknUXyPnvxRE3DhtZ5Me3Mrsk5gyPL42F0xr51TdRXskBxHfMp+07bcYzfsYEsSQA9Q==", + "node_modules/fastest-levenshtein": { + "version": "1.0.16", + "resolved": "https://registry.npmjs.org/fastest-levenshtein/-/fastest-levenshtein-1.0.16.tgz", + "integrity": "sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==", + "dev": true, + "engines": { + "node": ">= 4.9.1" + } + }, + "node_modules/fastq": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz", + "integrity": "sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==", "dev": true, - "requires": { + "dependencies": { "reusify": "^1.0.4" } }, - "faye-websocket": { - "version": "0.10.0", - "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.10.0.tgz", - "integrity": "sha1-TkkvjQTftviQA1B/btvy1QHnxvQ=", + "node_modules/faye-websocket": { + "version": "0.11.4", + "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.4.tgz", + "integrity": "sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==", "dev": true, - "requires": { + "dependencies": { "websocket-driver": ">=0.5.1" + }, + "engines": { + "node": ">=0.8.0" } }, - "figgy-pudding": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/figgy-pudding/-/figgy-pudding-3.5.2.tgz", - "integrity": "sha512-0btnI/H8f2pavGMN8w40mlSKOfTK2SVJmBfBeVIj3kNw0swwgzyRq0d5TJVOwodFmtvpPeWPN/MCcfuWF0Ezbw==", - "dev": true - }, - "file-uri-to-path": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", - "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==", + "node_modules/fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", "dev": true, - "optional": true - }, - "fill-range": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", - "dev": true, - "requires": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - } + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" } }, - "finalhandler": { + "node_modules/finalhandler": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz", "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==", "dev": true, - "requires": { + "dependencies": { "debug": "2.6.9", "encodeurl": "~1.0.2", "escape-html": "~1.0.3", @@ -3815,2374 +4153,1828 @@ "statuses": "~1.5.0", "unpipe": "~1.0.0" }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - }, - "parseurl": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", - "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", - "dev": true - } + "engines": { + "node": ">= 0.8" } }, - "find-cache-dir": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz", - "integrity": "sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==", + "node_modules/finalhandler/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "dev": true, - "requires": { - "commondir": "^1.0.1", - "make-dir": "^2.0.0", - "pkg-dir": "^3.0.0" + "dependencies": { + "ms": "2.0.0" } }, - "find-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", - "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "node_modules/finalhandler/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, + "node_modules/finalhandler/node_modules/on-finished": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", + "integrity": "sha512-ikqdkGAAyf/X/gPhXGvfgAytDZtDbr+bkNUJ0N9h5MI/dmdgCs3l6hoHrcUv41sRKew3jIwrp4qQDXiK99Utww==", "dev": true, - "requires": { - "locate-path": "^3.0.0" + "dependencies": { + "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" } }, - "findup-sync": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-3.0.0.tgz", - "integrity": "sha512-YbffarhcicEhOrm4CtrwdKBdCuz576RLdhJDsIfvNtxUuhdRet1qZcsMjqbePtAseKdAnDyM/IyXbu7PRPRLYg==", + "node_modules/find-cache-dir": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz", + "integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==", "dev": true, - "requires": { - "detect-file": "^1.0.0", - "is-glob": "^4.0.0", - "micromatch": "^3.0.4", - "resolve-dir": "^1.0.1" + "dependencies": { + "commondir": "^1.0.1", + "make-dir": "^3.0.2", + "pkg-dir": "^4.1.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/avajs/find-cache-dir?sponsor=1" } }, - "flatted": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-2.0.2.tgz", - "integrity": "sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA==", - "dev": true - }, - "flush-write-stream": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.1.1.tgz", - "integrity": "sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w==", + "node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", "dev": true, - "requires": { - "inherits": "^2.0.3", - "readable-stream": "^2.3.6" + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" } }, - "follow-redirects": { - "version": "1.13.0", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.13.0.tgz", - "integrity": "sha512-aq6gF1BEKje4a9i9+5jimNFIpq4Q1WiwBToeRK5NvZBd/TRsmW8BsJfOEGkr76TbOyPVD3OVDN910EcUNtRYEA==", + "node_modules/flatted": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.7.tgz", + "integrity": "sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==", "dev": true }, - "for-in": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", - "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", - "dev": true + "node_modules/follow-redirects": { + "version": "1.15.2", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz", + "integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], + "engines": { + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } + } }, - "forwarded": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz", - "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ=", - "dev": true + "node_modules/for-each": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", + "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", + "dev": true, + "dependencies": { + "is-callable": "^1.1.3" + } }, - "fragment-cache": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", - "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", + "node_modules/forwarded": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", + "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", "dev": true, - "requires": { - "map-cache": "^0.2.2" + "engines": { + "node": ">= 0.6" } }, - "fresh": { + "node_modules/fresh": { "version": "0.5.2", "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", - "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=", - "dev": true - }, - "from2": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz", - "integrity": "sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=", + "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", "dev": true, - "requires": { - "inherits": "^2.0.1", - "readable-stream": "^2.0.0" + "engines": { + "node": ">= 0.6" } }, - "fs-access": { + "node_modules/fs-access": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/fs-access/-/fs-access-1.0.1.tgz", - "integrity": "sha1-1qh/JiJxzv6+wwxVNAf7mV2od3o=", + "integrity": "sha512-05cXDIwNbFaoFWaz5gNHlUTbH5whiss/hr/ibzPd4MH3cR4w0ZKeIPiVdbyJurg3O5r/Bjpvn9KOb1/rPMf3nA==", "dev": true, - "requires": { + "dependencies": { "null-check": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" } }, - "fs-extra": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", - "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", + "node_modules/fs-extra": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", + "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", "dev": true, - "requires": { - "graceful-fs": "^4.1.2", + "dependencies": { + "graceful-fs": "^4.2.0", "jsonfile": "^4.0.0", "universalify": "^0.1.0" + }, + "engines": { + "node": ">=6 <7 || >=8" } }, - "fs-minipass": { + "node_modules/fs-minipass": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", "dev": true, - "requires": { + "dependencies": { "minipass": "^3.0.0" + }, + "engines": { + "node": ">= 8" } }, - "fs-write-stream-atomic": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz", - "integrity": "sha1-tH31NJPvkR33VzHnCp3tAYnbQMk=", - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "iferr": "^0.1.5", - "imurmurhash": "^0.1.4", - "readable-stream": "1 || 2" - } + "node_modules/fs-monkey": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/fs-monkey/-/fs-monkey-1.0.3.tgz", + "integrity": "sha512-cybjIfiiE+pTWicSCLFHSrXZ6EilF30oh91FDP9S2B051prEa7QWfrVTQm10/dDpswBDXZugPa1Ogu8Yh+HV0Q==", + "dev": true }, - "fs.realpath": { + "node_modules/fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", "dev": true }, - "fsevents": { - "version": "1.2.12", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.12.tgz", - "integrity": "sha512-Ggd/Ktt7E7I8pxZRbGIs7vwqAPscSESMrCSkx2FtWeqmheJgCo2R74fTsZFCifr0VTPwqRpPv17+6b8Zp7th0Q==", + "node_modules/fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", "dev": true, + "hasInstallScript": true, "optional": true, - "requires": { - "bindings": "^1.5.0", - "nan": "^2.12.1", - "node-pre-gyp": "*" - }, - "dependencies": { - "abbrev": { - "version": "1.1.1", - "bundled": true, - "dev": true, - "optional": true - }, - "ansi-regex": { - "version": "2.1.1", - "bundled": true, - "dev": true, - "optional": true - }, - "aproba": { - "version": "1.2.0", - "bundled": true, - "dev": true, - "optional": true - }, - "are-we-there-yet": { - "version": "1.1.5", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "delegates": "^1.0.0", - "readable-stream": "^2.0.6" - } - }, - "balanced-match": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "optional": true - }, - "brace-expansion": { - "version": "1.1.11", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "chownr": { - "version": "1.1.4", - "bundled": true, - "dev": true, - "optional": true - }, - "code-point-at": { - "version": "1.1.0", - "bundled": true, - "dev": true, - "optional": true - }, - "concat-map": { - "version": "0.0.1", - "bundled": true, - "dev": true, - "optional": true - }, - "console-control-strings": { - "version": "1.1.0", - "bundled": true, - "dev": true, - "optional": true - }, - "core-util-is": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "optional": true - }, - "debug": { - "version": "3.2.6", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "ms": "^2.1.1" - } - }, - "deep-extend": { - "version": "0.6.0", - "bundled": true, - "dev": true, - "optional": true - }, - "delegates": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "optional": true - }, - "detect-libc": { - "version": "1.0.3", - "bundled": true, - "dev": true, - "optional": true - }, - "fs-minipass": { - "version": "1.2.7", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "minipass": "^2.6.0" - } - }, - "fs.realpath": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "optional": true - }, - "gauge": { - "version": "2.7.4", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "aproba": "^1.0.3", - "console-control-strings": "^1.0.0", - "has-unicode": "^2.0.0", - "object-assign": "^4.1.0", - "signal-exit": "^3.0.0", - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1", - "wide-align": "^1.1.0" - } - }, - "glob": { - "version": "7.1.6", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "has-unicode": { - "version": "2.0.1", - "bundled": true, - "dev": true, - "optional": true - }, - "iconv-lite": { - "version": "0.4.24", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "safer-buffer": ">= 2.1.2 < 3" - } - }, - "ignore-walk": { - "version": "3.0.3", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "minimatch": "^3.0.4" - } - }, - "inflight": { - "version": "1.0.6", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "inherits": { - "version": "2.0.4", - "bundled": true, - "dev": true, - "optional": true - }, - "ini": { - "version": "1.3.5", - "bundled": true, - "dev": true, - "optional": true - }, - "is-fullwidth-code-point": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "number-is-nan": "^1.0.0" - } - }, - "isarray": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "optional": true - }, - "minimatch": { - "version": "3.0.4", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "brace-expansion": "^1.1.7" - } - }, - "minimist": { - "version": "1.2.5", - "bundled": true, - "dev": true, - "optional": true - }, - "minipass": { - "version": "2.9.0", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "safe-buffer": "^5.1.2", - "yallist": "^3.0.0" - } - }, - "minizlib": { - "version": "1.3.3", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "minipass": "^2.9.0" - } - }, - "mkdirp": { - "version": "0.5.3", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "minimist": "^1.2.5" - } - }, - "ms": { - "version": "2.1.2", - "bundled": true, - "dev": true, - "optional": true - }, - "needle": { - "version": "2.3.3", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "debug": "^3.2.6", - "iconv-lite": "^0.4.4", - "sax": "^1.2.4" - } - }, - "node-pre-gyp": { - "version": "0.14.0", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "detect-libc": "^1.0.2", - "mkdirp": "^0.5.1", - "needle": "^2.2.1", - "nopt": "^4.0.1", - "npm-packlist": "^1.1.6", - "npmlog": "^4.0.2", - "rc": "^1.2.7", - "rimraf": "^2.6.1", - "semver": "^5.3.0", - "tar": "^4.4.2" - } - }, - "nopt": { - "version": "4.0.3", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "abbrev": "1", - "osenv": "^0.1.4" - } - }, - "npm-bundled": { - "version": "1.1.1", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "npm-normalize-package-bin": "^1.0.1" - } - }, - "npm-normalize-package-bin": { - "version": "1.0.1", - "bundled": true, - "dev": true, - "optional": true - }, - "npm-packlist": { - "version": "1.4.8", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "ignore-walk": "^3.0.1", - "npm-bundled": "^1.0.1", - "npm-normalize-package-bin": "^1.0.1" - } - }, - "npmlog": { - "version": "4.1.2", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "are-we-there-yet": "~1.1.2", - "console-control-strings": "~1.1.0", - "gauge": "~2.7.3", - "set-blocking": "~2.0.0" - } - }, - "number-is-nan": { - "version": "1.0.1", - "bundled": true, - "dev": true, - "optional": true - }, - "object-assign": { - "version": "4.1.1", - "bundled": true, - "dev": true, - "optional": true - }, - "once": { - "version": "1.4.0", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "wrappy": "1" - } - }, - "os-homedir": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "optional": true - }, - "os-tmpdir": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "optional": true - }, - "osenv": { - "version": "0.1.5", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "os-homedir": "^1.0.0", - "os-tmpdir": "^1.0.0" - } - }, - "path-is-absolute": { - "version": "1.0.1", - "bundled": true, - "dev": true, - "optional": true - }, - "process-nextick-args": { - "version": "2.0.1", - "bundled": true, - "dev": true, - "optional": true - }, - "rc": { - "version": "1.2.8", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "deep-extend": "^0.6.0", - "ini": "~1.3.0", - "minimist": "^1.2.0", - "strip-json-comments": "~2.0.1" - } - }, - "readable-stream": { - "version": "2.3.7", - "bundled": true, - "dev": true, - "optional": true, - "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" - } - }, - "rimraf": { - "version": "2.7.1", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "glob": "^7.1.3" - } - }, - "safe-buffer": { - "version": "5.1.2", - "bundled": true, - "dev": true, - "optional": true - }, - "safer-buffer": { - "version": "2.1.2", - "bundled": true, - "dev": true, - "optional": true - }, - "sax": { - "version": "1.2.4", - "bundled": true, - "dev": true, - "optional": true - }, - "semver": { - "version": "5.7.1", - "bundled": true, - "dev": true, - "optional": true - }, - "set-blocking": { - "version": "2.0.0", - "bundled": true, - "dev": true, - "optional": true - }, - "signal-exit": { - "version": "3.0.2", - "bundled": true, - "dev": true, - "optional": true - }, - "string-width": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" - } - }, - "string_decoder": { - "version": "1.1.1", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "safe-buffer": "~5.1.0" - } - }, - "strip-ansi": { - "version": "3.0.1", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "ansi-regex": "^2.0.0" - } - }, - "strip-json-comments": { - "version": "2.0.1", - "bundled": true, - "dev": true, - "optional": true - }, - "tar": { - "version": "4.4.13", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "chownr": "^1.1.1", - "fs-minipass": "^1.2.5", - "minipass": "^2.8.6", - "minizlib": "^1.2.1", - "mkdirp": "^0.5.0", - "safe-buffer": "^5.1.2", - "yallist": "^3.0.3" - } - }, - "util-deprecate": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "optional": true - }, - "wide-align": { - "version": "1.1.3", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "string-width": "^1.0.2 || 2" - } - }, - "wrappy": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "optional": true - }, - "yallist": { - "version": "3.1.1", - "bundled": true, - "dev": true, - "optional": true - } + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" } }, - "function-bind": { + "node_modules/function-bind": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", "dev": true }, - "get-caller-file": { + "node_modules/function.prototype.name": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.5.tgz", + "integrity": "sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.0", + "functions-have-names": "^1.2.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/functions-have-names": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", + "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/get-caller-file": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", - "dev": true + "dev": true, + "engines": { + "node": "6.* || 8.* || >= 10.*" + } }, - "get-stream": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", - "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", + "node_modules/get-intrinsic": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.0.tgz", + "integrity": "sha512-L049y6nFOuom5wGyRc3/gdTLO94dySVKRACj1RmJZBQXlbTMhtNIgkWkUHq+jYmZvKf14EW1EoJnnjbmoHij0Q==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", "dev": true, - "requires": { - "pump": "^3.0.0" + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "get-value": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", - "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=", - "dev": true + "node_modules/get-symbol-description": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", + "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, - "glob": { - "version": "7.1.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz", - "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==", + "node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", "dev": true, - "requires": { + "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", "inherits": "2", - "minimatch": "^3.0.4", + "minimatch": "^3.1.1", "once": "^1.3.0", "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "glob-parent": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", - "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", - "dev": true, - "requires": { - "is-glob": "^3.1.0", - "path-dirname": "^1.0.0" - }, - "dependencies": { - "is-glob": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", - "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", - "dev": true, - "requires": { - "is-extglob": "^2.1.0" - } - } + "node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" } }, - "global-modules": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-2.0.0.tgz", - "integrity": "sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==", - "dev": true, - "requires": { - "global-prefix": "^3.0.0" - }, - "dependencies": { - "global-prefix": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-3.0.0.tgz", - "integrity": "sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==", - "dev": true, - "requires": { - "ini": "^1.3.5", - "kind-of": "^6.0.2", - "which": "^1.3.1" - } - } - } + "node_modules/glob-to-regexp": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", + "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", + "dev": true }, - "global-prefix": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-1.0.2.tgz", - "integrity": "sha1-2/dDxsFJklk8ZVVoy2btMsASLr4=", + "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==", "dev": true, - "requires": { - "expand-tilde": "^2.0.2", - "homedir-polyfill": "^1.0.1", - "ini": "^1.3.4", - "is-windows": "^1.0.1", - "which": "^1.2.14" + "engines": { + "node": ">=4" } }, - "globals": { - "version": "11.11.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.11.0.tgz", - "integrity": "sha512-WHq43gS+6ufNOEqlrDBxVEbb8ntfXrfAUU2ZOpCxrBdGKW3gyv8mCxAfIBD0DroPKGrJ2eSsXsLtY9MPntsyTw==", - "dev": true + "node_modules/globalthis": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.3.tgz", + "integrity": "sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==", + "dev": true, + "dependencies": { + "define-properties": "^1.1.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, - "globby": { - "version": "11.0.1", - "resolved": "https://registry.npmjs.org/globby/-/globby-11.0.1.tgz", - "integrity": "sha512-iH9RmgwCmUJHi2z5o2l3eTtGBtXek1OYlHrbcxOYugyHLmAsZrPj43OtHThd62Buh/Vv6VyCBD2bdyWcGNQqoQ==", + "node_modules/globby": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", "dev": true, - "requires": { + "dependencies": { "array-union": "^2.1.0", "dir-glob": "^3.0.1", - "fast-glob": "^3.1.1", - "ignore": "^5.1.4", - "merge2": "^1.3.0", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", "slash": "^3.0.0" }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/gopd": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", + "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", + "dev": true, "dependencies": { - "array-union": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", - "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", - "dev": true - } + "get-intrinsic": "^1.1.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "graceful-fs": { - "version": "4.1.15", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.15.tgz", - "integrity": "sha512-6uHUhOPEBgQ24HM+r6b/QwWfZq+yiFcipKFrOFiBEnWdy5sdzYoi+pJeQaPI5qOLRFqWmAXUPQNsielzdLoecA==", + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", "dev": true }, - "handle-thing": { + "node_modules/handle-thing": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.1.tgz", "integrity": "sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==", "dev": true }, - "has": { + "node_modules/has": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", "dev": true, - "requires": { + "dependencies": { "function-bind": "^1.1.1" + }, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/has-bigints": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", + "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "has-binary2": { + "node_modules/has-binary2": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/has-binary2/-/has-binary2-1.0.3.tgz", "integrity": "sha512-G1LWKhDSvhGeAQ8mPVQlqNcOB2sJdwATtZKl2pDKKHfpf/rYj24lkinxf69blJbnsvtqqNU+L3SL50vzZhXOnw==", - "dev": true, - "requires": { - "isarray": "2.0.1" - }, + "dev": true, "dependencies": { - "isarray": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.1.tgz", - "integrity": "sha1-o32U7ZzaLVmGXJ92/llu4fM4dB4=", - "dev": true - } + "isarray": "2.0.1" } }, - "has-cors": { + "node_modules/has-binary2/node_modules/isarray": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.1.tgz", + "integrity": "sha512-c2cu3UxbI+b6kR3fy0nRnAhodsvR9dx7U5+znCOzdj6IfP3upFURTr0Xl5BlQZNKZjEtxrmVyfSdeE3O57smoQ==", + "dev": true + }, + "node_modules/has-cors": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/has-cors/-/has-cors-1.1.0.tgz", - "integrity": "sha1-XkdHk/fqmEPRu5nCPu9J/xJv/zk=", + "integrity": "sha512-g5VNKdkFuUuVCP9gYfDJHjK2nqdQJ7aDLTnycnc2+RvsOQbuLdF5pm7vuE5J76SEBIQjs4kQY/BWq74JUmjbXA==", "dev": true }, - "has-flag": { + "node_modules/has-flag": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true - }, - "has-symbols": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.0.tgz", - "integrity": "sha1-uhqPGvKg/DllD1yFA2dwQSIGO0Q=", - "dev": true - }, - "has-value": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", - "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", "dev": true, - "requires": { - "get-value": "^2.0.6", - "has-values": "^1.0.0", - "isobject": "^3.0.0" + "engines": { + "node": ">=4" } }, - "has-values": { + "node_modules/has-property-descriptors": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", - "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", - "dev": true, - "requires": { - "is-number": "^3.0.0", - "kind-of": "^4.0.0" - }, - "dependencies": { - "kind-of": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", - "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "hash-base": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz", - "integrity": "sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz", + "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==", "dev": true, - "requires": { - "inherits": "^2.0.4", - "readable-stream": "^3.6.0", - "safe-buffer": "^5.2.0" - }, "dependencies": { - "inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true - }, - "readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "dev": true, - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - }, - "safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "dev": true - } + "get-intrinsic": "^1.1.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "hash.js": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", - "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", + "node_modules/has-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz", + "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==", "dev": true, - "requires": { - "inherits": "^2.0.3", - "minimalistic-assert": "^1.0.1" + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "hmac-drbg": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", - "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", + "node_modules/has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", "dev": true, - "requires": { - "hash.js": "^1.0.3", - "minimalistic-assert": "^1.0.0", - "minimalistic-crypto-utils": "^1.0.1" + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "homedir-polyfill": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz", - "integrity": "sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==", + "node_modules/has-tostringtag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", + "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", "dev": true, - "requires": { - "parse-passwd": "^1.0.0" + "dependencies": { + "has-symbols": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "hosted-git-info": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.7.1.tgz", - "integrity": "sha512-7T/BxH19zbcCTa8XkMlbK5lTo1WtgkFi3GvdWEyNuc4Vex7/9Dqbnpsf4JMydcfj9HCg4zUWFTL3Za6lapg5/w==", + "node_modules/hosted-git-info": { + "version": "2.8.9", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", + "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", "dev": true }, - "hpack.js": { + "node_modules/hpack.js": { "version": "2.1.6", "resolved": "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz", - "integrity": "sha1-h3dMCUnlE/QuhFdbPEVoH63ioLI=", + "integrity": "sha512-zJxVehUdMGIKsRaNt7apO2Gqp0BdqW5yaiGHXXmbpvxgBYVZnAql+BJb4RO5ad2MgpbZKn5G6nMnegrH1FcNYQ==", "dev": true, - "requires": { + "dependencies": { "inherits": "^2.0.1", "obuf": "^1.0.0", "readable-stream": "^2.0.1", "wbuf": "^1.1.0" } }, - "html-entities": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-1.3.1.tgz", - "integrity": "sha512-rhE/4Z3hIhzHAUKbW8jVcCyuT5oJCXXqhN/6mXXVCpzTmvJnoH2HL/bt3EZ6p55jbFJBeAe1ZNpL5BugLujxNA==", + "node_modules/hpack.js/node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true + }, + "node_modules/hpack.js/node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "dev": true, + "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/hpack.js/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==", + "dev": true + }, + "node_modules/hpack.js/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==", + "dev": true, + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/html-entities": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-2.3.3.tgz", + "integrity": "sha512-DV5Ln36z34NNTDgnz0EWGBLZENelNAtkiFA4kyNOG2tDI6Mz1uSWiq1wAKdyjnJwyDiDO7Fa2SO1CTxPXL8VxA==", "dev": true }, - "htmlparser2": { + "node_modules/htmlparser2": { "version": "3.8.3", "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.8.3.tgz", - "integrity": "sha1-mWwosZFRaovoZQGn15dX5ccMEGg=", + "integrity": "sha512-hBxEg3CYXe+rPIua8ETe7tmG3XDn9B0edOE/e9wH2nLczxzgdu0m0aNHY+5wFZiviLWLdANPJTssa92dMcXQ5Q==", "dev": true, - "requires": { + "dependencies": { "domelementtype": "1", "domhandler": "2.3", "domutils": "1.5", "entities": "1.0", "readable-stream": "1.1" - }, - "dependencies": { - "isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", - "dev": true - }, - "readable-stream": { - "version": "1.1.14", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", - "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", - "dev": true, - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.1", - "isarray": "0.0.1", - "string_decoder": "~0.10.x" - } - }, - "string_decoder": { - "version": "0.10.31", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", - "dev": true - } } }, - "http-deceiver": { + "node_modules/http-deceiver": { "version": "1.2.7", "resolved": "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz", - "integrity": "sha1-+nFolEq5pRnTN8sL7HKE3D5yPYc=", + "integrity": "sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw==", "dev": true }, - "http-errors": { - "version": "1.6.3", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", - "integrity": "sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=", + "node_modules/http-errors": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", + "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", "dev": true, - "requires": { - "depd": "~1.1.2", - "inherits": "2.0.3", - "setprototypeof": "1.1.0", - "statuses": ">= 1.4.0 < 2" + "dependencies": { + "depd": "2.0.0", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "toidentifier": "1.0.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/http-errors/node_modules/statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", + "dev": true, + "engines": { + "node": ">= 0.8" } }, - "http-proxy": { + "node_modules/http-parser-js": { + "version": "0.5.8", + "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.8.tgz", + "integrity": "sha512-SGeBX54F94Wgu5RH3X5jsDtf4eHyRogWX1XGT3b4HuW3tQPM4AaBzoUji/4AAJNXCEOWZ5O0DgZmJw1947gD5Q==", + "dev": true + }, + "node_modules/http-proxy": { "version": "1.18.1", "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz", "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==", "dev": true, - "requires": { + "dependencies": { "eventemitter3": "^4.0.0", "follow-redirects": "^1.0.0", "requires-port": "^1.0.0" + }, + "engines": { + "node": ">=8.0.0" } }, - "http-proxy-middleware": { - "version": "0.19.1", - "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-0.19.1.tgz", - "integrity": "sha512-yHYTgWMQO8VvwNS22eLLloAkvungsKdKTLO8AJlftYIKNfJr3GK3zK0ZCfzDDGUBttdGc8xFy1mCitvNKQtC3Q==", + "node_modules/http-proxy-middleware": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-2.0.6.tgz", + "integrity": "sha512-ya/UeJ6HVBYxrgYotAZo1KvPWlgB48kUJLDePFeneHsVujFaW5WNj2NgWCAE//B1Dl02BIfYlpNgBy8Kf8Rjmw==", "dev": true, - "requires": { - "http-proxy": "^1.17.0", - "is-glob": "^4.0.0", - "lodash": "^4.17.11", - "micromatch": "^3.1.10" + "dependencies": { + "@types/http-proxy": "^1.17.8", + "http-proxy": "^1.18.1", + "is-glob": "^4.0.1", + "is-plain-obj": "^3.0.0", + "micromatch": "^4.0.2" + }, + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "@types/express": "^4.17.13" + }, + "peerDependenciesMeta": { + "@types/express": { + "optional": true + } } }, - "https-browserify": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz", - "integrity": "sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=", - "dev": true + "node_modules/human-signals": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", + "dev": true, + "engines": { + "node": ">=10.17.0" + } }, - "iconv-lite": { + "node_modules/iconv-lite": { "version": "0.4.24", "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", "dev": true, - "requires": { + "dependencies": { "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" } }, - "ieee754": { - "version": "1.1.13", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.13.tgz", - "integrity": "sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg==", - "dev": true - }, - "iferr": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/iferr/-/iferr-0.1.5.tgz", - "integrity": "sha1-xg7taebY/bazEEofy8ocGS3FtQE=", - "dev": true - }, - "ignore": { - "version": "5.1.8", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.8.tgz", - "integrity": "sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw==", - "dev": true + "node_modules/ignore": { + "version": "5.2.4", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz", + "integrity": "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==", + "dev": true, + "engines": { + "node": ">= 4" + } }, - "import-local": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/import-local/-/import-local-2.0.0.tgz", - "integrity": "sha512-b6s04m3O+s3CGSbqDIyP4R6aAwAeYlVq9+WUWep6iHa8ETRf9yei1U48C5MmfJmV9AiLYYBKPMq/W+/WRpQmCQ==", + "node_modules/import-local": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz", + "integrity": "sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==", "dev": true, - "requires": { - "pkg-dir": "^3.0.0", - "resolve-cwd": "^2.0.0" + "dependencies": { + "pkg-dir": "^4.2.0", + "resolve-cwd": "^3.0.0" + }, + "bin": { + "import-local-fixture": "fixtures/cli.js" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "imurmurhash": { + "node_modules/imurmurhash": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", - "dev": true + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "dev": true, + "engines": { + "node": ">=0.8.19" + } }, - "indent-string": { + "node_modules/indent-string": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", - "dev": true + "dev": true, + "engines": { + "node": ">=8" + } }, - "indexof": { + "node_modules/indexof": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz", - "integrity": "sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10=", + "integrity": "sha512-i0G7hLJ1z0DE8dsqJa2rycj9dBmNKgXBvotXtZYXakU9oivfB9Uj2ZBC27qqef2U58/ZLwalxa1X/RDCdkHtVg==", "dev": true }, - "infer-owner": { + "node_modules/infer-owner": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz", "integrity": "sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==", "dev": true }, - "inflight": { + "node_modules/inflight": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", "dev": true, - "requires": { + "dependencies": { "once": "^1.3.0", "wrappy": "1" } }, - "inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", - "dev": true - }, - "ini": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz", - "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==", + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", "dev": true }, - "internal-ip": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/internal-ip/-/internal-ip-4.3.0.tgz", - "integrity": "sha512-S1zBo1D6zcsyuC6PMmY5+55YMILQ9av8lotMx447Bq6SAgo/sDK6y6uUKmuYhW7eacnIhFfsPmCNYdDzsnnDCg==", + "node_modules/internal-slot": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.5.tgz", + "integrity": "sha512-Y+R5hJrzs52QCG2laLn4udYVnxsfny9CpOhNhUvk/SSSVyF6T27FzRbF0sroPidSu3X8oEAkOn2K804mjpt6UQ==", "dev": true, - "requires": { - "default-gateway": "^4.2.0", - "ipaddr.js": "^1.9.0" + "dependencies": { + "get-intrinsic": "^1.2.0", + "has": "^1.0.3", + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">= 0.4" } }, - "interpret": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.2.0.tgz", - "integrity": "sha512-mT34yGKMNceBQUoVn7iCDKDntA7SC6gycMAWzGx1z/CMCTV7b2AAtXlo3nRyHZ1FelRkQbQjprHSYGwzLtkVbw==", - "dev": true - }, - "invariant": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", - "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", + "node_modules/interpret": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/interpret/-/interpret-3.1.1.tgz", + "integrity": "sha512-6xwYfHbajpoF0xLW+iwLkhwgvLoZDfjYfoFNu8ftMoXINzwuymNLd9u/KmwtdT2GbR+/Cz66otEGEVVUHX9QLQ==", "dev": true, - "requires": { - "loose-envify": "^1.0.0" + "engines": { + "node": ">=10.13.0" } }, - "invert-kv": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-2.0.0.tgz", - "integrity": "sha512-wPVv/y/QQ/Uiirj/vh3oP+1Ww+AWehmi1g5fFWGPF6IpCBCDVrhgHRMvrLfdYcwDh3QJbGXDW4JAuzxElLSqKA==", - "dev": true - }, - "ip": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz", - "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=", - "dev": true - }, - "ip-regex": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/ip-regex/-/ip-regex-2.1.0.tgz", - "integrity": "sha1-+ni/XS5pE8kRzp+BnuUUa7bYROk=", - "dev": true - }, - "ipaddr.js": { + "node_modules/ipaddr.js": { "version": "1.9.1", "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", - "dev": true - }, - "is-absolute-url": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-3.0.3.tgz", - "integrity": "sha512-opmNIX7uFnS96NtPmhWQgQx6/NYFgsUXYMllcfzwWKUMwfo8kku1TvE6hkNcH+Q1ts5cMVrsY7j0bxXQDciu9Q==", - "dev": true + "dev": true, + "engines": { + "node": ">= 0.10" + } }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "node_modules/is-array-buffer": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.2.tgz", + "integrity": "sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==", "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } + "call-bind": "^1.0.2", + "get-intrinsic": "^1.2.0", + "is-typed-array": "^1.1.10" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "is-arguments": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.0.4.tgz", - "integrity": "sha512-xPh0Rmt8NE65sNzvyUmWgI1tz3mKq74lGA0mL8LYZcoIzKOzDh6HmrYm3d18k60nHerC8A9Km8kYu87zfSFnLA==", - "dev": true - }, - "is-arrayish": { + "node_modules/is-arrayish": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", "dev": true }, - "is-binary-path": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", - "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", + "node_modules/is-bigint": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", + "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", "dev": true, - "requires": { - "binary-extensions": "^1.0.0" + "dependencies": { + "has-bigints": "^1.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", - "dev": true - }, - "is-callable": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.4.tgz", - "integrity": "sha512-r5p9sxJjYnArLjObpjA4xu5EKI3CuKHkJXMhT7kwbpUyIFD1n5PMAsoPvWnvtZiNz7LjkYDRZhd7FlI0eMijEA==", - "dev": true - }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", "dev": true, - "requires": { - "kind-of": "^3.0.2" + "dependencies": { + "binary-extensions": "^2.0.0" }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-boolean-object": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", + "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", + "dev": true, "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "is-date-object": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.1.tgz", - "integrity": "sha1-mqIOtq7rv/d/vTPnTKAbM1gdOhY=", - "dev": true + "node_modules/is-callable": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", + "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "node_modules/is-core-module": { + "version": "2.12.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.12.0.tgz", + "integrity": "sha512-RECHCBCd/viahWmwj6enj19sKbHfJrddi/6cBDsNTKbNq0f7VeaUkBo60BqzvPqo/W54ChS62Z5qyun7cfOMqQ==", "dev": true, - "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" + "dependencies": { + "has": "^1.0.3" }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-date-object": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", + "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", + "dev": true, "dependencies": { - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true - } + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "dev": true + "node_modules/is-docker": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", + "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", + "dev": true, + "bin": { + "is-docker": "cli.js" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } }, - "is-extglob": { + "node_modules/is-extglob": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", - "dev": true + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } }, - "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", - "dev": true + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "engines": { + "node": ">=8" + } }, - "is-glob": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", - "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", "dev": true, - "requires": { + "dependencies": { "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" } }, - "is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "node_modules/is-negative-zero": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz", + "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==", "dev": true, - "requires": { - "kind-of": "^3.0.2" + "engines": { + "node": ">= 0.4" }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-number-object": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", + "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", + "dev": true, "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "is-path-cwd": { + "node_modules/is-path-cwd": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-2.2.0.tgz", "integrity": "sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==", - "dev": true + "dev": true, + "engines": { + "node": ">=6" + } }, - "is-path-in-cwd": { + "node_modules/is-path-in-cwd": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-2.1.0.tgz", "integrity": "sha512-rNocXHgipO+rvnP6dk3zI20RpOtrAM/kzbB258Uw5BWr3TpXi861yzjo16Dn4hUox07iw5AyeMLHWsujkjzvRQ==", "dev": true, - "requires": { + "dependencies": { "is-path-inside": "^2.1.0" + }, + "engines": { + "node": ">=6" } }, - "is-path-inside": { + "node_modules/is-path-inside": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-2.1.0.tgz", "integrity": "sha512-wiyhTzfDWsvwAW53OBWF5zuvaOGlZ6PwYxAbPVDhpm+gM09xKQGjBq/8uYN12aDvMxnAnq3dxTyoSoRNmg5YFg==", "dev": true, - "requires": { + "dependencies": { "path-is-inside": "^1.0.2" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/is-plain-obj": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-3.0.0.tgz", + "integrity": "sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "is-plain-object": { + "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==", "dev": true, - "requires": { - "isobject": "^3.0.1" + "dependencies": { + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-regex": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", + "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-shared-array-buffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz", + "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-string": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", + "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", + "dev": true, + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "is-regex": { + "node_modules/is-symbol": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.4.tgz", - "integrity": "sha1-VRdIm1RwkbCTDglWVM7SXul+lJE=", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", + "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", "dev": true, - "requires": { - "has": "^1.0.1" + "dependencies": { + "has-symbols": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "is-stream": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", - "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", - "dev": true - }, - "is-symbol": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.2.tgz", - "integrity": "sha512-HS8bZ9ox60yCJLH9snBpIwv9pYUAkcuLhSA1oero1UB5y9aiQpRA8y2ex945AOtCZL1lJDeIk3G5LthswI46Lw==", + "node_modules/is-typed-array": { + "version": "1.1.10", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.10.tgz", + "integrity": "sha512-PJqgEHiWZvMpaFZ3uTc8kHPM4+4ADTlDniuQL7cU/UDA0Ql7F70yGfHph3cLNe+c9toaigv+DFzTJKhc2CtO6A==", "dev": true, - "requires": { - "has-symbols": "^1.0.0" + "dependencies": { + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "is-windows": { + "node_modules/is-weakref": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", - "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", - "dev": true + "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", + "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, - "is-wsl": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz", - "integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=", - "dev": true + "node_modules/is-wsl": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", + "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", + "dev": true, + "dependencies": { + "is-docker": "^2.0.0" + }, + "engines": { + "node": ">=8" + } }, - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "node_modules/isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==", "dev": true }, - "isbinaryfile": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-4.0.6.tgz", - "integrity": "sha512-ORrEy+SNVqUhrCaal4hA4fBzhggQQ+BaLntyPOdoEiwlKZW9BZiJXjg3RMiruE4tPEI3pyVPpySHQF/dKWperg==", - "dev": true + "node_modules/isbinaryfile": { + "version": "4.0.10", + "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-4.0.10.tgz", + "integrity": "sha512-iHrqe5shvBUcFbmZq9zOQHBoeOhZJu6RQGrDpBgenUm/Am+F3JM2MgQj+rK3Z601fzrL5gLZWtAPH2OBaSVcyw==", + "dev": true, + "engines": { + "node": ">= 8.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/gjtorikian/" + } }, - "isexe": { + "node_modules/isexe": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", "dev": true }, - "isobject": { + "node_modules/isobject": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true + "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } }, - "jasmine-core": { + "node_modules/jasmine-core": { "version": "2.99.1", "resolved": "https://registry.npmjs.org/jasmine-core/-/jasmine-core-2.99.1.tgz", - "integrity": "sha1-5kAN8ea1bhMLYcS80JPap/boyhU=", + "integrity": "sha512-ra97U4qu3OCcIxvN6eg3kyy8bLrID/TgxafSGMMICg3SFx5C/sUfDPpiOh7yoIsHdtjrOVdtT9rieYhqOsh9Ww==", "dev": true }, - "jest-worker": { - "version": "26.3.0", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-26.3.0.tgz", - "integrity": "sha512-Vmpn2F6IASefL+DVBhPzI2J9/GJUsqzomdeN+P+dK8/jKxbh8R3BtFnx3FIta7wYlPU62cpJMJQo4kuOowcMnw==", + "node_modules/jest-worker": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-26.6.2.tgz", + "integrity": "sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ==", "dev": true, - "requires": { + "dependencies": { "@types/node": "*", "merge-stream": "^2.0.0", "supports-color": "^7.0.0" }, - "dependencies": { - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } + "engines": { + "node": ">= 10.13.0" } }, - "js-levenshtein": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/js-levenshtein/-/js-levenshtein-1.1.6.tgz", - "integrity": "sha512-X2BB11YZtrRqY4EnQcLX5Rh373zbK4alC1FW7D7MBhL2gtcC17cTnr6DmfHZeS0s2rTHjUTMMHfG7gO8SSdw+g==", - "dev": true + "node_modules/jest-worker/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-worker/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } }, - "js-tokens": { + "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==", "dev": true }, - "jsesc": { + "node_modules/jsesc": { "version": "2.5.2", "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", - "dev": true + "dev": true, + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=4" + } }, - "jshint": { - "version": "2.10.1", - "resolved": "https://registry.npmjs.org/jshint/-/jshint-2.10.1.tgz", - "integrity": "sha512-9GpPfKeffYBl7oBDX2lHPG16j0AM7D2bn3aLy9DaWTr6CWa0i/7UGhX8WLZ7V14QQnnr4hXbjauTLYg06F+HYw==", + "node_modules/jshint": { + "version": "2.13.6", + "resolved": "https://registry.npmjs.org/jshint/-/jshint-2.13.6.tgz", + "integrity": "sha512-IVdB4G0NTTeQZrBoM8C5JFVLjV2KtZ9APgybDA1MK73xb09qFs0jCXyQLnCOp1cSZZZbvhq/6mfXHUTaDkffuQ==", "dev": true, - "requires": { + "dependencies": { "cli": "~1.0.0", "console-browserify": "1.1.x", "exit": "0.1.x", "htmlparser2": "3.8.x", - "lodash": "~4.17.10", + "lodash": "~4.17.21", "minimatch": "~3.0.2", - "shelljs": "0.3.x", "strip-json-comments": "1.0.x" + }, + "bin": { + "jshint": "bin/jshint" + } + }, + "node_modules/jshint/node_modules/minimatch": { + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.8.tgz", + "integrity": "sha512-6FsRAQsxQ61mw+qP1ZzbL9Bc78x2p5OqNgNpnoAFLTrX8n5Kxph0CsnhmKKNXTWjXqU5L0pGPR7hYk+XWZr60Q==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" } }, - "json-parse-better-errors": { + "node_modules/json-parse-better-errors": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", "dev": true }, - "json-schema-traverse": { + "node_modules/json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", + "dev": true + }, + "node_modules/json-schema-traverse": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", "dev": true }, - "json3": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/json3/-/json3-3.3.3.tgz", - "integrity": "sha512-c7/8mbUsKigAbLkD5B010BK4D9LZm7A1pNItkEwiUZRpIN66exu/e7YQWysGun+TRKaJp8MhemM+VkfWv42aCA==", - "dev": true - }, - "json5": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.0.tgz", - "integrity": "sha512-8Mh9h6xViijj36g7Dxi+Y4S6hNGV96vcJZr/SrlHh1LR/pEn/8j/+qIBbs44YKl69Lrfctp4QD+AdWLTMqEZAQ==", + "node_modules/json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", "dev": true, - "requires": { - "minimist": "^1.2.0" + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" } }, - "jsonfile": { + "node_modules/jsonfile": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", - "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", + "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", "dev": true, - "requires": { + "optionalDependencies": { "graceful-fs": "^4.1.6" } }, - "jsonify": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz", - "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=", - "dev": true - }, - "karma": { - "version": "5.0.5", - "resolved": "https://registry.npmjs.org/karma/-/karma-5.0.5.tgz", - "integrity": "sha512-Q4Su7kNwkTgqS+KbSCYgH0p4a/0JIxVLyp7qKNV7vgPNhIF4kIoh0GlUfMKpw67BrR3hgPQSJoxgF7xnzUtPpg==", + "node_modules/karma": { + "version": "5.2.3", + "resolved": "https://registry.npmjs.org/karma/-/karma-5.2.3.tgz", + "integrity": "sha512-tHdyFADhVVPBorIKCX8A37iLHxc6RBRphkSoQ+MLKdAtFn1k97tD8WUGi1KlEtDZKL3hui0qhsY9HXUfSNDYPQ==", "dev": true, - "requires": { - "body-parser": "^1.16.1", + "dependencies": { + "body-parser": "^1.19.0", "braces": "^3.0.2", - "chokidar": "^3.0.0", - "colors": "^1.1.0", - "connect": "^3.6.0", + "chokidar": "^3.4.2", + "colors": "^1.4.0", + "connect": "^3.7.0", "di": "^0.0.1", - "dom-serialize": "^2.2.0", - "flatted": "^2.0.0", - "glob": "^7.1.1", - "graceful-fs": "^4.1.2", - "http-proxy": "^1.13.0", - "isbinaryfile": "^4.0.2", - "lodash": "^4.17.14", - "log4js": "^4.0.0", - "mime": "^2.3.1", - "minimatch": "^3.0.2", - "qjobs": "^1.1.4", - "range-parser": "^1.2.0", - "rimraf": "^2.6.0", - "socket.io": "2.1.1", + "dom-serialize": "^2.2.1", + "glob": "^7.1.6", + "graceful-fs": "^4.2.4", + "http-proxy": "^1.18.1", + "isbinaryfile": "^4.0.6", + "lodash": "^4.17.19", + "log4js": "^6.2.1", + "mime": "^2.4.5", + "minimatch": "^3.0.4", + "qjobs": "^1.2.0", + "range-parser": "^1.2.1", + "rimraf": "^3.0.2", + "socket.io": "^2.3.0", "source-map": "^0.6.1", - "tmp": "0.0.33", - "ua-parser-js": "0.7.21", + "tmp": "0.2.1", + "ua-parser-js": "0.7.22", "yargs": "^15.3.1" }, - "dependencies": { - "anymatch": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.1.tgz", - "integrity": "sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg==", - "dev": true, - "requires": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - } - }, - "binary-extensions": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.0.0.tgz", - "integrity": "sha512-Phlt0plgpIIBOGTT/ehfFnbNlfsDEiqmzE2KRXoX1bLIlir4X/MR+zSyBEkL05ffWgnRSf/DXv+WrUAVr93/ow==", - "dev": true - }, - "braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, - "requires": { - "fill-range": "^7.0.1" - } - }, - "chokidar": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.4.0.tgz", - "integrity": "sha512-aXAaho2VJtisB/1fg1+3nlLJqGOuewTzQpd/Tz0yTg2R0e4IGtshYvtjowyEumcBv2z+y4+kc75Mz7j5xJskcQ==", - "dev": true, - "requires": { - "anymatch": "~3.1.1", - "braces": "~3.0.2", - "fsevents": "~2.1.2", - "glob-parent": "~5.1.0", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.4.0" - } - }, - "fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dev": true, - "requires": { - "to-regex-range": "^5.0.1" - } - }, - "fsevents": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.1.3.tgz", - "integrity": "sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ==", - "dev": true, - "optional": true - }, - "glob-parent": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.1.tgz", - "integrity": "sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ==", - "dev": true, - "requires": { - "is-glob": "^4.0.1" - } - }, - "is-binary-path": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", - "dev": true, - "requires": { - "binary-extensions": "^2.0.0" - } - }, - "is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true - }, - "readdirp": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.4.0.tgz", - "integrity": "sha512-0xe001vZBnJEK+uKcj8qOhyAKPzIT+gStxWr3LCB0DwcXR5NZJ3IaC+yGnHCYzB/S7ov3m3EEbZI2zeNvX+hGQ==", - "dev": true, - "requires": { - "picomatch": "^2.2.1" - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - }, - "to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, - "requires": { - "is-number": "^7.0.0" - } - } + "bin": { + "karma": "bin/karma" + }, + "engines": { + "node": ">= 10" } }, - "karma-chrome-launcher": { + "node_modules/karma-chrome-launcher": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/karma-chrome-launcher/-/karma-chrome-launcher-2.2.0.tgz", "integrity": "sha512-uf/ZVpAabDBPvdPdveyk1EPgbnloPvFFGgmRhYLTDH7gEB4nZdSBk8yTU47w1g/drLSx5uMOkjKk7IWKfWg/+w==", "dev": true, - "requires": { + "dependencies": { "fs-access": "^1.0.0", "which": "^1.2.1" } }, - "karma-firefox-launcher": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/karma-firefox-launcher/-/karma-firefox-launcher-1.1.0.tgz", - "integrity": "sha512-LbZ5/XlIXLeQ3cqnCbYLn+rOVhuMIK9aZwlP6eOLGzWdo1UVp7t6CN3DP4SafiRLjexKwHeKHDm0c38Mtd3VxA==", - "dev": true + "node_modules/karma-firefox-launcher": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/karma-firefox-launcher/-/karma-firefox-launcher-1.3.0.tgz", + "integrity": "sha512-Fi7xPhwrRgr+94BnHX0F5dCl1miIW4RHnzjIGxF8GaIEp7rNqX7LSi7ok63VXs3PS/5MQaQMhGxw+bvD+pibBQ==", + "dev": true, + "dependencies": { + "is-wsl": "^2.1.0" + } }, - "karma-jasmine": { + "node_modules/karma-jasmine": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/karma-jasmine/-/karma-jasmine-2.0.1.tgz", "integrity": "sha512-iuC0hmr9b+SNn1DaUD2QEYtUxkS1J+bSJSn7ejdEexs7P8EYvA1CWkEdrDQ+8jVH3AgWlCNwjYsT1chjcNW9lA==", "dev": true, - "requires": { + "dependencies": { "jasmine-core": "^3.3" }, - "dependencies": { - "jasmine-core": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/jasmine-core/-/jasmine-core-3.3.0.tgz", - "integrity": "sha512-3/xSmG/d35hf80BEN66Y6g9Ca5l/Isdeg/j6zvbTYlTzeKinzmaTM4p9am5kYqOmE05D7s1t8FGjzdSnbUbceA==", - "dev": true - } + "engines": { + "node": ">= 6" + }, + "peerDependencies": { + "karma": "*" } }, - "karma-sourcemap-loader": { - "version": "0.3.7", - "resolved": "https://registry.npmjs.org/karma-sourcemap-loader/-/karma-sourcemap-loader-0.3.7.tgz", - "integrity": "sha1-kTIsd/jxPUb+0GKwQuEAnUxFBdg=", + "node_modules/karma-jasmine/node_modules/jasmine-core": { + "version": "3.99.1", + "resolved": "https://registry.npmjs.org/jasmine-core/-/jasmine-core-3.99.1.tgz", + "integrity": "sha512-Hu1dmuoGcZ7AfyynN3LsfruwMbxMALMka+YtZeGoLuDEySVmVAPaonkNoBRIw/ectu8b9tVQCJNgp4a4knp+tg==", + "dev": true + }, + "node_modules/karma-sourcemap-loader": { + "version": "0.3.8", + "resolved": "https://registry.npmjs.org/karma-sourcemap-loader/-/karma-sourcemap-loader-0.3.8.tgz", + "integrity": "sha512-zorxyAakYZuBcHRJE+vbrK2o2JXLFWK8VVjiT/6P+ltLBUGUvqTEkUiQ119MGdOrK7mrmxXHZF1/pfT6GgIZ6g==", "dev": true, - "requires": { + "dependencies": { "graceful-fs": "^4.1.2" } }, - "karma-webpack": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/karma-webpack/-/karma-webpack-4.0.2.tgz", - "integrity": "sha512-970/okAsdUOmiMOCY8sb17A2I8neS25Ad9uhyK3GHgmRSIFJbDcNEFE8dqqUhNe9OHiCC9k3DMrSmtd/0ymP1A==", + "node_modules/karma-webpack": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/karma-webpack/-/karma-webpack-5.0.0.tgz", + "integrity": "sha512-+54i/cd3/piZuP3dr54+NcFeKOPnys5QeM1IY+0SPASwrtHsliXUiCL50iW+K9WWA7RvamC4macvvQ86l3KtaA==", "dev": true, - "requires": { - "clone-deep": "^4.0.1", - "loader-utils": "^1.1.0", - "neo-async": "^2.6.1", - "schema-utils": "^1.0.0", - "source-map": "^0.7.3", - "webpack-dev-middleware": "^3.7.0" - }, - "dependencies": { - "source-map": { - "version": "0.7.3", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", - "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==", - "dev": true - } + "dependencies": { + "glob": "^7.1.3", + "minimatch": "^3.0.4", + "webpack-merge": "^4.1.5" + }, + "engines": { + "node": ">= 6" + }, + "peerDependencies": { + "webpack": "^5.0.0" } }, - "killable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/killable/-/killable-1.0.1.tgz", - "integrity": "sha512-LzqtLKlUwirEUyl/nicirVmNiPvYs7l5n8wOPP7fyJVpUPkvCnW/vuiXGpylGUlnPDnB7311rARzAt3Mhswpjg==", - "dev": true + "node_modules/karma-webpack/node_modules/webpack-merge": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-4.2.2.tgz", + "integrity": "sha512-TUE1UGoTX2Cd42j3krGYqObZbOD+xF7u28WB7tfUordytSjbWTIjK/8V0amkBfTYN4/pB/GIDlJZZ657BGG19g==", + "dev": true, + "dependencies": { + "lodash": "^4.17.15" + } + }, + "node_modules/karma/node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } }, - "kind-of": { + "node_modules/kind-of": { "version": "6.0.3", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", - "dev": true + "dev": true, + "engines": { + "node": ">=0.10.0" + } }, - "lcid": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/lcid/-/lcid-2.0.0.tgz", - "integrity": "sha512-avPEb8P8EGnwXKClwsNUgryVjllcRqtMYa49NTsbQagYuT1DcXnl1915oxWjoyGrXR6zH/Y0Zc96xWsPcoDKeA==", + "node_modules/launch-editor": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/launch-editor/-/launch-editor-2.6.0.tgz", + "integrity": "sha512-JpDCcQnyAAzZZaZ7vEiSqL690w7dAEyLao+KC96zBplnYbJS7TYNjvM3M7y3dGz+v7aIsJk3hllWuc0kWAjyRQ==", "dev": true, - "requires": { - "invert-kv": "^2.0.0" + "dependencies": { + "picocolors": "^1.0.0", + "shell-quote": "^1.7.3" } }, - "load-json-file": { + "node_modules/load-json-file": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", - "integrity": "sha1-L19Fq5HjMhYjT9U62rZo607AmTs=", + "integrity": "sha512-Kx8hMakjX03tiGTLAIdJ+lL0htKnXjEZN6hk/tozf/WOuYGdZBJrZ+rCJRbVCugsjB3jMLn9746NsQIf5VjBMw==", "dev": true, - "requires": { + "dependencies": { "graceful-fs": "^4.1.2", "parse-json": "^4.0.0", "pify": "^3.0.0", "strip-bom": "^3.0.0" + }, + "engines": { + "node": ">=4" } }, - "loader-runner": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-2.4.0.tgz", - "integrity": "sha512-Jsmr89RcXGIwivFY21FcRrisYZfvLMTWx5kOLc+JTxtpBOG6xML0vzbc6SEQG2FO9/4Fc3wW4LVcB5DmGflaRw==", - "dev": true - }, - "loader-utils": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.2.3.tgz", - "integrity": "sha512-fkpz8ejdnEMG3s37wGL07iSBDg99O9D5yflE9RGNH3hRdx9SOwYfnGYdZOUIZitN8E+E2vkq3MUMYMvPYl5ZZA==", + "node_modules/loader-runner": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.0.tgz", + "integrity": "sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==", "dev": true, - "requires": { - "big.js": "^5.2.2", - "emojis-list": "^2.0.0", - "json5": "^1.0.1" - }, - "dependencies": { - "json5": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", - "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", - "dev": true, - "requires": { - "minimist": "^1.2.0" - } - } + "engines": { + "node": ">=6.11.5" } }, - "locate-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", - "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "node_modules/loader-utils": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz", + "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==", "dev": true, - "requires": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" + "dependencies": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^2.1.2" + }, + "engines": { + "node": ">=8.9.0" } }, - "lodash": { - "version": "4.17.19", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.19.tgz", - "integrity": "sha512-JNvd8XER9GQX0v2qJgsaN/mzFCNA5BRe/j8JN9d+tWyGLSodKQHKFicdwNYzWwI3wjRnaKPsGj1XkBjx/F96DQ==", - "dev": true - }, - "log4js": { - "version": "4.5.1", - "resolved": "https://registry.npmjs.org/log4js/-/log4js-4.5.1.tgz", - "integrity": "sha512-EEEgFcE9bLgaYUKuozyFfytQM2wDHtXn4tAN41pkaxpNjAykv11GVdeI4tHtmPWW4Xrgh9R/2d7XYghDVjbKKw==", + "node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", "dev": true, - "requires": { - "date-format": "^2.0.0", - "debug": "^4.1.1", - "flatted": "^2.0.0", - "rfdc": "^1.1.4", - "streamroller": "^1.0.6" + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" } }, - "loglevel": { - "version": "1.6.8", - "resolved": "https://registry.npmjs.org/loglevel/-/loglevel-1.6.8.tgz", - "integrity": "sha512-bsU7+gc9AJ2SqpzxwU3+1fedl8zAntbtC5XYlt3s2j1hJcn2PsXSmgN8TaLG/J1/2mod4+cE/3vNL70/c1RNCA==", + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", "dev": true }, - "loose-envify": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", - "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", - "dev": true, - "requires": { - "js-tokens": "^3.0.0 || ^4.0.0" - } - }, - "lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "requires": { - "yallist": "^4.0.0" - } + "node_modules/lodash.debounce": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", + "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==", + "dev": true }, - "make-dir": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", - "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", + "node_modules/log4js": { + "version": "6.9.1", + "resolved": "https://registry.npmjs.org/log4js/-/log4js-6.9.1.tgz", + "integrity": "sha512-1somDdy9sChrr9/f4UlzhdaGfDR2c/SaD2a4T7qEkG4jTS57/B3qmnjLYePwQ8cqWnUHZI0iAKxMBpCZICiZ2g==", "dev": true, - "requires": { - "pify": "^4.0.1", - "semver": "^5.6.0" - }, "dependencies": { - "pify": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", - "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", - "dev": true - } - } - }, - "map-age-cleaner": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz", - "integrity": "sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w==", - "dev": true, - "requires": { - "p-defer": "^1.0.0" + "date-format": "^4.0.14", + "debug": "^4.3.4", + "flatted": "^3.2.7", + "rfdc": "^1.3.0", + "streamroller": "^3.1.5" + }, + "engines": { + "node": ">=8.0" } }, - "map-cache": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", - "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=", - "dev": true - }, - "map-visit": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", - "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", + "node_modules/lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", "dev": true, - "requires": { - "object-visit": "^1.0.0" + "dependencies": { + "yallist": "^3.0.2" } }, - "md5.js": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", - "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", + "node_modules/make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", "dev": true, - "requires": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1", - "safe-buffer": "^5.1.2" + "dependencies": { + "semver": "^6.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "media-typer": { + "node_modules/media-typer": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", - "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=", - "dev": true - }, - "mem": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/mem/-/mem-4.1.0.tgz", - "integrity": "sha512-I5u6Q1x7wxO0kdOpYBB28xueHADYps5uty/zg936CiG8NTe5sJL8EjrCuLneuDW3PlMdZBGDIn8BirEVdovZvg==", + "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", "dev": true, - "requires": { - "map-age-cleaner": "^0.1.1", - "mimic-fn": "^1.0.0", - "p-is-promise": "^2.0.0" + "engines": { + "node": ">= 0.6" } }, - "memory-fs": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz", - "integrity": "sha1-OpoguEYlI+RHz7x+i7gO1me/xVI=", + "node_modules/memfs": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/memfs/-/memfs-3.5.0.tgz", + "integrity": "sha512-yK6o8xVJlQerz57kvPROwTMgx5WtGwC2ZxDtOUsnGl49rHjYkfQoPNZPCKH73VdLE1BwBu/+Fx/NL8NYMUw2aA==", "dev": true, - "requires": { - "errno": "^0.1.3", - "readable-stream": "^2.0.1" + "dependencies": { + "fs-monkey": "^1.0.3" + }, + "engines": { + "node": ">= 4.0.0" } }, - "memorystream": { + "node_modules/memorystream": { "version": "0.3.1", "resolved": "https://registry.npmjs.org/memorystream/-/memorystream-0.3.1.tgz", - "integrity": "sha1-htcJCzDORV1j+64S3aUaR93K+bI=", - "dev": true + "integrity": "sha512-S3UwM3yj5mtUSEfP41UZmt/0SCoVYUcU1rkXv+BQ5Ig8ndL4sPoJNBUJERafdPb5jjHJGuMgytgKvKIf58XNBw==", + "dev": true, + "engines": { + "node": ">= 0.10.0" + } }, - "merge-descriptors": { + "node_modules/merge-descriptors": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", - "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=", + "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==", "dev": true }, - "merge-stream": { + "node_modules/merge-stream": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", "dev": true }, - "merge2": { + "node_modules/merge2": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", - "dev": true + "dev": true, + "engines": { + "node": ">= 8" + } }, - "methods": { + "node_modules/methods": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", - "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=", - "dev": true - }, - "micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", - "dev": true, - "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" + "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==", + "dev": true, + "engines": { + "node": ">= 0.6" } }, - "miller-rabin": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz", - "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", + "node_modules/micromatch": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", + "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", "dev": true, - "requires": { - "bn.js": "^4.0.0", - "brorand": "^1.0.1" - }, "dependencies": { - "bn.js": { - "version": "4.11.9", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", - "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", - "dev": true - } + "braces": "^3.0.2", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" } }, - "mime": { - "version": "2.4.5", - "resolved": "https://registry.npmjs.org/mime/-/mime-2.4.5.tgz", - "integrity": "sha512-3hQhEUF027BuxZjQA3s7rIv/7VCQPa27hN9u9g87sEkWaKwQPuXOkVKtOeiyUrnWqTDiOs8Ed2rwg733mB0R5w==", - "dev": true + "node_modules/mime": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-2.6.0.tgz", + "integrity": "sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==", + "dev": true, + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4.0.0" + } }, - "mime-db": { - "version": "1.38.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.38.0.tgz", - "integrity": "sha512-bqVioMFFzc2awcdJZIzR3HjZFX20QhilVS7hytkKrv7xFAn8bM1gzc/FOX2awLISvWe0PV8ptFKcon+wZ5qYkg==", - "dev": true + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "dev": true, + "engines": { + "node": ">= 0.6" + } }, - "mime-types": { - "version": "2.1.22", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.22.tgz", - "integrity": "sha512-aGl6TZGnhm/li6F7yx82bJiBZwgiEa4Hf6CNr8YO+r5UHr53tSTYZb102zyU50DOWWKeOv0uQLRL0/9EiKWCog==", + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", "dev": true, - "requires": { - "mime-db": "~1.38.0" + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" } }, - "mimic-fn": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", - "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==", - "dev": true + "node_modules/mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "dev": true, + "engines": { + "node": ">=6" + } }, - "minimalistic-assert": { + "node_modules/minimalistic-assert": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", "dev": true }, - "minimalistic-crypto-utils": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", - "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=", - "dev": true - }, - "minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "dev": true, - "requires": { + "dependencies": { "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" } }, - "minimist": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", - "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", - "dev": true - }, - "minipass": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.1.1.tgz", - "integrity": "sha512-UFqVihv6PQgwj8/yTGvl9kPz7xIAY+R5z6XYjRInD3Gk3qx6QGSD6zEcpeG4Dy/lQnv1J6zv8ejV90hyYIKf3w==", + "node_modules/minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", "dev": true, - "requires": { + "dependencies": { "yallist": "^4.0.0" }, - "dependencies": { - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - } + "engines": { + "node": ">=8" } }, - "minipass-collect": { + "node_modules/minipass-collect": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/minipass-collect/-/minipass-collect-1.0.2.tgz", "integrity": "sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==", "dev": true, - "requires": { + "dependencies": { "minipass": "^3.0.0" + }, + "engines": { + "node": ">= 8" } }, - "minipass-flush": { + "node_modules/minipass-flush": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/minipass-flush/-/minipass-flush-1.0.5.tgz", "integrity": "sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==", "dev": true, - "requires": { + "dependencies": { "minipass": "^3.0.0" + }, + "engines": { + "node": ">= 8" } }, - "minipass-pipeline": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/minipass-pipeline/-/minipass-pipeline-1.2.2.tgz", - "integrity": "sha512-3JS5A2DKhD2g0Gg8x3yamO0pj7YeKGwVlDS90pF++kxptwx/F+B//roxf9SqYil5tQo65bijy+dAuAFZmYOouA==", + "node_modules/minipass-pipeline": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz", + "integrity": "sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==", "dev": true, - "requires": { + "dependencies": { "minipass": "^3.0.0" + }, + "engines": { + "node": ">=8" } }, - "minizlib": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", - "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", - "dev": true, - "requires": { - "minipass": "^3.0.0", - "yallist": "^4.0.0" - } - }, - "mississippi": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/mississippi/-/mississippi-3.0.0.tgz", - "integrity": "sha512-x471SsVjUtBRtcvd4BzKE9kFC+/2TeWgKCgw0bZcw1b9l2X3QX5vCWgF+KaZaYm87Ss//rHnWryupDrgLvmSkA==", - "dev": true, - "requires": { - "concat-stream": "^1.5.0", - "duplexify": "^3.4.2", - "end-of-stream": "^1.1.0", - "flush-write-stream": "^1.0.0", - "from2": "^2.1.0", - "parallel-transform": "^1.1.0", - "pump": "^3.0.0", - "pumpify": "^1.3.3", - "stream-each": "^1.1.0", - "through2": "^2.0.0" - } - }, - "mixin-deep": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", - "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", - "dev": true, - "requires": { - "for-in": "^1.0.2", - "is-extendable": "^1.0.1" - }, - "dependencies": { - "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==", - "dev": true, - "requires": { - "is-plain-object": "^2.0.4" - } - } - } - }, - "mkdirp": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", - "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", - "dev": true, - "requires": { - "minimist": "^1.2.5" - } + "node_modules/minipass/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true }, - "move-concurrently": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/move-concurrently/-/move-concurrently-1.0.1.tgz", - "integrity": "sha1-viwAX9oy4LKa8fBdfEszIUxwH5I=", + "node_modules/minizlib": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", + "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", "dev": true, - "requires": { - "aproba": "^1.1.1", - "copy-concurrently": "^1.0.0", - "fs-write-stream-atomic": "^1.0.8", - "mkdirp": "^0.5.1", - "rimraf": "^2.5.4", - "run-queue": "^1.0.3" + "dependencies": { + "minipass": "^3.0.0", + "yallist": "^4.0.0" + }, + "engines": { + "node": ">= 8" } }, - "ms": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", - "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", + "node_modules/minizlib/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", "dev": true }, - "multicast-dns": { - "version": "6.2.3", - "resolved": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-6.2.3.tgz", - "integrity": "sha512-ji6J5enbMyGRHIAkAOu3WdV8nggqviKCEKtXcOqfphZZtQrmHKycfynJ2V7eVPUA4NhJ6V7Wf4TmGbTwKE9B6g==", + "node_modules/mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", "dev": true, - "requires": { - "dns-packet": "^1.3.1", - "thunky": "^1.0.2" + "bin": { + "mkdirp": "bin/cmd.js" + }, + "engines": { + "node": ">=10" } }, - "multicast-dns-service-types": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/multicast-dns-service-types/-/multicast-dns-service-types-1.1.0.tgz", - "integrity": "sha1-iZ8R2WhuXgXLkbNdXw5jt3PPyQE=", + "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==", "dev": true }, - "nan": { - "version": "2.14.0", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.0.tgz", - "integrity": "sha512-INOFj37C7k3AfaNTtX8RhsTw7qRy7eLET14cROi9+5HAVbbHuIWUHEauBv5qT4Av2tWasiTY1Jw6puUNqRJXQg==", + "node_modules/multicast-dns": { + "version": "7.2.5", + "resolved": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-7.2.5.tgz", + "integrity": "sha512-2eznPJP8z2BFLX50tf0LuODrpINqP1RVIm/CObbTcBRITQgmC/TjcREF1NeTBzIcR5XO/ukWo+YHOjBbFwIupg==", "dev": true, - "optional": true + "dependencies": { + "dns-packet": "^5.2.2", + "thunky": "^1.0.2" + }, + "bin": { + "multicast-dns": "cli.js" + } }, - "nanomatch": { - "version": "1.2.13", - "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", - "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", + "node_modules/negotiator": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", "dev": true, - "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "fragment-cache": "^0.2.1", - "is-windows": "^1.0.2", - "kind-of": "^6.0.2", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" + "engines": { + "node": ">= 0.6" } }, - "negotiator": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.1.tgz", - "integrity": "sha1-KzJxhOiZIQEXeyhWP7XnECrNDKk=", - "dev": true - }, - "neo-async": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.1.tgz", - "integrity": "sha512-iyam8fBuCUpWeKPGpaNMetEocMt364qkCsfL9JuhjXX6dRnguRVOfk2GZaDpPjcOKiiXCPINZC1GczQ7iTq3Zw==", + "node_modules/neo-async": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", + "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", "dev": true }, - "nice-try": { + "node_modules/nice-try": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", "dev": true }, - "node-forge": { - "version": "0.10.0", - "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-0.10.0.tgz", - "integrity": "sha512-PPmu8eEeG9saEUvI97fm4OYxXVB6bFvyNTyiUOBichBpFG8A1Ljw3bY62+5oOjDEMHRnd0Y7HQ+x7uzxOzC6JA==", - "dev": true - }, - "node-libs-browser": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.2.1.tgz", - "integrity": "sha512-h/zcD8H9kaDZ9ALUWwlBUDo6TKF8a7qBSCSEGfjTVIYeqsioSKaAX+BN7NgiMGp6iSIXZ3PxgCu8KS3b71YK5Q==", - "dev": true, - "requires": { - "assert": "^1.1.1", - "browserify-zlib": "^0.2.0", - "buffer": "^4.3.0", - "console-browserify": "^1.1.0", - "constants-browserify": "^1.0.0", - "crypto-browserify": "^3.11.0", - "domain-browser": "^1.1.1", - "events": "^3.0.0", - "https-browserify": "^1.0.0", - "os-browserify": "^0.3.0", - "path-browserify": "0.0.1", - "process": "^0.11.10", - "punycode": "^1.2.4", - "querystring-es3": "^0.2.0", - "readable-stream": "^2.3.3", - "stream-browserify": "^2.0.1", - "stream-http": "^2.7.2", - "string_decoder": "^1.0.0", - "timers-browserify": "^2.0.4", - "tty-browserify": "0.0.0", - "url": "^0.11.0", - "util": "^0.11.0", - "vm-browserify": "^1.0.1" - }, - "dependencies": { - "punycode": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", - "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", - "dev": true - } - } - }, - "node-releases": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.7.tgz", - "integrity": "sha512-bKdrwaqJUPHqlCzDD7so/R+Nk0jGv9a11ZhLrD9f6i947qGLrGAhU3OxRENa19QQmwzGy/g6zCDEuLGDO8HPvA==", + "node_modules/node-forge": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.3.1.tgz", + "integrity": "sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==", "dev": true, - "requires": { - "semver": "^5.3.0" + "engines": { + "node": ">= 6.13.0" } }, - "normalize-package-data": { + "node_modules/node-releases": { + "version": "2.0.10", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.10.tgz", + "integrity": "sha512-5GFldHPXVG/YZmFzJvKK2zDSzPKhEp0+ZR5SVaoSag9fsL5YgHbUHDfnG5494ISANDcK4KwPXAx2xqVEydmd7w==", + "dev": true + }, + "node_modules/normalize-package-data": { "version": "2.5.0", "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", "dev": true, - "requires": { + "dependencies": { "hosted-git-info": "^2.1.4", "resolve": "^1.10.0", "semver": "2 || 3 || 4 || 5", "validate-npm-package-license": "^3.0.1" } }, - "normalize-path": { + "node_modules/normalize-package-data/node_modules/semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true, + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/normalize-path": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true + "dev": true, + "engines": { + "node": ">=0.10.0" + } }, - "npm-run-all": { + "node_modules/npm-run-all": { "version": "4.1.5", "resolved": "https://registry.npmjs.org/npm-run-all/-/npm-run-all-4.1.5.tgz", "integrity": "sha512-Oo82gJDAVcaMdi3nuoKFavkIHBRVqQ1qvMb+9LHk/cF4P6B2m8aP04hGf7oL6wZ9BuGwX1onlLhpuoofSyoQDQ==", "dev": true, - "requires": { + "dependencies": { "ansi-styles": "^3.2.1", "chalk": "^2.4.1", "cross-spawn": "^6.0.5", @@ -6192,1185 +5984,953 @@ "read-pkg": "^3.0.0", "shell-quote": "^1.6.1", "string.prototype.padend": "^3.0.0" + }, + "bin": { + "npm-run-all": "bin/npm-run-all/index.js", + "run-p": "bin/run-p/index.js", + "run-s": "bin/run-s/index.js" + }, + "engines": { + "node": ">= 4" } }, - "npm-run-path": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", - "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", + "node_modules/npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", "dev": true, - "requires": { - "path-key": "^2.0.0" + "dependencies": { + "path-key": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/npm-run-path/node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true, + "engines": { + "node": ">=8" } }, - "null-check": { + "node_modules/null-check": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/null-check/-/null-check-1.0.0.tgz", - "integrity": "sha1-l33/1xdgErnsMNKjnbXPcqBDnt0=", - "dev": true + "integrity": "sha512-j8ZNHg19TyIQOWCGeeQJBuu6xZYIEurf8M1Qsfd8mFrGEfIZytbw18YjKWg+LcO25NowXGZXZpKAx+Ui3TFfDw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } }, - "object-assign": { + "node_modules/object-assign": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", - "dev": true - }, - "object-component": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/object-component/-/object-component-0.0.3.tgz", - "integrity": "sha1-8MaapQ78lbhmwYb0AKM3acsvEpE=", - "dev": true - }, - "object-copy": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", - "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", - "dev": true, - "requires": { - "copy-descriptor": "^0.1.0", - "define-property": "^0.2.5", - "kind-of": "^3.0.3" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "object-inspect": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.7.0.tgz", - "integrity": "sha512-a7pEHdh1xKIAgTySUGgLMx/xwDZskN1Ud6egYYN3EdRW4ZMPNEDUTF+hwy2LUC+Bl+SyLXANnwz/jyh/qutKUw==", - "dev": true - }, - "object-is": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.2.tgz", - "integrity": "sha512-5lHCz+0uufF6wZ7CRFWJN3hp8Jqblpgve06U5CMQ3f//6iDjPr2PEo9MWCjEssDsa+UZEL4PkFpr+BMop6aKzQ==", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", "dev": true, - "requires": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.5" - }, - "dependencies": { - "es-abstract": { - "version": "1.17.5", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.5.tgz", - "integrity": "sha512-BR9auzDbySxOcfog0tLECW8l28eRGpDpU3Dm3Hp4q/N+VtLTmyj4EUN088XZWQDW/hzj6sYRDXeOFsaAODKvpg==", - "dev": true, - "requires": { - "es-to-primitive": "^1.2.1", - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.1", - "is-callable": "^1.1.5", - "is-regex": "^1.0.5", - "object-inspect": "^1.7.0", - "object-keys": "^1.1.1", - "object.assign": "^4.1.0", - "string.prototype.trimleft": "^2.1.1", - "string.prototype.trimright": "^2.1.1" - } - }, - "es-to-primitive": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", - "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", - "dev": true, - "requires": { - "is-callable": "^1.1.4", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.2" - } - }, - "has-symbols": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz", - "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==", - "dev": true - }, - "is-callable": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.5.tgz", - "integrity": "sha512-ESKv5sMCJB2jnHTWZ3O5itG+O128Hsus4K4Qh1h2/cgn2vbgnLSVqfV46AeJA9D5EeeLa9w81KUXMtn34zhX+Q==", - "dev": true - }, - "is-regex": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.5.tgz", - "integrity": "sha512-vlKW17SNq44owv5AQR3Cq0bQPEb8+kF3UKZ2fiZNOWtztYE5i0CzCZxFDwO58qAOWtxdBRVO/V5Qin1wjCqFYQ==", - "dev": true, - "requires": { - "has": "^1.0.3" - } - }, - "object-keys": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", - "dev": true - } + "engines": { + "node": ">=0.10.0" } }, - "object-keys": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.0.tgz", - "integrity": "sha512-6OO5X1+2tYkNyNEx6TsCxEqFfRWaqx6EtMiSbGrw8Ob8v9Ne+Hl8rBAgLBZn5wjEz3s/s6U1WXFUFOcxxAwUpg==", - "dev": true - }, - "object-visit": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", - "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", + "node_modules/object-inspect": { + "version": "1.12.3", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz", + "integrity": "sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==", "dev": true, - "requires": { - "isobject": "^3.0.0" + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "object.assign": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.0.tgz", - "integrity": "sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w==", + "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==", "dev": true, - "requires": { - "define-properties": "^1.1.2", - "function-bind": "^1.1.1", - "has-symbols": "^1.0.0", - "object-keys": "^1.0.11" + "engines": { + "node": ">= 0.4" } }, - "object.pick": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", - "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", + "node_modules/object.assign": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.4.tgz", + "integrity": "sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==", "dev": true, - "requires": { - "isobject": "^3.0.1" + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "has-symbols": "^1.0.3", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "obuf": { + "node_modules/obuf": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz", "integrity": "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==", "dev": true }, - "on-finished": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", - "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", + "node_modules/on-finished": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", "dev": true, - "requires": { + "dependencies": { "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" } }, - "on-headers": { + "node_modules/on-headers": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz", "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==", - "dev": true + "dev": true, + "engines": { + "node": ">= 0.8" + } }, - "once": { + "node_modules/once": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", "dev": true, - "requires": { + "dependencies": { "wrappy": "1" } }, - "opn": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/opn/-/opn-5.5.0.tgz", - "integrity": "sha512-PqHpggC9bLV0VeWcdKhkpxY+3JTzetLSqTCWL/z/tFIbI6G8JCjondXklT1JinczLz2Xib62sSp0T/gKT4KksA==", + "node_modules/onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", "dev": true, - "requires": { - "is-wsl": "^1.1.0" + "dependencies": { + "mimic-fn": "^2.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "original": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/original/-/original-1.0.2.tgz", - "integrity": "sha512-hyBVl6iqqUOJ8FqRe+l/gS8H+kKYjrEndd5Pm1MfBtsEKA038HkkdbAl/72EAXGyonD/PFsvmVG+EvcIpliMBg==", + "node_modules/open": { + "version": "8.4.2", + "resolved": "https://registry.npmjs.org/open/-/open-8.4.2.tgz", + "integrity": "sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==", "dev": true, - "requires": { - "url-parse": "^1.4.3" + "dependencies": { + "define-lazy-prop": "^2.0.0", + "is-docker": "^2.1.1", + "is-wsl": "^2.2.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "os-browserify": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz", - "integrity": "sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc=", - "dev": true - }, - "os-locale": { + "node_modules/p-limit": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-3.1.0.tgz", - "integrity": "sha512-Z8l3R4wYWM40/52Z+S265okfFj8Kt2cC2MKY+xNi3kFs+XGI7WXu/I309QQQYbRW4ijiZ+yxs9pqEhJh0DqW3Q==", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", "dev": true, - "requires": { - "execa": "^1.0.0", - "lcid": "^2.0.0", - "mem": "^4.0.0" + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "os-tmpdir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", - "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", - "dev": true - }, - "p-defer": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-defer/-/p-defer-1.0.0.tgz", - "integrity": "sha1-n26xgvbJqozXQwBKfU+WsZaw+ww=", - "dev": true - }, - "p-finally": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", - "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", - "dev": true - }, - "p-is-promise": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-is-promise/-/p-is-promise-2.0.0.tgz", - "integrity": "sha512-pzQPhYMCAgLAKPWD2jC3Se9fEfrD9npNos0y150EeqZll7akhEgGhTW/slB6lHku8AvYGiJ+YJ5hfHKePPgFWg==", - "dev": true - }, - "p-limit": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.1.0.tgz", - "integrity": "sha512-NhURkNcrVB+8hNfLuysU8enY5xn2KXphsHBaC2YmRNTZRc7RWusw6apSpdEj3jo4CMb6W9nrF6tTnsJsJeyu6g==", + "node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", "dev": true, - "requires": { - "p-try": "^2.0.0" + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" } }, - "p-locate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", - "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "node_modules/p-locate/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", "dev": true, - "requires": { - "p-limit": "^2.0.0" + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "p-map": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-2.1.0.tgz", - "integrity": "sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==", - "dev": true - }, - "p-retry": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-3.0.1.tgz", - "integrity": "sha512-XE6G4+YTTkT2a0UWb2kjZe8xNwf8bIbnqpc/IS/idOBVhyves0mK5OJgeocjx7q5pvX/6m23xuzVPYT1uGM73w==", + "node_modules/p-map": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", + "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", "dev": true, - "requires": { - "retry": "^0.12.0" + "dependencies": { + "aggregate-error": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "p-try": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.0.0.tgz", - "integrity": "sha512-hMp0onDKIajHfIkdRk3P4CdCmErkYAxxDtP3Wx/4nZ3aGlau2VKh3mZpcuFkH27WQkL/3WBCPOktzA9ZOAnMQQ==", - "dev": true - }, - "pako": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", - "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==", - "dev": true - }, - "parallel-transform": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/parallel-transform/-/parallel-transform-1.2.0.tgz", - "integrity": "sha512-P2vSmIu38uIlvdcU7fDkyrxj33gTUy/ABO5ZUbGowxNCopBq/OoD42bP4UmMrJoPyk4Uqf0mu3mtWBhHCZD8yg==", + "node_modules/p-retry": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-4.6.2.tgz", + "integrity": "sha512-312Id396EbJdvRONlngUx0NydfrIQ5lsYu0znKVUzVvArzEIt08V1qhtyESbGVd1FGX7UKtiFp5uwKZdM8wIuQ==", "dev": true, - "requires": { - "cyclist": "^1.0.1", - "inherits": "^2.0.3", - "readable-stream": "^2.1.5" + "dependencies": { + "@types/retry": "0.12.0", + "retry": "^0.13.1" + }, + "engines": { + "node": ">=8" } }, - "parse-asn1": { - "version": "5.1.6", - "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.6.tgz", - "integrity": "sha512-RnZRo1EPU6JBnra2vGHj0yhp6ebyjBZpmUCLHWiFhxlzvBCCpAuZ7elsBp1PVAbQN0/04VD/19rfzlBSwLstMw==", + "node_modules/p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", "dev": true, - "requires": { - "asn1.js": "^5.2.0", - "browserify-aes": "^1.0.0", - "evp_bytestokey": "^1.0.0", - "pbkdf2": "^3.0.3", - "safe-buffer": "^5.1.1" + "engines": { + "node": ">=6" } }, - "parse-json": { + "node_modules/parse-json": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", - "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", + "integrity": "sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw==", "dev": true, - "requires": { + "dependencies": { "error-ex": "^1.3.1", "json-parse-better-errors": "^1.0.1" + }, + "engines": { + "node": ">=4" } }, - "parse-passwd": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz", - "integrity": "sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY=", + "node_modules/parseqs": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/parseqs/-/parseqs-0.0.6.tgz", + "integrity": "sha512-jeAGzMDbfSHHA091hr0r31eYfTig+29g3GKKE/PPbEQ65X0lmMwlEoqmhzu0iztID5uJpZsFlUPDP8ThPL7M8w==", "dev": true }, - "parseqs": { - "version": "0.0.5", - "resolved": "https://registry.npmjs.org/parseqs/-/parseqs-0.0.5.tgz", - "integrity": "sha1-1SCKNzjkZ2bikbouoXNoSSGouJ0=", - "dev": true, - "requires": { - "better-assert": "~1.0.0" - } - }, - "parseuri": { - "version": "0.0.5", - "resolved": "https://registry.npmjs.org/parseuri/-/parseuri-0.0.5.tgz", - "integrity": "sha1-gCBKUNTbt3m/3G6+J3jZDkvOMgo=", - "dev": true, - "requires": { - "better-assert": "~1.0.0" - } + "node_modules/parseuri": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/parseuri/-/parseuri-0.0.6.tgz", + "integrity": "sha512-AUjen8sAkGgao7UyCX6Ahv0gIK2fABKmYjvP4xmy5JaKvcbTRueIqIPHLAfq30xJddqSE033IOMUSOMCcK3Sow==", + "dev": true }, - "parseurl": { + "node_modules/parseurl": { "version": "1.3.3", "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", - "dev": true - }, - "pascalcase": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", - "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=", - "dev": true - }, - "path-browserify": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.1.tgz", - "integrity": "sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ==", - "dev": true - }, - "path-dirname": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", - "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=", - "dev": true + "dev": true, + "engines": { + "node": ">= 0.8" + } }, - "path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", - "dev": true + "node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true, + "engines": { + "node": ">=8" + } }, - "path-is-absolute": { + "node_modules/path-is-absolute": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", - "dev": true + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } }, - "path-is-inside": { + "node_modules/path-is-inside": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", - "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=", + "integrity": "sha512-DUWJr3+ULp4zXmol/SZkFf3JGsS9/SIv+Y3Rt93/UjPpDpklB5f1er4O3POIbUuUJ3FXgqte2Q7SrU6zAqwk8w==", "dev": true }, - "path-key": { + "node_modules/path-key": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", - "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", - "dev": true + "integrity": "sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==", + "dev": true, + "engines": { + "node": ">=4" + } }, - "path-parse": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz", - "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==", + "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==", "dev": true }, - "path-to-regexp": { + "node_modules/path-to-regexp": { "version": "0.1.7", "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", - "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=", + "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==", "dev": true }, - "path-type": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", - "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", + "node_modules/path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", "dev": true, - "requires": { - "pify": "^3.0.0" + "engines": { + "node": ">=8" } }, - "pbkdf2": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.1.tgz", - "integrity": "sha512-4Ejy1OPxi9f2tt1rRV7Go7zmfDQ+ZectEQz3VGUQhgq62HtIRPDyG/JtnwIxs6x3uNMwo2V7q1fMvKjb+Tnpqg==", + "node_modules/picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", + "dev": true + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", "dev": true, - "requires": { - "create-hash": "^1.1.2", - "create-hmac": "^1.1.4", - "ripemd160": "^2.0.1", - "safe-buffer": "^5.0.1", - "sha.js": "^2.4.8" + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" } }, - "picomatch": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.2.tgz", - "integrity": "sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==", - "dev": true - }, - "pidtree": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/pidtree/-/pidtree-0.3.0.tgz", - "integrity": "sha512-9CT4NFlDcosssyg8KVFltgokyKZIFjoBxw8CTGy+5F38Y1eQWrt8tRayiUOXE+zVKQnYu5BR8JjCtvK3BcnBhg==", - "dev": true + "node_modules/pidtree": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/pidtree/-/pidtree-0.3.1.tgz", + "integrity": "sha512-qQbW94hLHEqCg7nhby4yRC7G2+jYHY4Rguc2bjw7Uug4GIJuu1tvf2uHaZv5Q8zdt+WKJ6qK1FOI6amaWUo5FA==", + "dev": true, + "bin": { + "pidtree": "bin/pidtree.js" + }, + "engines": { + "node": ">=0.10" + } }, - "pify": { + "node_modules/pify": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", - "dev": true + "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==", + "dev": true, + "engines": { + "node": ">=4" + } }, - "pinkie": { + "node_modules/pinkie": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", - "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=", - "dev": true + "integrity": "sha512-MnUuEycAemtSaeFSjXKW/aroV7akBbY+Sv+RkyqFjgAe73F+MR0TBWKBRDkmfWq/HiFmdavfZ1G7h4SPZXaCSg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } }, - "pinkie-promise": { + "node_modules/pinkie-promise": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", - "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", + "integrity": "sha512-0Gni6D4UcLTbv9c57DfxDGdr41XfgUjqWZu492f0cIGr16zDU06BWP/RAEvOuo7CQ0CNjHaLlM59YJJFm3NWlw==", "dev": true, - "requires": { + "dependencies": { "pinkie": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" } }, - "pkg-dir": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz", - "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==", - "dev": true, - "requires": { - "find-up": "^3.0.0" - } - }, - "portfinder": { - "version": "1.0.26", - "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.26.tgz", - "integrity": "sha512-Xi7mKxJHHMI3rIUrnm/jjUgwhbYMkp/XKEcZX3aG4BrumLpq3nmoQMX+ClYnDZnZ/New7IatC1no5RX0zo1vXQ==", + "node_modules/pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", "dev": true, - "requires": { - "async": "^2.6.2", - "debug": "^3.1.1", - "mkdirp": "^0.5.1" - }, "dependencies": { - "debug": { - "version": "3.2.6", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", - "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", - "dev": true, - "requires": { - "ms": "^2.1.1" - } - } + "find-up": "^4.0.0" + }, + "engines": { + "node": ">=8" } }, - "posix-character-classes": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", - "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=", - "dev": true - }, - "private": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/private/-/private-0.1.8.tgz", - "integrity": "sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg==", - "dev": true - }, - "process": { - "version": "0.11.10", - "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", - "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=", - "dev": true - }, - "process-nextick-args": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz", - "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==", + "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==", "dev": true }, - "promise-inflight": { + "node_modules/promise-inflight": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", - "integrity": "sha1-mEcocL8igTL8vdhoEputEsPAKeM=", + "integrity": "sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g==", "dev": true }, - "proxy-addr": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.6.tgz", - "integrity": "sha512-dh/frvCBVmSsDYzw6n926jv974gddhkFPfiN8hPOi30Wax25QZyZEGveluCgliBnqmuM+UJmBErbAUFIoDbjOw==", + "node_modules/proxy-addr": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", + "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", "dev": true, - "requires": { - "forwarded": "~0.1.2", + "dependencies": { + "forwarded": "0.2.0", "ipaddr.js": "1.9.1" + }, + "engines": { + "node": ">= 0.10" } }, - "prr": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", - "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY=", - "dev": true - }, - "public-encrypt": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz", - "integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==", - "dev": true, - "requires": { - "bn.js": "^4.1.0", - "browserify-rsa": "^4.0.0", - "create-hash": "^1.1.0", - "parse-asn1": "^5.0.0", - "randombytes": "^2.0.1", - "safe-buffer": "^5.1.2" - }, - "dependencies": { - "bn.js": { - "version": "4.11.9", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", - "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", - "dev": true - } - } - }, - "pump": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", - "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", - "dev": true, - "requires": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, - "pumpify": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/pumpify/-/pumpify-1.5.1.tgz", - "integrity": "sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==", - "dev": true, - "requires": { - "duplexify": "^3.6.0", - "inherits": "^2.0.3", - "pump": "^2.0.0" - }, - "dependencies": { - "pump": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz", - "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==", - "dev": true, - "requires": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - } - } - }, - "punycode": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", - "dev": true + "node_modules/punycode": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz", + "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==", + "dev": true, + "engines": { + "node": ">=6" + } }, - "qjobs": { + "node_modules/qjobs": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/qjobs/-/qjobs-1.2.0.tgz", "integrity": "sha512-8YOJEHtxpySA3fFDyCRxA+UUV+fA+rTWnuWvylOK/NCjhY+b4ocCtmu8TtsWb+mYeU+GCHf/S66KZF/AsteKHg==", - "dev": true - }, - "qs": { - "version": "6.7.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz", - "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==", - "dev": true - }, - "querystring": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", - "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=", - "dev": true + "dev": true, + "engines": { + "node": ">=0.9" + } }, - "querystring-es3": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz", - "integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=", - "dev": true + "node_modules/qs": { + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", + "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", + "dev": true, + "dependencies": { + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, - "querystringify": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.1.1.tgz", - "integrity": "sha512-w7fLxIRCRT7U8Qu53jQnJyPkYZIaR4n5151KMfcJlO/A9397Wxb1amJvROTK6TOnp7PfoAmg/qXiNHI+08jRfA==", - "dev": true + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] }, - "randombytes": { + "node_modules/randombytes": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", "dev": true, - "requires": { - "safe-buffer": "^5.1.0" - } - }, - "randomfill": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz", - "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==", - "dev": true, - "requires": { - "randombytes": "^2.0.5", + "dependencies": { "safe-buffer": "^5.1.0" } }, - "range-parser": { + "node_modules/range-parser": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", - "dev": true + "dev": true, + "engines": { + "node": ">= 0.6" + } }, - "raw-body": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.0.tgz", - "integrity": "sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q==", + "node_modules/raw-body": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz", + "integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==", "dev": true, - "requires": { - "bytes": "3.1.0", - "http-errors": "1.7.2", + "dependencies": { + "bytes": "3.1.2", + "http-errors": "2.0.0", "iconv-lite": "0.4.24", "unpipe": "1.0.0" }, - "dependencies": { - "bytes": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", - "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==", - "dev": true - }, - "http-errors": { - "version": "1.7.2", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz", - "integrity": "sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==", - "dev": true, - "requires": { - "depd": "~1.1.2", - "inherits": "2.0.3", - "setprototypeof": "1.1.1", - "statuses": ">= 1.5.0 < 2", - "toidentifier": "1.0.0" - } - }, - "setprototypeof": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz", - "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==", - "dev": true - } + "engines": { + "node": ">= 0.8" } }, - "read-pkg": { + "node_modules/read-pkg": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz", - "integrity": "sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k=", + "integrity": "sha512-BLq/cCO9two+lBgiTYNqD6GdtK8s4NpaWrl6/rCO9w0TUS8oJl7cmToOZfRYllKTISY6nt1U7jQ53brmKqY6BA==", "dev": true, - "requires": { + "dependencies": { "load-json-file": "^4.0.0", "normalize-package-data": "^2.3.2", "path-type": "^3.0.0" + }, + "engines": { + "node": ">=4" } }, - "readable-stream": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", - "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", + "node_modules/read-pkg/node_modules/path-type": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", + "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", "dev": true, - "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" + "dependencies": { + "pify": "^3.0.0" + }, + "engines": { + "node": ">=4" } }, - "readdirp": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", - "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", + "node_modules/readable-stream": { + "version": "1.1.14", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", + "integrity": "sha512-+MeVjFf4L44XUkhM1eYbD8fyEsxcV81pqMSR5gblfcLCHfZvbrqy4/qYHE+/R5HoBUT11WV5O08Cr1n3YXkWVQ==", "dev": true, - "requires": { - "graceful-fs": "^4.1.11", - "micromatch": "^3.1.10", - "readable-stream": "^2.0.2" + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "0.0.1", + "string_decoder": "~0.10.x" } }, - "regenerate": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.0.tgz", - "integrity": "sha512-1G6jJVDWrt0rK99kBjvEtziZNCICAuvIPkSiUFIQxVP06RCVpq3dmDo2oi6ABpYaDYaTRr67BEhL8r1wgEZZKg==", - "dev": true + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } }, - "regenerate-unicode-properties": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-7.0.0.tgz", - "integrity": "sha512-s5NGghCE4itSlUS+0WUj88G6cfMVMmH8boTPNvABf8od+2dhT9WDlWu8n01raQAJZMOK8Ch6jSexaRO7swd6aw==", + "node_modules/rechoir": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.8.0.tgz", + "integrity": "sha512-/vxpCXddiX8NGfGO/mTafwjq4aFa/71pvamip0++IQk3zG8cbCj0fifNPrjjF1XMXUne91jL9OoxmdykoEtifQ==", "dev": true, - "requires": { - "regenerate": "^1.4.0" + "dependencies": { + "resolve": "^1.20.0" + }, + "engines": { + "node": ">= 10.13.0" } }, - "regenerator-transform": { - "version": "0.13.3", - "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.13.3.tgz", - "integrity": "sha512-5ipTrZFSq5vU2YoGoww4uaRVAK4wyYC4TSICibbfEPOruUu8FFP7ErV0BjmbIOEpn3O/k9na9UEdYR/3m7N6uA==", + "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==", + "dev": true + }, + "node_modules/regenerate-unicode-properties": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.0.tgz", + "integrity": "sha512-d1VudCLoIGitcU/hEg2QqvyGZQmdC0Lf8BqdOMXGFSvJP4bNV1+XqbPQeHHLD51Jh4QJJ225dlIFvY4Ly6MXmQ==", "dev": true, - "requires": { - "private": "^0.1.6" + "dependencies": { + "regenerate": "^1.4.2" + }, + "engines": { + "node": ">=4" } }, - "regex-not": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", - "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", + "node_modules/regenerator-runtime": { + "version": "0.13.11", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz", + "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==", + "dev": true + }, + "node_modules/regenerator-transform": { + "version": "0.15.1", + "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.1.tgz", + "integrity": "sha512-knzmNAcuyxV+gQCufkYcvOqX/qIIfHLv0u5x79kRxuGojfYVky1f15TzZEu2Avte8QGepvUNTnLskf8E6X6Vyg==", "dev": true, - "requires": { - "extend-shallow": "^3.0.2", - "safe-regex": "^1.1.0" + "dependencies": { + "@babel/runtime": "^7.8.4" } }, - "regexp.prototype.flags": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.3.0.tgz", - "integrity": "sha512-2+Q0C5g951OlYlJz6yu5/M33IcsESLlLfsyIaLJaG4FA2r4yP8MvVMJUUP/fVBkSpbbbZlS5gynbEWLipiiXiQ==", + "node_modules/regexp.prototype.flags": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.4.3.tgz", + "integrity": "sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA==", "dev": true, - "requires": { + "dependencies": { + "call-bind": "^1.0.2", "define-properties": "^1.1.3", - "es-abstract": "^1.17.0-next.1" - }, - "dependencies": { - "es-abstract": { - "version": "1.17.5", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.5.tgz", - "integrity": "sha512-BR9auzDbySxOcfog0tLECW8l28eRGpDpU3Dm3Hp4q/N+VtLTmyj4EUN088XZWQDW/hzj6sYRDXeOFsaAODKvpg==", - "dev": true, - "requires": { - "es-to-primitive": "^1.2.1", - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.1", - "is-callable": "^1.1.5", - "is-regex": "^1.0.5", - "object-inspect": "^1.7.0", - "object-keys": "^1.1.1", - "object.assign": "^4.1.0", - "string.prototype.trimleft": "^2.1.1", - "string.prototype.trimright": "^2.1.1" - } - }, - "es-to-primitive": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", - "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", - "dev": true, - "requires": { - "is-callable": "^1.1.4", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.2" - } - }, - "has-symbols": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz", - "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==", - "dev": true - }, - "is-callable": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.5.tgz", - "integrity": "sha512-ESKv5sMCJB2jnHTWZ3O5itG+O128Hsus4K4Qh1h2/cgn2vbgnLSVqfV46AeJA9D5EeeLa9w81KUXMtn34zhX+Q==", - "dev": true - }, - "is-regex": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.5.tgz", - "integrity": "sha512-vlKW17SNq44owv5AQR3Cq0bQPEb8+kF3UKZ2fiZNOWtztYE5i0CzCZxFDwO58qAOWtxdBRVO/V5Qin1wjCqFYQ==", - "dev": true, - "requires": { - "has": "^1.0.3" - } - }, - "object-keys": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", - "dev": true - } + "functions-have-names": "^1.2.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "regexpu-core": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-4.4.0.tgz", - "integrity": "sha512-eDDWElbwwI3K0Lo6CqbQbA6FwgtCz4kYTarrri1okfkRLZAqstU+B3voZBCjg8Fl6iq0gXrJG6MvRgLthfvgOA==", + "node_modules/regexpu-core": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.3.2.tgz", + "integrity": "sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ==", "dev": true, - "requires": { - "regenerate": "^1.4.0", - "regenerate-unicode-properties": "^7.0.0", - "regjsgen": "^0.5.0", - "regjsparser": "^0.6.0", - "unicode-match-property-ecmascript": "^1.0.4", - "unicode-match-property-value-ecmascript": "^1.0.2" + "dependencies": { + "@babel/regjsgen": "^0.8.0", + "regenerate": "^1.4.2", + "regenerate-unicode-properties": "^10.1.0", + "regjsparser": "^0.9.1", + "unicode-match-property-ecmascript": "^2.0.0", + "unicode-match-property-value-ecmascript": "^2.1.0" + }, + "engines": { + "node": ">=4" } }, - "regjsgen": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.5.0.tgz", - "integrity": "sha512-RnIrLhrXCX5ow/E5/Mh2O4e/oa1/jW0eaBKTSy3LaCj+M3Bqvm97GWDp2yUtzIs4LEn65zR2yiYGFqb2ApnzDA==", - "dev": true - }, - "regjsparser": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.6.0.tgz", - "integrity": "sha512-RQ7YyokLiQBomUJuUG8iGVvkgOLxwyZM8k6d3q5SAXpg4r5TZJZigKFvC6PpD+qQ98bCDC5YelPeA3EucDoNeQ==", + "node_modules/regjsparser": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.9.1.tgz", + "integrity": "sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==", "dev": true, - "requires": { + "dependencies": { "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=", - "dev": true - } + "bin": { + "regjsparser": "bin/parser" } }, - "remove-trailing-separator": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", - "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=", - "dev": true - }, - "repeat-element": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.3.tgz", - "integrity": "sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g==", - "dev": true - }, - "repeat-string": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", - "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", - "dev": true + "node_modules/regjsparser/node_modules/jsesc": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", + "integrity": "sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==", + "dev": true, + "bin": { + "jsesc": "bin/jsesc" + } }, - "require-directory": { + "node_modules/require-directory": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", - "dev": true + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } }, - "require-main-filename": { + "node_modules/require-main-filename": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", "dev": true }, - "requires-port": { + "node_modules/requires-port": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", - "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=", + "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==", "dev": true }, - "resolve": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.10.0.tgz", - "integrity": "sha512-3sUr9aq5OfSg2S9pNtPA9hL1FVEAjvfOC4leW0SNf/mpnaakz2a9femSd6LqAww2RaFctwyf1lCqnTHuF1rxDg==", + "node_modules/resolve": { + "version": "1.22.2", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.2.tgz", + "integrity": "sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g==", "dev": true, - "requires": { - "path-parse": "^1.0.6" + "dependencies": { + "is-core-module": "^2.11.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "resolve-cwd": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-2.0.0.tgz", - "integrity": "sha1-AKn3OHVW4nA46uIyyqNypqWbZlo=", + "node_modules/resolve-cwd": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", + "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", "dev": true, - "requires": { - "resolve-from": "^3.0.0" + "dependencies": { + "resolve-from": "^5.0.0" + }, + "engines": { + "node": ">=8" } }, - "resolve-dir": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/resolve-dir/-/resolve-dir-1.0.1.tgz", - "integrity": "sha1-eaQGRMNivoLybv/nOcm7U4IEb0M=", - "dev": true, - "requires": { - "expand-tilde": "^2.0.0", - "global-modules": "^1.0.0" - }, - "dependencies": { - "global-modules": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-1.0.0.tgz", - "integrity": "sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==", - "dev": true, - "requires": { - "global-prefix": "^1.0.1", - "is-windows": "^1.0.1", - "resolve-dir": "^1.0.0" - } - } + "node_modules/resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true, + "engines": { + "node": ">=8" } }, - "resolve-from": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", - "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=", - "dev": true - }, - "resolve-url": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", - "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=", - "dev": true - }, - "ret": { - "version": "0.1.15", - "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", - "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", - "dev": true - }, - "retry": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", - "integrity": "sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs=", - "dev": true + "node_modules/retry": { + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/retry/-/retry-0.13.1.tgz", + "integrity": "sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==", + "dev": true, + "engines": { + "node": ">= 4" + } }, - "reusify": { + "node_modules/reusify": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", - "dev": true + "dev": true, + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } }, - "rfdc": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.1.4.tgz", - "integrity": "sha512-5C9HXdzK8EAqN7JDif30jqsBzavB7wLpaubisuQIGHWf2gUXSpzy6ArX/+Da8RjFpagWsCn+pIgxTMAmKw9Zug==", + "node_modules/rfdc": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.3.0.tgz", + "integrity": "sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA==", "dev": true }, - "rimraf": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz", - "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==", + "node_modules/rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", "dev": true, - "requires": { + "dependencies": { "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" } }, - "ripemd160": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", - "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", "dev": true, - "requires": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1" + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "queue-microtask": "^1.2.2" } }, - "run-parallel": { - "version": "1.1.9", - "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.1.9.tgz", - "integrity": "sha512-DEqnSRTDw/Tc3FXf49zedI638Z9onwUotBMiUFKmrO2sdFKIbXamXGQ3Axd4qgphxKB4kw/qP1w5kTxnfU1B9Q==", - "dev": true - }, - "run-queue": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/run-queue/-/run-queue-1.0.3.tgz", - "integrity": "sha1-6Eg5bwV9Ij8kOGkkYY4laUFh7Ec=", + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", "dev": true, - "requires": { - "aproba": "^1.1.1" - } - }, - "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==", - "dev": true + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] }, - "safe-regex": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", - "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", + "node_modules/safe-regex-test": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.0.tgz", + "integrity": "sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==", "dev": true, - "requires": { - "ret": "~0.1.10" + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.3", + "is-regex": "^1.1.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "safer-buffer": { + "node_modules/safer-buffer": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", "dev": true }, - "schema-utils": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", - "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", + "node_modules/schema-utils": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.1.tgz", + "integrity": "sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg==", "dev": true, - "requires": { - "ajv": "^6.1.0", - "ajv-errors": "^1.0.0", - "ajv-keywords": "^3.1.0" + "dependencies": { + "@types/json-schema": "^7.0.5", + "ajv": "^6.12.4", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 8.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" } }, - "select-hose": { + "node_modules/select-hose": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz", - "integrity": "sha1-Yl2GWPhlr0Psliv8N2o3NZpJlMo=", + "integrity": "sha512-mEugaLK+YfkijB4fx0e6kImuJdCIt2LxCRcbEYPqRGCs4F2ogyfZU5IAZRdjCP8JPq2AtdNoC/Dux63d9Kiryg==", "dev": true }, - "selfsigned": { - "version": "1.10.8", - "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-1.10.8.tgz", - "integrity": "sha512-2P4PtieJeEwVgTU9QEcwIRDQ/mXJLX8/+I3ur+Pg16nS8oNbrGxEso9NyYWy8NAmXiNl4dlAp5MwoNeCWzON4w==", + "node_modules/selfsigned": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-2.1.1.tgz", + "integrity": "sha512-GSL3aowiF7wa/WtSFwnUrludWFoNhftq8bUkH9pkzjpN2XSPOAYEgg6e0sS9s0rZwgJzJiQRPU18A6clnoW5wQ==", "dev": true, - "requires": { - "node-forge": "^0.10.0" + "dependencies": { + "node-forge": "^1" + }, + "engines": { + "node": ">=10" } }, - "semver": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.6.0.tgz", - "integrity": "sha512-RS9R6R35NYgQn++fkDWaOmqGoj4Ek9gGs+DPxNUZKuwE183xjJroKvyo1IzVFeXvUrvmALy6FWD5xrdJT25gMg==", - "dev": true + "node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } }, - "send": { - "version": "0.17.1", - "resolved": "https://registry.npmjs.org/send/-/send-0.17.1.tgz", - "integrity": "sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==", + "node_modules/send": { + "version": "0.18.0", + "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", + "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", "dev": true, - "requires": { + "dependencies": { "debug": "2.6.9", - "depd": "~1.1.2", - "destroy": "~1.0.4", + "depd": "2.0.0", + "destroy": "1.2.0", "encodeurl": "~1.0.2", "escape-html": "~1.0.3", "etag": "~1.8.1", "fresh": "0.5.2", - "http-errors": "~1.7.2", + "http-errors": "2.0.0", "mime": "1.6.0", - "ms": "2.1.1", - "on-finished": "~2.3.0", + "ms": "2.1.3", + "on-finished": "2.4.1", "range-parser": "~1.2.1", - "statuses": "~1.5.0" + "statuses": "2.0.1" }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/send/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - }, - "dependencies": { - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - } - } - }, - "http-errors": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.3.tgz", - "integrity": "sha512-ZTTX0MWrsQ2ZAhA1cejAwDLycFsd7I7nVtnkT3Ol0aqodaKW+0CTZDQ1uBv5whptCnc8e8HeRRJxRs0kmm/Qfw==", - "dev": true, - "requires": { - "depd": "~1.1.2", - "inherits": "2.0.4", - "setprototypeof": "1.1.1", - "statuses": ">= 1.5.0 < 2", - "toidentifier": "1.0.0" - } - }, - "inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true - }, - "mime": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", - "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", - "dev": true - }, - "range-parser": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", - "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", - "dev": true - }, - "setprototypeof": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz", - "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==", - "dev": true - } + "ms": "2.0.0" } }, - "serialize-javascript": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-4.0.0.tgz", - "integrity": "sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw==", + "node_modules/send/node_modules/debug/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, + "node_modules/send/node_modules/mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "dev": true, + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/send/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true + }, + "node_modules/send/node_modules/statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/serialize-javascript": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-5.0.1.tgz", + "integrity": "sha512-SaaNal9imEO737H2c05Og0/8LUXG7EnsZyMa8MzkmuHoELfT6txuj0cMqRj6zfPKnmQ1yasR4PCJc8x+M4JSPA==", "dev": true, - "requires": { + "dependencies": { "randombytes": "^2.1.0" } }, - "serve-index": { + "node_modules/serve-index": { "version": "1.9.1", "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.9.1.tgz", - "integrity": "sha1-03aNabHn2C5c4FD/9bRTvqEqkjk=", + "integrity": "sha512-pXHfKNP4qujrtteMrSBb0rc8HJ9Ms/GrXwcUtUtD5s4ewDJI8bT3Cz2zTVRMKtri49pLx2e0Ya8ziP5Ya2pZZw==", "dev": true, - "requires": { + "dependencies": { "accepts": "~1.3.4", "batch": "0.6.1", "debug": "2.6.9", @@ -7379,2458 +6939,1678 @@ "mime-types": "~2.1.17", "parseurl": "~1.3.2" }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/serve-index/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - } + "ms": "2.0.0" } }, - "serve-static": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.1.tgz", - "integrity": "sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg==", + "node_modules/serve-index/node_modules/depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==", "dev": true, - "requires": { - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "parseurl": "~1.3.3", - "send": "0.17.1" + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/serve-index/node_modules/http-errors": { + "version": "1.6.3", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", + "integrity": "sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A==", + "dev": true, + "dependencies": { + "depd": "~1.1.2", + "inherits": "2.0.3", + "setprototypeof": "1.1.0", + "statuses": ">= 1.4.0 < 2" + }, + "engines": { + "node": ">= 0.6" } }, - "set-blocking": { + "node_modules/serve-index/node_modules/inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==", + "dev": true + }, + "node_modules/serve-index/node_modules/ms": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", "dev": true }, - "set-value": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", - "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==", - "dev": true, - "requires": { - "extend-shallow": "^2.0.1", - "is-extendable": "^0.1.1", - "is-plain-object": "^2.0.3", - "split-string": "^3.0.1" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - } + "node_modules/serve-index/node_modules/setprototypeof": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", + "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==", + "dev": true + }, + "node_modules/serve-static": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz", + "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==", + "dev": true, + "dependencies": { + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "0.18.0" + }, + "engines": { + "node": ">= 0.8.0" } }, - "setimmediate": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", - "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=", + "node_modules/set-blocking": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==", "dev": true }, - "setprototypeof": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", - "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==", + "node_modules/setprototypeof": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", "dev": true }, - "sha.js": { - "version": "2.4.11", - "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", - "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", - "dev": true, - "requires": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "shallow-clone": { + "node_modules/shallow-clone": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz", "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==", "dev": true, - "requires": { + "dependencies": { "kind-of": "^6.0.2" + }, + "engines": { + "node": ">=8" } }, - "shebang-command": { + "node_modules/shebang-command": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", - "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", + "integrity": "sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==", "dev": true, - "requires": { + "dependencies": { "shebang-regex": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" } }, - "shebang-regex": { + "node_modules/shebang-regex": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", - "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", - "dev": true + "integrity": "sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } }, - "shell-quote": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.6.1.tgz", - "integrity": "sha1-9HgZSczkAmlxJ0MOo7PFR29IF2c=", + "node_modules/shell-quote": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.1.tgz", + "integrity": "sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==", "dev": true, - "requires": { - "array-filter": "~0.0.0", - "array-map": "~0.0.0", - "array-reduce": "~0.0.0", - "jsonify": "~0.0.0" + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "shelljs": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.3.0.tgz", - "integrity": "sha1-NZbmMHp4FUT1kfN9phg2DzHbV7E=", - "dev": true + "node_modules/side-channel": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", + "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.0", + "get-intrinsic": "^1.0.2", + "object-inspect": "^1.9.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, - "signal-exit": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", - "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", + "node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", "dev": true }, - "slash": { + "node_modules/slash": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "dev": true - }, - "snapdragon": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", - "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", "dev": true, - "requires": { - "base": "^0.11.1", - "debug": "^2.2.0", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "map-cache": "^0.2.2", - "source-map": "^0.5.6", - "source-map-resolve": "^0.5.0", - "use": "^3.1.0" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - } - } - }, - "snapdragon-node": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", - "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", - "dev": true, - "requires": { - "define-property": "^1.0.0", - "isobject": "^3.0.0", - "snapdragon-util": "^3.0.1" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dev": true, - "requires": { - "is-descriptor": "^1.0.0" - } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - } + "engines": { + "node": ">=8" } }, - "snapdragon-util": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", - "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", + "node_modules/socket.io": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-2.5.0.tgz", + "integrity": "sha512-gGunfS0od3VpwDBpGwVkzSZx6Aqo9uOcf1afJj2cKnKFAoyl16fvhpsUhmUFd4Ldbvl5JvRQed6eQw6oQp6n8w==", "dev": true, - "requires": { - "kind-of": "^3.2.0" - }, "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "socket.io": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-2.1.1.tgz", - "integrity": "sha512-rORqq9c+7W0DAK3cleWNSyfv/qKXV99hV4tZe+gGLfBECw3XEhBy7x85F3wypA9688LKjtwO9pX9L33/xQI8yA==", - "dev": true, - "requires": { - "debug": "~3.1.0", - "engine.io": "~3.2.0", + "debug": "~4.1.0", + "engine.io": "~3.6.0", "has-binary2": "~1.0.2", "socket.io-adapter": "~1.1.0", - "socket.io-client": "2.1.1", - "socket.io-parser": "~3.2.0" - }, - "dependencies": { - "debug": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - } + "socket.io-client": "2.5.0", + "socket.io-parser": "~3.4.0" } }, - "socket.io-adapter": { + "node_modules/socket.io-adapter": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-1.1.2.tgz", "integrity": "sha512-WzZRUj1kUjrTIrUKpZLEzFZ1OLj5FwLlAFQs9kuZJzJi5DKdU7FsWc36SNmA8iDOtwBQyT8FkrriRM8vXLYz8g==", "dev": true }, - "socket.io-client": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-2.1.1.tgz", - "integrity": "sha512-jxnFyhAuFxYfjqIgduQlhzqTcOEQSn+OHKVfAxWaNWa7ecP7xSNk2Dx/3UEsDcY7NcFafxvNvKPmmO7HTwTxGQ==", + "node_modules/socket.io-client": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-2.5.0.tgz", + "integrity": "sha512-lOO9clmdgssDykiOmVQQitwBAF3I6mYcQAo7hQ7AM6Ny5X7fp8hIJ3HcQs3Rjz4SoggoxA1OgrQyY8EgTbcPYw==", "dev": true, - "requires": { + "dependencies": { "backo2": "1.0.2", - "base64-arraybuffer": "0.1.5", "component-bind": "1.0.0", - "component-emitter": "1.2.1", + "component-emitter": "~1.3.0", "debug": "~3.1.0", - "engine.io-client": "~3.2.0", + "engine.io-client": "~3.5.0", "has-binary2": "~1.0.2", - "has-cors": "1.1.0", "indexof": "0.0.1", - "object-component": "0.0.3", - "parseqs": "0.0.5", - "parseuri": "0.0.5", - "socket.io-parser": "~3.2.0", + "parseqs": "0.0.6", + "parseuri": "0.0.6", + "socket.io-parser": "~3.3.0", "to-array": "0.1.4" - }, + } + }, + "node_modules/socket.io-client/node_modules/debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "dev": true, "dependencies": { - "debug": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - } + "ms": "2.0.0" } }, - "socket.io-parser": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-3.2.0.tgz", - "integrity": "sha512-FYiBx7rc/KORMJlgsXysflWx/RIvtqZbyGLlHZvjfmPTPeuD/I8MaW7cfFrj5tRltICJdgwflhfZ3NVVbVLFQA==", + "node_modules/socket.io-client/node_modules/isarray": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.1.tgz", + "integrity": "sha512-c2cu3UxbI+b6kR3fy0nRnAhodsvR9dx7U5+znCOzdj6IfP3upFURTr0Xl5BlQZNKZjEtxrmVyfSdeE3O57smoQ==", + "dev": true + }, + "node_modules/socket.io-client/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, + "node_modules/socket.io-client/node_modules/socket.io-parser": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-3.3.3.tgz", + "integrity": "sha512-qOg87q1PMWWTeO01768Yh9ogn7chB9zkKtQnya41Y355S0UmpXgpcrFwAgjYJxu9BdKug5r5e9YtVSeWhKBUZg==", "dev": true, - "requires": { - "component-emitter": "1.2.1", + "dependencies": { + "component-emitter": "~1.3.0", "debug": "~3.1.0", "isarray": "2.0.1" + } + }, + "node_modules/socket.io-parser": { + "version": "3.4.2", + "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-3.4.2.tgz", + "integrity": "sha512-QFZBaZDNqZXeemwejc7D39jrq2eGK/qZuVDiMPKzZK1hLlNvjGilGt4ckfQZeVX4dGmuPzCytN9ZW1nQlEWjgA==", + "dev": true, + "dependencies": { + "component-emitter": "1.2.1", + "debug": "~4.1.0", + "isarray": "2.0.1" }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/socket.io-parser/node_modules/component-emitter": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz", + "integrity": "sha512-jPatnhd33viNplKjqXKRkGU345p263OIWzDL2wH3LGIGp5Kojo+uXizHmOADRvhGFFTnJqX3jBAKP6vvmSDKcA==", + "dev": true + }, + "node_modules/socket.io-parser/node_modules/debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "deprecated": "Debug versions >=3.2.0 <3.2.7 || >=4 <4.3.1 have a low-severity ReDos regression when used in a Node.js environment. It is recommended you upgrade to 3.2.7 or 4.3.1. (https://github.com/visionmedia/debug/issues/797)", + "dev": true, "dependencies": { - "debug": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "isarray": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.1.tgz", - "integrity": "sha1-o32U7ZzaLVmGXJ92/llu4fM4dB4=", - "dev": true - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - } + "ms": "^2.1.1" } }, - "sockjs": { - "version": "0.3.20", - "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.20.tgz", - "integrity": "sha512-SpmVOVpdq0DJc0qArhF3E5xsxvaiqGNb73XfgBpK1y3UD5gs8DSo8aCTsuT5pX8rssdc2NDIzANwP9eCAiSdTA==", + "node_modules/socket.io-parser/node_modules/isarray": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.1.tgz", + "integrity": "sha512-c2cu3UxbI+b6kR3fy0nRnAhodsvR9dx7U5+znCOzdj6IfP3upFURTr0Xl5BlQZNKZjEtxrmVyfSdeE3O57smoQ==", + "dev": true + }, + "node_modules/socket.io/node_modules/debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "deprecated": "Debug versions >=3.2.0 <3.2.7 || >=4 <4.3.1 have a low-severity ReDos regression when used in a Node.js environment. It is recommended you upgrade to 3.2.7 or 4.3.1. (https://github.com/visionmedia/debug/issues/797)", "dev": true, - "requires": { - "faye-websocket": "^0.10.0", - "uuid": "^3.4.0", - "websocket-driver": "0.6.5" - }, "dependencies": { - "uuid": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", - "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", - "dev": true - } + "ms": "^2.1.1" } }, - "sockjs-client": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/sockjs-client/-/sockjs-client-1.4.0.tgz", - "integrity": "sha512-5zaLyO8/nri5cua0VtOrFXBPK1jbL4+1cebT/mmKA1E1ZXOvJrII75bPu0l0k843G/+iAbhEqzyKr0w/eCCj7g==", + "node_modules/sockjs": { + "version": "0.3.24", + "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.24.tgz", + "integrity": "sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ==", "dev": true, - "requires": { - "debug": "^3.2.5", - "eventsource": "^1.0.7", - "faye-websocket": "~0.11.1", - "inherits": "^2.0.3", - "json3": "^3.3.2", - "url-parse": "^1.4.3" - }, "dependencies": { - "debug": { - "version": "3.2.6", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", - "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", - "dev": true, - "requires": { - "ms": "^2.1.1" - } - }, - "faye-websocket": { - "version": "0.11.3", - "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.3.tgz", - "integrity": "sha512-D2y4bovYpzziGgbHYtGCMjlJM36vAl/y+xUyn1C+FVx8szd1E+86KwVw6XvYSzOP8iMpm1X0I4xJD+QtUb36OA==", - "dev": true, - "requires": { - "websocket-driver": ">=0.5.1" - } - } + "faye-websocket": "^0.11.3", + "uuid": "^8.3.2", + "websocket-driver": "^0.7.4" } }, - "source-list-map": { + "node_modules/source-list-map": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.1.tgz", "integrity": "sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw==", "dev": true }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true - }, - "source-map-resolve": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz", - "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==", + "node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true, - "requires": { - "atob": "^2.1.2", - "decode-uri-component": "^0.2.0", - "resolve-url": "^0.2.1", - "source-map-url": "^0.4.0", - "urix": "^0.1.0" + "engines": { + "node": ">=0.10.0" } }, - "source-map-support": { - "version": "0.5.19", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz", - "integrity": "sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==", + "node_modules/source-map-support": { + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", "dev": true, - "requires": { + "dependencies": { "buffer-from": "^1.0.0", "source-map": "^0.6.0" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - } } }, - "source-map-url": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz", - "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=", - "dev": true - }, - "spdx-correct": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.0.tgz", - "integrity": "sha512-lr2EZCctC2BNR7j7WzJ2FpDznxky1sjfxvvYEyzxNyb6lZXHODmEoJeFu4JupYlkfha1KZpJyoqiJ7pgA1qq8Q==", + "node_modules/spdx-correct": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.2.0.tgz", + "integrity": "sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==", "dev": true, - "requires": { + "dependencies": { "spdx-expression-parse": "^3.0.0", "spdx-license-ids": "^3.0.0" } }, - "spdx-exceptions": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.2.0.tgz", - "integrity": "sha512-2XQACfElKi9SlVb1CYadKDXvoajPgBVPn/gOQLrTvHdElaVhr7ZEbqJaRnJLVNeaI4cMEAgVCeBMKF6MWRDCRA==", + "node_modules/spdx-exceptions": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", + "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==", "dev": true }, - "spdx-expression-parse": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz", - "integrity": "sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==", + "node_modules/spdx-expression-parse": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", + "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", "dev": true, - "requires": { + "dependencies": { "spdx-exceptions": "^2.1.0", "spdx-license-ids": "^3.0.0" } }, - "spdx-license-ids": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.3.tgz", - "integrity": "sha512-uBIcIl3Ih6Phe3XHK1NqboJLdGfwr1UN3k6wSD1dZpmPsIkb8AGNbZYJ1fOBk834+Gxy8rpfDxrS6XLEMZMY2g==", + "node_modules/spdx-license-ids": { + "version": "3.0.13", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.13.tgz", + "integrity": "sha512-XkD+zwiqXHikFZm4AX/7JSCXA98U5Db4AFd5XUg/+9UNtnH75+Z9KxtpYiJZx36mUDVOwH83pl7yvCer6ewM3w==", "dev": true }, - "spdy": { + "node_modules/spdy": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/spdy/-/spdy-4.0.2.tgz", "integrity": "sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==", "dev": true, - "requires": { + "dependencies": { "debug": "^4.1.0", "handle-thing": "^2.0.0", "http-deceiver": "^1.2.7", "select-hose": "^2.0.0", "spdy-transport": "^3.0.0" + }, + "engines": { + "node": ">=6.0.0" } }, - "spdy-transport": { + "node_modules/spdy-transport": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/spdy-transport/-/spdy-transport-3.0.0.tgz", "integrity": "sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==", "dev": true, - "requires": { + "dependencies": { "debug": "^4.1.0", "detect-node": "^2.0.4", "hpack.js": "^2.1.6", "obuf": "^1.1.2", "readable-stream": "^3.0.6", "wbuf": "^1.7.3" - }, - "dependencies": { - "readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "dev": true, - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - } } }, - "split-string": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", - "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", + "node_modules/spdy-transport/node_modules/readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", "dev": true, - "requires": { - "extend-shallow": "^3.0.0" + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" } }, - "ssri": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-6.0.1.tgz", - "integrity": "sha512-3Wge10hNcT1Kur4PDFwEieXSCMCJs/7WvSACcrMYrNp+b8kDL1/0wJch5Ni2WrtwEa2IO8OsVfeKIciKCDx/QA==", + "node_modules/spdy-transport/node_modules/string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", "dev": true, - "requires": { - "figgy-pudding": "^3.5.1" + "dependencies": { + "safe-buffer": "~5.2.0" } }, - "static-extend": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", - "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", - "dev": true, - "requires": { - "define-property": "^0.2.5", - "object-copy": "^0.1.0" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "requires": { - "is-descriptor": "^0.1.0" - } - } + "node_modules/ssri": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-8.0.1.tgz", + "integrity": "sha512-97qShzy1AiyxvPNIkLWoGua7xoQzzPjQ0HAH4B0rWKo7SZ6USuPcrUiAFrws0UH8RrbWmgq3LMTObhPIHbbBeQ==", + "dev": true, + "dependencies": { + "minipass": "^3.1.1" + }, + "engines": { + "node": ">= 8" } }, - "statuses": { + "node_modules/statuses": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", - "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=", - "dev": true - }, - "stream-browserify": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.2.tgz", - "integrity": "sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg==", - "dev": true, - "requires": { - "inherits": "~2.0.1", - "readable-stream": "^2.0.2" - } - }, - "stream-each": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/stream-each/-/stream-each-1.2.3.tgz", - "integrity": "sha512-vlMC2f8I2u/bZGqkdfLQW/13Zihpej/7PmSiMQsbYddxuTsJp8vRe2x2FvVExZg7FaOds43ROAuFJwPR4MTZLw==", + "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==", "dev": true, - "requires": { - "end-of-stream": "^1.1.0", - "stream-shift": "^1.0.0" + "engines": { + "node": ">= 0.6" } }, - "stream-http": { - "version": "2.8.3", - "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-2.8.3.tgz", - "integrity": "sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw==", + "node_modules/streamroller": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/streamroller/-/streamroller-3.1.5.tgz", + "integrity": "sha512-KFxaM7XT+irxvdqSP1LGLgNWbYN7ay5owZ3r/8t77p+EtSUAfUgtl7be3xtqtOmGUl9K9YPO2ca8133RlTjvKw==", "dev": true, - "requires": { - "builtin-status-codes": "^3.0.0", - "inherits": "^2.0.1", - "readable-stream": "^2.3.6", - "to-arraybuffer": "^1.0.0", - "xtend": "^4.0.0" + "dependencies": { + "date-format": "^4.0.14", + "debug": "^4.3.4", + "fs-extra": "^8.1.0" + }, + "engines": { + "node": ">=8.0" } }, - "stream-shift": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.1.tgz", - "integrity": "sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ==", + "node_modules/string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ==", "dev": true }, - "streamroller": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/streamroller/-/streamroller-1.0.6.tgz", - "integrity": "sha512-3QC47Mhv3/aZNFpDDVO44qQb9gwB9QggMEE0sQmkTAwBVYdBRWISdsywlkfm5II1Q5y/pmrHflti/IgmIzdDBg==", + "node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "dev": true, - "requires": { - "async": "^2.6.2", - "date-format": "^2.0.0", - "debug": "^3.2.6", - "fs-extra": "^7.0.1", - "lodash": "^4.17.14" - }, "dependencies": { - "debug": { - "version": "3.2.6", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", - "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", - "dev": true, - "requires": { - "ms": "^2.1.1" - } - } - } - }, - "string-width": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", - "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", - "dev": true, - "requires": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.0" + "strip-ansi": "^6.0.1" }, - "dependencies": { - "emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true - } - } - }, - "string.prototype.padend": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/string.prototype.padend/-/string.prototype.padend-3.0.0.tgz", - "integrity": "sha1-86rvfBcZ8XDF6rHDK/eA2W4h8vA=", - "dev": true, - "requires": { - "define-properties": "^1.1.2", - "es-abstract": "^1.4.3", - "function-bind": "^1.0.2" + "engines": { + "node": ">=8" } }, - "string.prototype.trimend": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.1.tgz", - "integrity": "sha512-LRPxFUaTtpqYsTeNKaFOw3R4bxIzWOnbQ837QfBylo8jIxtcbK/A/sMV7Q+OAV/vWo+7s25pOE10KYSjaSO06g==", + "node_modules/string-width/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", "dev": true, - "requires": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.5" - }, - "dependencies": { - "es-abstract": { - "version": "1.17.5", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.5.tgz", - "integrity": "sha512-BR9auzDbySxOcfog0tLECW8l28eRGpDpU3Dm3Hp4q/N+VtLTmyj4EUN088XZWQDW/hzj6sYRDXeOFsaAODKvpg==", - "dev": true, - "requires": { - "es-to-primitive": "^1.2.1", - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.1", - "is-callable": "^1.1.5", - "is-regex": "^1.0.5", - "object-inspect": "^1.7.0", - "object-keys": "^1.1.1", - "object.assign": "^4.1.0", - "string.prototype.trimleft": "^2.1.1", - "string.prototype.trimright": "^2.1.1" - } - }, - "es-to-primitive": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", - "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", - "dev": true, - "requires": { - "is-callable": "^1.1.4", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.2" - } - }, - "has-symbols": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz", - "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==", - "dev": true - }, - "is-callable": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.5.tgz", - "integrity": "sha512-ESKv5sMCJB2jnHTWZ3O5itG+O128Hsus4K4Qh1h2/cgn2vbgnLSVqfV46AeJA9D5EeeLa9w81KUXMtn34zhX+Q==", - "dev": true - }, - "is-regex": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.5.tgz", - "integrity": "sha512-vlKW17SNq44owv5AQR3Cq0bQPEb8+kF3UKZ2fiZNOWtztYE5i0CzCZxFDwO58qAOWtxdBRVO/V5Qin1wjCqFYQ==", - "dev": true, - "requires": { - "has": "^1.0.3" - } - }, - "object-keys": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", - "dev": true - } + "engines": { + "node": ">=8" } }, - "string.prototype.trimleft": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/string.prototype.trimleft/-/string.prototype.trimleft-2.1.2.tgz", - "integrity": "sha512-gCA0tza1JBvqr3bfAIFJGqfdRTyPae82+KTnm3coDXkZN9wnuW3HjGgN386D7hfv5CHQYCI022/rJPVlqXyHSw==", + "node_modules/string-width/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dev": true, - "requires": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.5", - "string.prototype.trimstart": "^1.0.0" - }, - "dependencies": { - "es-abstract": { - "version": "1.17.5", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.5.tgz", - "integrity": "sha512-BR9auzDbySxOcfog0tLECW8l28eRGpDpU3Dm3Hp4q/N+VtLTmyj4EUN088XZWQDW/hzj6sYRDXeOFsaAODKvpg==", - "dev": true, - "requires": { - "es-to-primitive": "^1.2.1", - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.1", - "is-callable": "^1.1.5", - "is-regex": "^1.0.5", - "object-inspect": "^1.7.0", - "object-keys": "^1.1.1", - "object.assign": "^4.1.0", - "string.prototype.trimleft": "^2.1.1", - "string.prototype.trimright": "^2.1.1" - } - }, - "es-to-primitive": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", - "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", - "dev": true, - "requires": { - "is-callable": "^1.1.4", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.2" - } - }, - "has-symbols": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz", - "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==", - "dev": true - }, - "is-callable": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.5.tgz", - "integrity": "sha512-ESKv5sMCJB2jnHTWZ3O5itG+O128Hsus4K4Qh1h2/cgn2vbgnLSVqfV46AeJA9D5EeeLa9w81KUXMtn34zhX+Q==", - "dev": true - }, - "is-regex": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.5.tgz", - "integrity": "sha512-vlKW17SNq44owv5AQR3Cq0bQPEb8+kF3UKZ2fiZNOWtztYE5i0CzCZxFDwO58qAOWtxdBRVO/V5Qin1wjCqFYQ==", - "dev": true, - "requires": { - "has": "^1.0.3" - } - }, - "object-keys": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", - "dev": true - } + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" } }, - "string.prototype.trimright": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/string.prototype.trimright/-/string.prototype.trimright-2.1.2.tgz", - "integrity": "sha512-ZNRQ7sY3KroTaYjRS6EbNiiHrOkjihL9aQE/8gfQ4DtAC/aEBRHFJa44OmoWxGGqXuJlfKkZW4WcXErGr+9ZFg==", + "node_modules/string.prototype.padend": { + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/string.prototype.padend/-/string.prototype.padend-3.1.4.tgz", + "integrity": "sha512-67otBXoksdjsnXXRUq+KMVTdlVRZ2af422Y0aTyTjVaoQkGr3mxl2Bc5emi7dOQ3OGVVQQskmLEWwFXwommpNw==", "dev": true, - "requires": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.5", - "string.prototype.trimend": "^1.0.0" - }, - "dependencies": { - "es-abstract": { - "version": "1.17.5", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.5.tgz", - "integrity": "sha512-BR9auzDbySxOcfog0tLECW8l28eRGpDpU3Dm3Hp4q/N+VtLTmyj4EUN088XZWQDW/hzj6sYRDXeOFsaAODKvpg==", - "dev": true, - "requires": { - "es-to-primitive": "^1.2.1", - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.1", - "is-callable": "^1.1.5", - "is-regex": "^1.0.5", - "object-inspect": "^1.7.0", - "object-keys": "^1.1.1", - "object.assign": "^4.1.0", - "string.prototype.trimleft": "^2.1.1", - "string.prototype.trimright": "^2.1.1" - } - }, - "es-to-primitive": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", - "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", - "dev": true, - "requires": { - "is-callable": "^1.1.4", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.2" - } - }, - "has-symbols": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz", - "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==", - "dev": true - }, - "is-callable": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.5.tgz", - "integrity": "sha512-ESKv5sMCJB2jnHTWZ3O5itG+O128Hsus4K4Qh1h2/cgn2vbgnLSVqfV46AeJA9D5EeeLa9w81KUXMtn34zhX+Q==", - "dev": true - }, - "is-regex": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.5.tgz", - "integrity": "sha512-vlKW17SNq44owv5AQR3Cq0bQPEb8+kF3UKZ2fiZNOWtztYE5i0CzCZxFDwO58qAOWtxdBRVO/V5Qin1wjCqFYQ==", - "dev": true, - "requires": { - "has": "^1.0.3" - } - }, - "object-keys": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", - "dev": true - } + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "string.prototype.trimstart": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.1.tgz", - "integrity": "sha512-XxZn+QpvrBI1FOcg6dIpxUPgWCPuNXvMD72aaRaUQv1eD4e/Qy8i/hFTe0BUmD60p/QA6bh1avmuPTfNjqVWRw==", + "node_modules/string.prototype.trim": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.7.tgz", + "integrity": "sha512-p6TmeT1T3411M8Cgg9wBTMRtY2q9+PNy9EV1i2lIXUN/btt763oIfxwN3RR8VU6wHX8j/1CFy0L+YuThm6bgOg==", "dev": true, - "requires": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.5" - }, - "dependencies": { - "es-abstract": { - "version": "1.17.5", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.5.tgz", - "integrity": "sha512-BR9auzDbySxOcfog0tLECW8l28eRGpDpU3Dm3Hp4q/N+VtLTmyj4EUN088XZWQDW/hzj6sYRDXeOFsaAODKvpg==", - "dev": true, - "requires": { - "es-to-primitive": "^1.2.1", - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.1", - "is-callable": "^1.1.5", - "is-regex": "^1.0.5", - "object-inspect": "^1.7.0", - "object-keys": "^1.1.1", - "object.assign": "^4.1.0", - "string.prototype.trimleft": "^2.1.1", - "string.prototype.trimright": "^2.1.1" - } - }, - "es-to-primitive": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", - "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", - "dev": true, - "requires": { - "is-callable": "^1.1.4", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.2" - } - }, - "has-symbols": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz", - "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==", - "dev": true - }, - "is-callable": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.5.tgz", - "integrity": "sha512-ESKv5sMCJB2jnHTWZ3O5itG+O128Hsus4K4Qh1h2/cgn2vbgnLSVqfV46AeJA9D5EeeLa9w81KUXMtn34zhX+Q==", - "dev": true - }, - "is-regex": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.5.tgz", - "integrity": "sha512-vlKW17SNq44owv5AQR3Cq0bQPEb8+kF3UKZ2fiZNOWtztYE5i0CzCZxFDwO58qAOWtxdBRVO/V5Qin1wjCqFYQ==", - "dev": true, - "requires": { - "has": "^1.0.3" - } - }, - "object-keys": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", - "dev": true - } + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "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==", + "node_modules/string.prototype.trimend": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.6.tgz", + "integrity": "sha512-JySq+4mrPf9EsDBEDYMOb/lM7XQLulwg5R/m1r0PXEFqrV0qHvl58sdTilSXtKOflCsK2E8jxf+GKC0T07RWwQ==", "dev": true, - "requires": { - "safe-buffer": "~5.1.0" + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "node_modules/string.prototype.trimstart": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.6.tgz", + "integrity": "sha512-omqjMDaY92pbn5HOX7f9IccLA+U1tA9GvtU4JrodiXFfYB7jPzzHpRzpglLAjtUV6bB557zwClJezTqnAiYnQA==", "dev": true, - "requires": { - "ansi-regex": "^5.0.0" + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "strip-bom": { + "node_modules/strip-bom": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", - "dev": true + "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", + "dev": true, + "engines": { + "node": ">=4" + } }, - "strip-eof": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", - "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=", - "dev": true + "node_modules/strip-final-newline": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", + "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", + "dev": true, + "engines": { + "node": ">=6" + } }, - "strip-json-comments": { + "node_modules/strip-json-comments": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-1.0.4.tgz", - "integrity": "sha1-HhX7ysl9Pumb8tc7TGVrCCu6+5E=", - "dev": true + "integrity": "sha512-AOPG8EBc5wAikaG1/7uFCNFJwnKOuQwFTpYBdTW6OvWHeZBQBrAA/amefHGrEiOnCPcLFZK6FUPtWVKpQVIRgg==", + "dev": true, + "bin": { + "strip-json-comments": "cli.js" + }, + "engines": { + "node": ">=0.8.0" + } }, - "supports-color": { + "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==", "dev": true, - "requires": { + "dependencies": { "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" } }, - "tapable": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/tapable/-/tapable-1.1.3.tgz", - "integrity": "sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==", - "dev": true + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/tapable": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", + "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", + "dev": true, + "engines": { + "node": ">=6" + } }, - "tar": { - "version": "6.0.5", - "resolved": "https://registry.npmjs.org/tar/-/tar-6.0.5.tgz", - "integrity": "sha512-0b4HOimQHj9nXNEAA7zWwMM91Zhhba3pspja6sQbgTpynOJf+bkjBnfybNYzbpLbnwXnbyB4LOREvlyXLkCHSg==", + "node_modules/tar": { + "version": "6.1.13", + "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.13.tgz", + "integrity": "sha512-jdIBIN6LTIe2jqzay/2vtYLlBHa3JF42ot3h1dW8Q0PaAG4v8rm0cvpVePtau5C6OKXGGcgO9q2AMNSWxiLqKw==", "dev": true, - "requires": { + "dependencies": { "chownr": "^2.0.0", "fs-minipass": "^2.0.0", - "minipass": "^3.0.0", + "minipass": "^4.0.0", "minizlib": "^2.1.1", "mkdirp": "^1.0.3", "yallist": "^4.0.0" }, - "dependencies": { - "chownr": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", - "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", - "dev": true - }, - "mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", - "dev": true - } + "engines": { + "node": ">=10" + } + }, + "node_modules/tar/node_modules/minipass": { + "version": "4.2.8", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-4.2.8.tgz", + "integrity": "sha512-fNzuVyifolSLFL4NzpF+wEF4qrgqaaKX0haXPQEdQ7NKAN+WecoKMHV09YcuL/DHxrUsYQOK3MiuDf7Ip2OXfQ==", + "dev": true, + "engines": { + "node": ">=8" } }, - "terser": { - "version": "4.8.0", - "resolved": "https://registry.npmjs.org/terser/-/terser-4.8.0.tgz", - "integrity": "sha512-EAPipTNeWsb/3wLPeup1tVPaXfIaU68xMnVdPafIL1TV05OhASArYyIfFvnvJCNrR2NIOvDVNNTFRa+Re2MWyw==", + "node_modules/tar/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "node_modules/terser": { + "version": "5.17.0", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.17.0.tgz", + "integrity": "sha512-3die3+pYW4mta4xF6K8Wtf7id8+oYyfqtAhjwzqY01+CfDSDMx/VA1Sp8sXWs5AVNIoAKoUfmp/gnPqRjBxuDA==", "dev": true, - "requires": { + "dependencies": { + "@jridgewell/source-map": "^0.3.2", + "acorn": "^8.5.0", "commander": "^2.20.0", - "source-map": "~0.6.1", - "source-map-support": "~0.5.12" + "source-map-support": "~0.5.20" }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - } + "bin": { + "terser": "bin/terser" + }, + "engines": { + "node": ">=10" } }, - "terser-webpack-plugin": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-4.2.2.tgz", - "integrity": "sha512-3qAQpykRTD5DReLu5/cwpsg7EZFzP3Q0Hp2XUWJUw2mpq2jfgOKTZr8IZKKnNieRVVo1UauROTdhbQJZveGKtQ==", + "node_modules/terser-webpack-plugin": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-4.2.3.tgz", + "integrity": "sha512-jTgXh40RnvOrLQNgIkwEKnQ8rmHjHK4u+6UBEi+W+FPmvb+uo+chJXntKe7/3lW5mNysgSWD60KyesnhW8D6MQ==", "dev": true, - "requires": { + "dependencies": { "cacache": "^15.0.5", "find-cache-dir": "^3.3.1", - "jest-worker": "^26.3.0", + "jest-worker": "^26.5.0", "p-limit": "^3.0.2", - "schema-utils": "^2.7.1", + "schema-utils": "^3.0.0", "serialize-javascript": "^5.0.1", "source-map": "^0.6.1", - "terser": "^5.3.2", + "terser": "^5.3.4", "webpack-sources": "^1.4.3" }, - "dependencies": { - "ajv": { - "version": "6.12.5", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.5.tgz", - "integrity": "sha512-lRF8RORchjpKG50/WFf8xmg7sgCLFiYNNnqdKflk63whMQcWR5ngGjiSXkL9bjxy6B2npOK2HSMN49jEBMSkag==", - "dev": true, - "requires": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - } - }, - "ajv-keywords": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", - "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", - "dev": true - }, - "cacache": { - "version": "15.0.5", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-15.0.5.tgz", - "integrity": "sha512-lloiL22n7sOjEEXdL8NAjTgv9a1u43xICE9/203qonkZUCj5X1UEWIdf2/Y0d6QcCtMzbKQyhrcDbdvlZTs/+A==", - "dev": true, - "requires": { - "@npmcli/move-file": "^1.0.1", - "chownr": "^2.0.0", - "fs-minipass": "^2.0.0", - "glob": "^7.1.4", - "infer-owner": "^1.0.4", - "lru-cache": "^6.0.0", - "minipass": "^3.1.1", - "minipass-collect": "^1.0.2", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.2", - "mkdirp": "^1.0.3", - "p-map": "^4.0.0", - "promise-inflight": "^1.0.1", - "rimraf": "^3.0.2", - "ssri": "^8.0.0", - "tar": "^6.0.2", - "unique-filename": "^1.1.1" - } - }, - "chownr": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", - "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", - "dev": true - }, - "fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "dev": true - }, - "find-cache-dir": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.1.tgz", - "integrity": "sha512-t2GDMt3oGC/v+BMwzmllWDuJF/xcDtE5j/fCGbqDD7OLuJkj0cfh1YSA5VKPvwMeLFLNDBkwOKZ2X85jGLVftQ==", - "dev": true, - "requires": { - "commondir": "^1.0.1", - "make-dir": "^3.0.2", - "pkg-dir": "^4.1.0" - } - }, - "find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, - "requires": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - } - }, - "glob": { - "version": "7.1.6", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", - "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", - "dev": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dev": true, - "requires": { - "p-locate": "^4.1.0" - } - }, - "make-dir": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", - "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", - "dev": true, - "requires": { - "semver": "^6.0.0" - } - }, - "mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", - "dev": true - }, - "p-limit": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.0.2.tgz", - "integrity": "sha512-iwqZSOoWIW+Ew4kAGUlN16J4M7OB3ysMLSZtnhmqx7njIHFPlxWBX8xo3lVTyFVq6mI/lL9qt2IsN1sHwaxJkg==", - "dev": true, - "requires": { - "p-try": "^2.0.0" - } - }, - "p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dev": true, - "requires": { - "p-limit": "^2.2.0" - }, - "dependencies": { - "p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dev": true, - "requires": { - "p-try": "^2.0.0" - } - } - } - }, - "p-map": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", - "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", - "dev": true, - "requires": { - "aggregate-error": "^3.0.0" - } - }, - "path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "dev": true - }, - "pkg-dir": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", - "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", - "dev": true, - "requires": { - "find-up": "^4.0.0" - } - }, - "rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "dev": true, - "requires": { - "glob": "^7.1.3" - } - }, - "schema-utils": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.1.tgz", - "integrity": "sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg==", - "dev": true, - "requires": { - "@types/json-schema": "^7.0.5", - "ajv": "^6.12.4", - "ajv-keywords": "^3.5.2" - } - }, - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - }, - "serialize-javascript": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-5.0.1.tgz", - "integrity": "sha512-SaaNal9imEO737H2c05Og0/8LUXG7EnsZyMa8MzkmuHoELfT6txuj0cMqRj6zfPKnmQ1yasR4PCJc8x+M4JSPA==", - "dev": true, - "requires": { - "randombytes": "^2.1.0" - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - }, - "source-map-support": { - "version": "0.5.19", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz", - "integrity": "sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==", - "dev": true, - "requires": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - } - }, - "ssri": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-8.0.0.tgz", - "integrity": "sha512-aq/pz989nxVYwn16Tsbj1TqFpD5LLrQxHf5zaHuieFV+R0Bbr4y8qUsOA45hXT/N4/9UNXTarBjnjVmjSOVaAA==", - "dev": true, - "requires": { - "minipass": "^3.1.1" - } - }, - "terser": { - "version": "5.3.3", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.3.3.tgz", - "integrity": "sha512-vRQDIlD+2Pg8YMwVK9kMM3yGylG95EIwzBai1Bw7Ot4OBfn3VP1TZn3EWx4ep2jERN/AmnVaTiGuelZSN7ds/A==", - "dev": true, - "requires": { - "commander": "^2.20.0", - "source-map": "~0.7.2", - "source-map-support": "~0.5.19" - }, - "dependencies": { - "source-map": { - "version": "0.7.3", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", - "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==", - "dev": true - } - } - } + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^4.0.0 || ^5.0.0" } }, - "through2": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", - "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "node_modules/terser-webpack-plugin/node_modules/schema-utils": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.2.tgz", + "integrity": "sha512-pvjEHOgWc9OWA/f/DE3ohBWTD6EleVLf7iFUkoSwAxttdBhB9QUebQgxER2kWueOvRJXPHNnyrvvh9eZINB8Eg==", "dev": true, - "requires": { - "readable-stream": "~2.3.6", - "xtend": "~4.0.1" + "dependencies": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" } }, - "thunky": { + "node_modules/thunky": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz", "integrity": "sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==", "dev": true }, - "timers-browserify": { - "version": "2.0.11", - "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.11.tgz", - "integrity": "sha512-60aV6sgJ5YEbzUdn9c8kYGIqOubPoUdqQCul3SBAsRCZ40s6Y5cMcrW4dt3/k/EsbLVJNl9n6Vz3fTc+k2GeKQ==", + "node_modules/tmp": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.1.tgz", + "integrity": "sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ==", "dev": true, - "requires": { - "setimmediate": "^1.0.4" + "dependencies": { + "rimraf": "^3.0.0" + }, + "engines": { + "node": ">=8.17.0" } }, - "tmp": { - "version": "0.0.33", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", - "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", + "node_modules/tmp/node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", "dev": true, - "requires": { - "os-tmpdir": "~1.0.2" + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "to-array": { + "node_modules/to-array": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/to-array/-/to-array-0.1.4.tgz", - "integrity": "sha1-F+bBH3PdTz10zaek/zI46a2b+JA=", + "integrity": "sha512-LhVdShQD/4Mk4zXNroIQZJC+Ap3zgLcDuwEdcmLv9CCO73NWockQDwyUnW/m8VX/EElfL6FcYx7EeutN4HJA6A==", "dev": true }, - "to-arraybuffer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz", - "integrity": "sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M=", - "dev": true - }, - "to-fast-properties": { + "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=", - "dev": true - }, - "to-object-path": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", - "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", + "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } + "engines": { + "node": ">=4" } }, - "to-regex": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", - "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", "dev": true, - "requires": { - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "regex-not": "^1.0.2", - "safe-regex": "^1.1.0" + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" } }, - "to-regex-range": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", - "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "node_modules/toidentifier": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", "dev": true, - "requires": { - "is-number": "^3.0.0", - "repeat-string": "^1.6.1" + "engines": { + "node": ">=0.6" } }, - "toidentifier": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz", - "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==", - "dev": true - }, - "trim-right": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz", - "integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=", - "dev": true - }, - "tslib": { - "version": "1.13.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.13.0.tgz", - "integrity": "sha512-i/6DQjL8Xf3be4K/E6Wgpekn5Qasl1usyw++dAA35Ue5orEn65VIxOA+YvNNl9HV3qv70T7CNwjODHZrLwvd1Q==", - "dev": true - }, - "tty-browserify": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz", - "integrity": "sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY=", - "dev": true - }, - "type-is": { + "node_modules/type-is": { "version": "1.6.18", "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", "dev": true, - "requires": { + "dependencies": { "media-typer": "0.3.0", "mime-types": "~2.1.24" }, - "dependencies": { - "mime-db": { - "version": "1.44.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.44.0.tgz", - "integrity": "sha512-/NOTfLrsPBVeH7YtFPgsVWveuL+4SjjYxaQ1xtM1KMFj7HdxlBlxeyNLzhyJVx7r4rZGJAZ/6lkKCitSc/Nmpg==", - "dev": true - }, - "mime-types": { - "version": "2.1.27", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.27.tgz", - "integrity": "sha512-JIhqnCasI9yD+SsmkquHBxTSEuZdQX5BuQnS2Vc7puQQQ+8yiP5AY5uWhpdv4YL4VM5c6iliiYWPgJ/nJQLp7w==", - "dev": true, - "requires": { - "mime-db": "1.44.0" - } - } + "engines": { + "node": ">= 0.6" } }, - "typedarray": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", - "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=", - "dev": true - }, - "ua-parser-js": { - "version": "0.7.21", - "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.21.tgz", - "integrity": "sha512-+O8/qh/Qj8CgC6eYBVBykMrNtp5Gebn4dlGD/kKXVkJNDwyrAwSIqwz8CDf+tsAIWVycKcku6gIXJ0qwx/ZXaQ==", - "dev": true - }, - "ultron": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/ultron/-/ultron-1.1.1.tgz", - "integrity": "sha512-UIEXBNeYmKptWH6z8ZnqTeS8fV74zG0/eRU9VGkpzz+LIJNs8W/zM/L+7ctCkRrgbNnnR0xxw4bKOr0cW0N0Og==", - "dev": true - }, - "unicode-canonical-property-names-ecmascript": { + "node_modules/typed-array-length": { "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==", - "dev": true + "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.4.tgz", + "integrity": "sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "is-typed-array": "^1.1.9" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, - "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==", + "node_modules/ua-parser-js": { + "version": "0.7.22", + "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.22.tgz", + "integrity": "sha512-YUxzMjJ5T71w6a8WWVcMGM6YWOTX27rCoIQgLXiWaxqXSx9D7DNjiGWn1aJIRSQ5qr0xuhra77bSIh6voR/46Q==", "dev": true, - "requires": { - "unicode-canonical-property-names-ecmascript": "^1.0.4", - "unicode-property-aliases-ecmascript": "^1.0.4" + "engines": { + "node": "*" } }, - "unicode-match-property-value-ecmascript": { + "node_modules/unbox-primitive": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.0.2.tgz", - "integrity": "sha512-Rx7yODZC1L/T8XKo/2kNzVAQaRE88AaMvI1EF/Xnj3GW2wzN6fop9DDWuFAKUVFH7vozkz26DzP0qyWLKLIVPQ==", - "dev": true + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", + "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "has-bigints": "^1.0.2", + "has-symbols": "^1.0.3", + "which-boxed-primitive": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, - "unicode-property-aliases-ecmascript": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.0.4.tgz", - "integrity": "sha512-2WSLa6OdYd2ng8oqiGIWnJqyFArvhn+5vgx5GTxMbUYjCYKUcuKS62YLFF0R/BDGlB1yzXjQOLtPAfHsgirEpg==", - "dev": true + "node_modules/unicode-canonical-property-names-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz", + "integrity": "sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==", + "dev": true, + "engines": { + "node": ">=4" + } }, - "union-value": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz", - "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==", + "node_modules/unicode-match-property-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz", + "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==", + "dev": true, + "dependencies": { + "unicode-canonical-property-names-ecmascript": "^2.0.0", + "unicode-property-aliases-ecmascript": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-match-property-value-ecmascript": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.1.0.tgz", + "integrity": "sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==", "dev": true, - "requires": { - "arr-union": "^3.1.0", - "get-value": "^2.0.6", - "is-extendable": "^0.1.1", - "set-value": "^2.0.1" + "engines": { + "node": ">=4" } }, - "unique-filename": { + "node_modules/unicode-property-aliases-ecmascript": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz", + "integrity": "sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/unique-filename": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz", "integrity": "sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==", "dev": true, - "requires": { + "dependencies": { "unique-slug": "^2.0.0" } }, - "unique-slug": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.1.tgz", - "integrity": "sha512-n9cU6+gITaVu7VGj1Z8feKMmfAjEAQGhwD9fE3zvpRRa0wEIx8ODYkVGfSc94M2OX00tUFV8wH3zYbm1I8mxFg==", + "node_modules/unique-slug": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.2.tgz", + "integrity": "sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==", "dev": true, - "requires": { + "dependencies": { "imurmurhash": "^0.1.4" } }, - "universalify": { + "node_modules/universalify": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", - "dev": true + "dev": true, + "engines": { + "node": ">= 4.0.0" + } }, - "unpipe": { + "node_modules/unpipe": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", - "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=", + "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/update-browserslist-db": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.11.tgz", + "integrity": "sha512-dCwEFf0/oT85M1fHBg4F0jtLwJrutGoHSQXCh7u4o2t1drG+c0a9Flnqww6XUKSfQMPpJBRjU8d4RXB09qtvaA==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "escalade": "^3.1.1", + "picocolors": "^1.0.0" + }, + "bin": { + "update-browserslist-db": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", "dev": true }, - "unset-value": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", - "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", - "dev": true, - "requires": { - "has-value": "^0.3.1", - "isobject": "^3.0.0" - }, - "dependencies": { - "has-value": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", - "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", - "dev": true, - "requires": { - "get-value": "^2.0.3", - "has-values": "^0.1.4", - "isobject": "^2.0.0" - }, - "dependencies": { - "isobject": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", - "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", - "dev": true, - "requires": { - "isarray": "1.0.0" - } - } - } + "node_modules/utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", + "dev": true, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "dev": true, + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/validate-npm-package-license": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", + "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", + "dev": true, + "dependencies": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, + "node_modules/vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/void-elements": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/void-elements/-/void-elements-2.0.1.tgz", + "integrity": "sha512-qZKX4RnBzH2ugr8Lxa7x+0V6XD9Sb/ouARtiasEQCHB1EVU4NXtmHsDDrx1dO4ne5fc3J6EW05BP1Dl0z0iung==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/watchpack": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.0.tgz", + "integrity": "sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg==", + "dev": true, + "dependencies": { + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.1.2" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/wbuf": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/wbuf/-/wbuf-1.7.3.tgz", + "integrity": "sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==", + "dev": true, + "dependencies": { + "minimalistic-assert": "^1.0.0" + } + }, + "node_modules/webpack": { + "version": "5.79.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.79.0.tgz", + "integrity": "sha512-3mN4rR2Xq+INd6NnYuL9RC9GAmc1ROPKJoHhrZ4pAjdMFEkJJWrsPw8o2JjCIyQyTu7rTXYn4VG6OpyB3CobZg==", + "dev": true, + "dependencies": { + "@types/eslint-scope": "^3.7.3", + "@types/estree": "^1.0.0", + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/wasm-edit": "1.11.1", + "@webassemblyjs/wasm-parser": "1.11.1", + "acorn": "^8.7.1", + "acorn-import-assertions": "^1.7.6", + "browserslist": "^4.14.5", + "chrome-trace-event": "^1.0.2", + "enhanced-resolve": "^5.10.0", + "es-module-lexer": "^1.2.1", + "eslint-scope": "5.1.1", + "events": "^3.2.0", + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.2.9", + "json-parse-even-better-errors": "^2.3.1", + "loader-runner": "^4.2.0", + "mime-types": "^2.1.27", + "neo-async": "^2.6.2", + "schema-utils": "^3.1.0", + "tapable": "^2.1.1", + "terser-webpack-plugin": "^5.3.7", + "watchpack": "^2.4.0", + "webpack-sources": "^3.2.3" + }, + "bin": { + "webpack": "bin/webpack.js" + }, + "engines": { + "node": ">=10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependenciesMeta": { + "webpack-cli": { + "optional": true + } + } + }, + "node_modules/webpack-cli": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-5.0.1.tgz", + "integrity": "sha512-S3KVAyfwUqr0Mo/ur3NzIp6jnerNpo7GUO6so51mxLi1spqsA17YcMXy0WOIJtBSnj748lthxC6XLbNKh/ZC+A==", + "dev": true, + "dependencies": { + "@discoveryjs/json-ext": "^0.5.0", + "@webpack-cli/configtest": "^2.0.1", + "@webpack-cli/info": "^2.0.1", + "@webpack-cli/serve": "^2.0.1", + "colorette": "^2.0.14", + "commander": "^9.4.1", + "cross-spawn": "^7.0.3", + "envinfo": "^7.7.3", + "fastest-levenshtein": "^1.0.12", + "import-local": "^3.0.2", + "interpret": "^3.1.1", + "rechoir": "^0.8.0", + "webpack-merge": "^5.7.3" + }, + "bin": { + "webpack-cli": "bin/cli.js" + }, + "engines": { + "node": ">=14.15.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "5.x.x" + }, + "peerDependenciesMeta": { + "@webpack-cli/generators": { + "optional": true + }, + "webpack-bundle-analyzer": { + "optional": true + }, + "webpack-dev-server": { + "optional": true + } + } + }, + "node_modules/webpack-cli/node_modules/commander": { + "version": "9.5.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-9.5.0.tgz", + "integrity": "sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==", + "dev": true, + "engines": { + "node": "^12.20.0 || >=14" + } + }, + "node_modules/webpack-cli/node_modules/cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/webpack-cli/node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/webpack-cli/node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/webpack-cli/node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/webpack-cli/node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/webpack-dev-server": { + "version": "4.13.3", + "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-4.13.3.tgz", + "integrity": "sha512-KqqzrzMRSRy5ePz10VhjyL27K2dxqwXQLP5rAKwRJBPUahe7Z2bBWzHw37jeb8GCPKxZRO79ZdQUAPesMh/Nug==", + "dev": true, + "dependencies": { + "@types/bonjour": "^3.5.9", + "@types/connect-history-api-fallback": "^1.3.5", + "@types/express": "^4.17.13", + "@types/serve-index": "^1.9.1", + "@types/serve-static": "^1.13.10", + "@types/sockjs": "^0.3.33", + "@types/ws": "^8.5.1", + "ansi-html-community": "^0.0.8", + "bonjour-service": "^1.0.11", + "chokidar": "^3.5.3", + "colorette": "^2.0.10", + "compression": "^1.7.4", + "connect-history-api-fallback": "^2.0.0", + "default-gateway": "^6.0.3", + "express": "^4.17.3", + "graceful-fs": "^4.2.6", + "html-entities": "^2.3.2", + "http-proxy-middleware": "^2.0.3", + "ipaddr.js": "^2.0.1", + "launch-editor": "^2.6.0", + "open": "^8.0.9", + "p-retry": "^4.5.0", + "rimraf": "^3.0.2", + "schema-utils": "^4.0.0", + "selfsigned": "^2.1.1", + "serve-index": "^1.9.1", + "sockjs": "^0.3.24", + "spdy": "^4.0.2", + "webpack-dev-middleware": "^5.3.1", + "ws": "^8.13.0" + }, + "bin": { + "webpack-dev-server": "bin/webpack-dev-server.js" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^4.37.0 || ^5.0.0" + }, + "peerDependenciesMeta": { + "webpack": { + "optional": true }, - "has-values": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", - "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=", - "dev": true + "webpack-cli": { + "optional": true } } }, - "upath": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz", - "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==", - "dev": true - }, - "uri-js": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz", - "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==", + "node_modules/webpack-dev-server/node_modules/ajv": { + "version": "8.12.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", + "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", "dev": true, - "requires": { - "punycode": "^2.1.0" + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" } }, - "urix": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", - "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=", - "dev": true - }, - "url": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz", - "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=", + "node_modules/webpack-dev-server/node_modules/ajv-keywords": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", + "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", "dev": true, - "requires": { - "punycode": "1.3.2", - "querystring": "0.2.0" - }, "dependencies": { - "punycode": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", - "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=", - "dev": true - } + "fast-deep-equal": "^3.1.3" + }, + "peerDependencies": { + "ajv": "^8.8.2" } }, - "url-parse": { - "version": "1.4.7", - "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.4.7.tgz", - "integrity": "sha512-d3uaVyzDB9tQoSXFvuSUNFibTd9zxd2bkVrDRvF5TmvWWQwqE4lgYJ5m+x1DbecWkw+LK4RNl2CU1hHuOKPVlg==", + "node_modules/webpack-dev-server/node_modules/ipaddr.js": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.0.1.tgz", + "integrity": "sha512-1qTgH9NG+IIJ4yfKs2e6Pp1bZg8wbDbKHT21HrLIeYBTRLgMYKnMTPAuI3Lcs61nfx5h1xlXnbJtH1kX5/d/ng==", "dev": true, - "requires": { - "querystringify": "^2.1.1", - "requires-port": "^1.0.0" + "engines": { + "node": ">= 10" } }, - "use": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", - "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==", + "node_modules/webpack-dev-server/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", "dev": true }, - "util": { - "version": "0.11.1", - "resolved": "https://registry.npmjs.org/util/-/util-0.11.1.tgz", - "integrity": "sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ==", + "node_modules/webpack-dev-server/node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", "dev": true, - "requires": { - "inherits": "2.0.3" + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", - "dev": true - }, - "utils-merge": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", - "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=", - "dev": true - }, - "uuid": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz", - "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==", - "dev": true - }, - "v8-compile-cache": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.0.3.tgz", - "integrity": "sha512-CNmdbwQMBjwr9Gsmohvm0pbL954tJrNzf6gWL3K+QMQf00PF7ERGrEiLgjuU3mKreLC2MeGhUsNV9ybTbLgd3w==", - "dev": true - }, - "validate-npm-package-license": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", - "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", + "node_modules/webpack-dev-server/node_modules/schema-utils": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.1.tgz", + "integrity": "sha512-lELhBAAly9NowEsX0yZBlw9ahZG+sK/1RJ21EpzdYHKEs13Vku3LJ+MIPhh4sMs0oCCeufZQEQbMekiA4vuVIQ==", "dev": true, - "requires": { - "spdx-correct": "^3.0.0", - "spdx-expression-parse": "^3.0.0" + "dependencies": { + "@types/json-schema": "^7.0.9", + "ajv": "^8.9.0", + "ajv-formats": "^2.1.1", + "ajv-keywords": "^5.1.0" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" } }, - "vary": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", - "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=", - "dev": true - }, - "vm-browserify": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.2.tgz", - "integrity": "sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==", - "dev": true - }, - "void-elements": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/void-elements/-/void-elements-2.0.1.tgz", - "integrity": "sha1-wGavtYK7HLQSjWDqkjkulNXp2+w=", - "dev": true + "node_modules/webpack-dev-server/node_modules/webpack-dev-middleware": { + "version": "5.3.3", + "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-5.3.3.tgz", + "integrity": "sha512-hj5CYrY0bZLB+eTO+x/j67Pkrquiy7kWepMHmUMoPsmcUaeEnQJqFzHJOyxgWlq746/wUuA64p9ta34Kyb01pA==", + "dev": true, + "dependencies": { + "colorette": "^2.0.10", + "memfs": "^3.4.3", + "mime-types": "^2.1.31", + "range-parser": "^1.2.1", + "schema-utils": "^4.0.0" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^4.0.0 || ^5.0.0" + } }, - "watchpack": { - "version": "1.7.4", - "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.7.4.tgz", - "integrity": "sha512-aWAgTW4MoSJzZPAicljkO1hsi1oKj/RRq/OJQh2PKI2UKL04c2Bs+MBOB+BBABHTXJpf9mCwHN7ANCvYsvY2sg==", + "node_modules/webpack-dev-server/node_modules/ws": { + "version": "8.13.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.13.0.tgz", + "integrity": "sha512-x9vcZYTrFPC7aSIbj7sRCYo7L/Xb8Iy+pW0ng0wt2vCJv7M9HOMy0UoN3rr+IFC7hb7vXoqS+P9ktyLLLhO+LA==", "dev": true, - "requires": { - "chokidar": "^3.4.1", - "graceful-fs": "^4.1.2", - "neo-async": "^2.5.0", - "watchpack-chokidar2": "^2.0.0" - }, - "dependencies": { - "anymatch": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.1.tgz", - "integrity": "sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg==", - "dev": true, - "optional": true, - "requires": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - } - }, - "binary-extensions": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.1.0.tgz", - "integrity": "sha512-1Yj8h9Q+QDF5FzhMs/c9+6UntbD5MkRfRwac8DoEm9ZfUBZ7tZ55YcGVAzEe4bXsdQHEk+s9S5wsOKVdZrw0tQ==", - "dev": true, - "optional": true - }, - "braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, - "optional": true, - "requires": { - "fill-range": "^7.0.1" - } - }, - "chokidar": { - "version": "3.4.2", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.4.2.tgz", - "integrity": "sha512-IZHaDeBeI+sZJRX7lGcXsdzgvZqKv6sECqsbErJA4mHWfpRrD8B97kSFN4cQz6nGBGiuFia1MKR4d6c1o8Cv7A==", - "dev": true, - "optional": true, - "requires": { - "anymatch": "~3.1.1", - "braces": "~3.0.2", - "fsevents": "~2.1.2", - "glob-parent": "~5.1.0", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.4.0" - } - }, - "fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dev": true, - "optional": true, - "requires": { - "to-regex-range": "^5.0.1" - } - }, - "fsevents": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.1.3.tgz", - "integrity": "sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ==", - "dev": true, + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": ">=5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { "optional": true }, - "glob-parent": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.1.tgz", - "integrity": "sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ==", - "dev": true, - "optional": true, - "requires": { - "is-glob": "^4.0.1" - } - }, - "is-binary-path": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", - "dev": true, - "optional": true, - "requires": { - "binary-extensions": "^2.0.0" - } - }, - "is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true, + "utf-8-validate": { "optional": true - }, - "readdirp": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.4.0.tgz", - "integrity": "sha512-0xe001vZBnJEK+uKcj8qOhyAKPzIT+gStxWr3LCB0DwcXR5NZJ3IaC+yGnHCYzB/S7ov3m3EEbZI2zeNvX+hGQ==", - "dev": true, - "optional": true, - "requires": { - "picomatch": "^2.2.1" - } - }, - "to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, - "optional": true, - "requires": { - "is-number": "^7.0.0" - } } } }, - "watchpack-chokidar2": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/watchpack-chokidar2/-/watchpack-chokidar2-2.0.0.tgz", - "integrity": "sha512-9TyfOyN/zLUbA288wZ8IsMZ+6cbzvsNyEzSBp6e/zkifi6xxbl8SmQ/CxQq32k8NNqrdVEVUVSEf56L4rQ/ZxA==", + "node_modules/webpack-merge": { + "version": "5.8.0", + "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-5.8.0.tgz", + "integrity": "sha512-/SaI7xY0831XwP6kzuwhKWVKDP9t1QY1h65lAFLbZqMPIuYcD9QAW4u9STIbU9kaJbPBB/geU/gLr1wDjOhQ+Q==", "dev": true, - "optional": true, - "requires": { - "chokidar": "^2.1.8" + "dependencies": { + "clone-deep": "^4.0.1", + "wildcard": "^2.0.0" + }, + "engines": { + "node": ">=10.0.0" } }, - "wbuf": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/wbuf/-/wbuf-1.7.3.tgz", - "integrity": "sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==", + "node_modules/webpack-sources": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.4.3.tgz", + "integrity": "sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ==", "dev": true, - "requires": { - "minimalistic-assert": "^1.0.0" + "dependencies": { + "source-list-map": "^2.0.0", + "source-map": "~0.6.1" } }, - "webpack": { - "version": "4.44.2", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.44.2.tgz", - "integrity": "sha512-6KJVGlCxYdISyurpQ0IPTklv+DULv05rs2hseIXer6D7KrUicRDLFb4IUM1S6LUAKypPM/nSiVSuv8jHu1m3/Q==", + "node_modules/webpack/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, - "requires": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/helper-module-context": "1.9.0", - "@webassemblyjs/wasm-edit": "1.9.0", - "@webassemblyjs/wasm-parser": "1.9.0", - "acorn": "^6.4.1", - "ajv": "^6.10.2", - "ajv-keywords": "^3.4.1", - "chrome-trace-event": "^1.0.2", - "enhanced-resolve": "^4.3.0", - "eslint-scope": "^4.0.3", - "json-parse-better-errors": "^1.0.2", - "loader-runner": "^2.4.0", - "loader-utils": "^1.2.3", - "memory-fs": "^0.4.1", - "micromatch": "^3.1.10", - "mkdirp": "^0.5.3", - "neo-async": "^2.6.1", - "node-libs-browser": "^2.2.1", - "schema-utils": "^1.0.0", - "tapable": "^1.1.3", - "terser-webpack-plugin": "^1.4.3", - "watchpack": "^1.7.4", - "webpack-sources": "^1.4.1" + "engines": { + "node": ">=8" + } + }, + "node_modules/webpack/node_modules/jest-worker": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", + "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", + "dev": true, + "dependencies": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/webpack/node_modules/schema-utils": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.2.tgz", + "integrity": "sha512-pvjEHOgWc9OWA/f/DE3ohBWTD6EleVLf7iFUkoSwAxttdBhB9QUebQgxER2kWueOvRJXPHNnyrvvh9eZINB8Eg==", + "dev": true, "dependencies": { - "ajv": { - "version": "6.12.5", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.5.tgz", - "integrity": "sha512-lRF8RORchjpKG50/WFf8xmg7sgCLFiYNNnqdKflk63whMQcWR5ngGjiSXkL9bjxy6B2npOK2HSMN49jEBMSkag==", - "dev": true, - "requires": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - } - }, - "ajv-keywords": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", - "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", - "dev": true - }, - "fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "dev": true - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - }, - "terser-webpack-plugin": { - "version": "1.4.5", - "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-1.4.5.tgz", - "integrity": "sha512-04Rfe496lN8EYruwi6oPQkG0vo8C+HT49X687FZnpPF0qMAIHONI6HEXYPKDOE8e5HjXTyKfqRd/agHtH0kOtw==", - "dev": true, - "requires": { - "cacache": "^12.0.2", - "find-cache-dir": "^2.1.0", - "is-wsl": "^1.1.0", - "schema-utils": "^1.0.0", - "serialize-javascript": "^4.0.0", - "source-map": "^0.6.1", - "terser": "^4.1.2", - "webpack-sources": "^1.4.0", - "worker-farm": "^1.7.0" - } - } + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" } }, - "webpack-cli": { - "version": "3.3.11", - "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-3.3.11.tgz", - "integrity": "sha512-dXlfuml7xvAFwYUPsrtQAA9e4DOe58gnzSxhgrO/ZM/gyXTBowrsYeubyN4mqGhYdpXMFNyQ6emjJS9M7OBd4g==", - "dev": true, - "requires": { - "chalk": "2.4.2", - "cross-spawn": "6.0.5", - "enhanced-resolve": "4.1.0", - "findup-sync": "3.0.0", - "global-modules": "2.0.0", - "import-local": "2.0.0", - "interpret": "1.2.0", - "loader-utils": "1.2.3", - "supports-color": "6.1.0", - "v8-compile-cache": "2.0.3", - "yargs": "13.2.4" - }, - "dependencies": { - "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", - "dev": true - }, - "cliui": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", - "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==", - "dev": true, - "requires": { - "string-width": "^3.1.0", - "strip-ansi": "^5.2.0", - "wrap-ansi": "^5.1.0" - } - }, - "enhanced-resolve": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-4.1.0.tgz", - "integrity": "sha512-F/7vkyTtyc/llOIn8oWclcB25KdRaiPBpZYDgJHgh/UHtpgT2p2eldQgtQnLtUvfMKPKxbRaQM/hHkvLHt1Vng==", - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "memory-fs": "^0.4.0", - "tapable": "^1.0.0" - } - }, - "get-caller-file": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", - "dev": true - }, - "require-main-filename": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", - "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", - "dev": true - }, - "string-width": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", - "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", - "dev": true, - "requires": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" - } - }, - "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "dev": true, - "requires": { - "ansi-regex": "^4.1.0" - } - }, - "supports-color": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", - "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - }, - "wrap-ansi": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz", - "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.0", - "string-width": "^3.0.0", - "strip-ansi": "^5.0.0" - } - }, - "yargs": { - "version": "13.2.4", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.2.4.tgz", - "integrity": "sha512-HG/DWAJa1PAnHT9JAhNa8AbAv3FPaiLzioSjCcmuXXhP8MlpHO5vwls4g4j6n30Z74GVQj8Xa62dWVx1QCGklg==", - "dev": true, - "requires": { - "cliui": "^5.0.0", - "find-up": "^3.0.0", - "get-caller-file": "^2.0.1", - "os-locale": "^3.1.0", - "require-directory": "^2.1.1", - "require-main-filename": "^2.0.0", - "set-blocking": "^2.0.0", - "string-width": "^3.0.0", - "which-module": "^2.0.0", - "y18n": "^4.0.0", - "yargs-parser": "^13.1.0" - } - }, - "yargs-parser": { - "version": "13.1.2", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz", - "integrity": "sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==", - "dev": true, - "requires": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - } - } + "node_modules/webpack/node_modules/serialize-javascript": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.1.tgz", + "integrity": "sha512-owoXEFjWRllis8/M1Q+Cw5k8ZH40e3zhp/ovX+Xr/vi1qj6QesbyXXViFbpNvWvPNAD62SutwEXavefrLJWj7w==", + "dev": true, + "dependencies": { + "randombytes": "^2.1.0" } }, - "webpack-dev-middleware": { - "version": "3.7.2", - "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-3.7.2.tgz", - "integrity": "sha512-1xC42LxbYoqLNAhV6YzTYacicgMZQTqRd27Sim9wn5hJrX3I5nxYy1SxSd4+gjUFsz1dQFj+yEe6zEVmSkeJjw==", + "node_modules/webpack/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", "dev": true, - "requires": { - "memory-fs": "^0.4.1", - "mime": "^2.4.4", - "mkdirp": "^0.5.1", - "range-parser": "^1.2.1", - "webpack-log": "^2.0.0" - }, "dependencies": { - "mime": { - "version": "2.4.4", - "resolved": "https://registry.npmjs.org/mime/-/mime-2.4.4.tgz", - "integrity": "sha512-LRxmNwziLPT828z+4YkNzloCFC2YM4wrB99k+AV5ZbEyfGNWfG8SO1FUXLmLDBSo89NrJZ4DIWeLjy1CHGhMGA==", - "dev": true - }, - "range-parser": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", - "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", - "dev": true - } + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" } }, - "webpack-dev-server": { - "version": "3.11.0", - "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-3.11.0.tgz", - "integrity": "sha512-PUxZ+oSTxogFQgkTtFndEtJIPNmml7ExwufBZ9L2/Xyyd5PnOL5UreWe5ZT7IU25DSdykL9p1MLQzmLh2ljSeg==", + "node_modules/webpack/node_modules/terser-webpack-plugin": { + "version": "5.3.7", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.7.tgz", + "integrity": "sha512-AfKwIktyP7Cu50xNjXF/6Qb5lBNzYaWpU6YfoX3uZicTx0zTy0stDDCsvjDapKsSDvOeWo5MEq4TmdBy2cNoHw==", "dev": true, - "requires": { - "ansi-html": "0.0.7", - "bonjour": "^3.5.0", - "chokidar": "^2.1.8", - "compression": "^1.7.4", - "connect-history-api-fallback": "^1.6.0", - "debug": "^4.1.1", - "del": "^4.1.1", - "express": "^4.17.1", - "html-entities": "^1.3.1", - "http-proxy-middleware": "0.19.1", - "import-local": "^2.0.0", - "internal-ip": "^4.3.0", - "ip": "^1.1.5", - "is-absolute-url": "^3.0.3", - "killable": "^1.0.1", - "loglevel": "^1.6.8", - "opn": "^5.5.0", - "p-retry": "^3.0.1", - "portfinder": "^1.0.26", - "schema-utils": "^1.0.0", - "selfsigned": "^1.10.7", - "semver": "^6.3.0", - "serve-index": "^1.9.1", - "sockjs": "0.3.20", - "sockjs-client": "1.4.0", - "spdy": "^4.0.2", - "strip-ansi": "^3.0.1", - "supports-color": "^6.1.0", - "url": "^0.11.0", - "webpack-dev-middleware": "^3.7.2", - "webpack-log": "^2.0.0", - "ws": "^6.2.1", - "yargs": "^13.3.2" - }, - "dependencies": { - "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "dev": true - }, - "cliui": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", - "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==", - "dev": true, - "requires": { - "string-width": "^3.1.0", - "strip-ansi": "^5.2.0", - "wrap-ansi": "^5.1.0" - }, - "dependencies": { - "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", - "dev": true - }, - "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "dev": true, - "requires": { - "ansi-regex": "^4.1.0" - } - } - } - }, - "get-caller-file": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", - "dev": true - }, - "require-main-filename": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", - "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", - "dev": true - }, - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - }, - "string-width": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", - "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", - "dev": true, - "requires": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" - }, - "dependencies": { - "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", - "dev": true - }, - "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "dev": true, - "requires": { - "ansi-regex": "^4.1.0" - } - } - } - }, - "strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "dev": true, - "requires": { - "ansi-regex": "^2.0.0" - } - }, - "supports-color": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", - "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - }, - "wrap-ansi": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz", - "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.0", - "string-width": "^3.0.0", - "strip-ansi": "^5.0.0" - }, - "dependencies": { - "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", - "dev": true - }, - "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "dev": true, - "requires": { - "ansi-regex": "^4.1.0" - } - } - } - }, - "ws": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ws/-/ws-6.2.1.tgz", - "integrity": "sha512-GIyAXC2cB7LjvpgMt9EKS2ldqr0MTrORaleiOno6TweZ6r3TKtoFQWay/2PceJ3RuBasOHzXNn5Lrw1X0bEjqA==", - "dev": true, - "requires": { - "async-limiter": "~1.0.0" - } + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.17", + "jest-worker": "^27.4.5", + "schema-utils": "^3.1.1", + "serialize-javascript": "^6.0.1", + "terser": "^5.16.5" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.1.0" + }, + "peerDependenciesMeta": { + "@swc/core": { + "optional": true }, - "yargs": { - "version": "13.3.2", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz", - "integrity": "sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw==", - "dev": true, - "requires": { - "cliui": "^5.0.0", - "find-up": "^3.0.0", - "get-caller-file": "^2.0.1", - "require-directory": "^2.1.1", - "require-main-filename": "^2.0.0", - "set-blocking": "^2.0.0", - "string-width": "^3.0.0", - "which-module": "^2.0.0", - "y18n": "^4.0.0", - "yargs-parser": "^13.1.2" - } + "esbuild": { + "optional": true }, - "yargs-parser": { - "version": "13.1.2", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz", - "integrity": "sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==", - "dev": true, - "requires": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - } + "uglify-js": { + "optional": true } } }, - "webpack-log": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/webpack-log/-/webpack-log-2.0.0.tgz", - "integrity": "sha512-cX8G2vR/85UYG59FgkoMamwHUIkSSlV3bBMRsbxVXVUk2j6NleCKjQ/WE9eYg9WY4w25O9w8wKP4rzNZFmUcUg==", + "node_modules/webpack/node_modules/webpack-sources": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz", + "integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==", "dev": true, - "requires": { - "ansi-colors": "^3.0.0", - "uuid": "^3.3.2" + "engines": { + "node": ">=10.13.0" } }, - "webpack-sources": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.4.3.tgz", - "integrity": "sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ==", + "node_modules/websocket-driver": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.4.tgz", + "integrity": "sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==", "dev": true, - "requires": { - "source-list-map": "^2.0.0", - "source-map": "~0.6.1" - }, "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - } - } - }, - "websocket-driver": { - "version": "0.6.5", - "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.6.5.tgz", - "integrity": "sha1-XLJVbOuF9Dc8bYI4qmkchFThOjY=", - "dev": true, - "requires": { + "http-parser-js": ">=0.5.1", + "safe-buffer": ">=5.1.0", "websocket-extensions": ">=0.1.1" + }, + "engines": { + "node": ">=0.8.0" } }, - "websocket-extensions": { + "node_modules/websocket-extensions": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.4.tgz", "integrity": "sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==", - "dev": true + "dev": true, + "engines": { + "node": ">=0.8.0" + } }, - "which": { + "node_modules/which": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", "dev": true, - "requires": { + "dependencies": { "isexe": "^2.0.0" + }, + "bin": { + "which": "bin/which" + } + }, + "node_modules/which-boxed-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", + "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", + "dev": true, + "dependencies": { + "is-bigint": "^1.0.1", + "is-boolean-object": "^1.1.0", + "is-number-object": "^1.0.4", + "is-string": "^1.0.5", + "is-symbol": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "which-module": { + "node_modules/which-module": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", - "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", + "integrity": "sha512-B+enWhmw6cjfVC7kS8Pj9pCrKSc5txArRyaYGe088shv/FGWH+0Rjx/xPgtsWfsUtS27FkP697E4DDhgrgoc0Q==", "dev": true }, - "worker-farm": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/worker-farm/-/worker-farm-1.7.0.tgz", - "integrity": "sha512-rvw3QTZc8lAxyVrqcSGVm5yP/IJ2UcB3U0graE3LCFoZ0Yn2x4EoVSqJKdB/T5M+FLcRPjz4TDacRf3OCfNUzw==", + "node_modules/which-typed-array": { + "version": "1.1.9", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.9.tgz", + "integrity": "sha512-w9c4xkx6mPidwp7180ckYWfMmvxpjlZuIudNtDf4N/tTAUB8VJbX25qZoAsrtGuYNnGw3pa0AXgbGKRB8/EceA==", "dev": true, - "requires": { - "errno": "~0.1.7" + "dependencies": { + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-tostringtag": "^1.0.0", + "is-typed-array": "^1.1.10" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "wrap-ansi": { + "node_modules/wildcard": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/wildcard/-/wildcard-2.0.0.tgz", + "integrity": "sha512-JcKqAHLPxcdb9KM49dufGXn2x3ssnfjbcaQdLlfZsL9rH9wgDQjUtDxbo8NE0F6SFvydeu1VhZe7hZuHsB2/pw==", + "dev": true + }, + "node_modules/wrap-ansi": { "version": "6.2.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", "dev": true, - "requires": { + "dependencies": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", "strip-ansi": "^6.0.0" }, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, "dependencies": { - "ansi-styles": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", - "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", - "dev": true, - "requires": { - "@types/color-name": "^1.1.1", - "color-convert": "^2.0.1" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - } + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", + "node_modules/wrap-ansi/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/wrap-ansi/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, - "ws": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/ws/-/ws-3.3.3.tgz", - "integrity": "sha512-nnWLa/NwZSt4KQJu51MYlCcSQ5g7INpOrOMt4XV8j4dqTXdmlUmSHQ8/oLC069ckre0fRsgfvsKwbTdtKLCDkA==", + "node_modules/wrap-ansi/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dev": true, - "requires": { - "async-limiter": "~1.0.0", - "safe-buffer": "~5.1.0", - "ultron": "~1.1.0" + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" } }, - "xmlhttprequest-ssl": { - "version": "1.5.5", - "resolved": "https://registry.npmjs.org/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.5.5.tgz", - "integrity": "sha1-wodrBhaKrcQOV9l+gRkayPQ5iz4=", + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", "dev": true }, - "xtend": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", - "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", - "dev": true + "node_modules/ws": { + "version": "7.4.6", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.6.tgz", + "integrity": "sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A==", + "dev": true, + "engines": { + "node": ">=8.3.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": "^5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } }, - "y18n": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz", - "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==", + "node_modules/xmlhttprequest-ssl": { + "version": "1.6.3", + "resolved": "https://registry.npmjs.org/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.6.3.tgz", + "integrity": "sha512-3XfeQE/wNkvrIktn2Kf0869fC0BN6UpydVasGIeSm2B1Llihf7/0UfZM+eCkOw3P7bP4+qPgqhm7ZoxuJtFU0Q==", + "dev": true, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/y18n": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", + "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", "dev": true }, - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "node_modules/yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", "dev": true }, - "yargs": { - "version": "15.3.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.3.1.tgz", - "integrity": "sha512-92O1HWEjw27sBfgmXiixJWT5hRBp2eobqXicLtPBIDBhYB+1HpwZlXmbW2luivBJHBzki+7VyCLRtAkScbTBQA==", + "node_modules/yargs": { + "version": "15.4.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", + "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", "dev": true, - "requires": { + "dependencies": { "cliui": "^6.0.0", "decamelize": "^1.2.0", "find-up": "^4.1.0", @@ -9841,69 +8621,42 @@ "string-width": "^4.2.0", "which-module": "^2.0.0", "y18n": "^4.0.0", - "yargs-parser": "^18.1.1" - }, - "dependencies": { - "find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, - "requires": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - } - }, - "locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dev": true, - "requires": { - "p-locate": "^4.1.0" - } - }, - "p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dev": true, - "requires": { - "p-try": "^2.0.0" - } - }, - "p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dev": true, - "requires": { - "p-limit": "^2.2.0" - } - }, - "path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "dev": true - } + "yargs-parser": "^18.1.2" + }, + "engines": { + "node": ">=8" } }, - "yargs-parser": { + "node_modules/yargs-parser": { "version": "18.1.3", "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", "dev": true, - "requires": { + "dependencies": { "camelcase": "^5.0.0", "decamelize": "^1.2.0" + }, + "engines": { + "node": ">=6" } }, - "yeast": { + "node_modules/yeast": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/yeast/-/yeast-0.1.2.tgz", - "integrity": "sha1-AI4G2AlDIMNy28L47XagymyKxBk=", + "integrity": "sha512-8HFIh676uyGYP6wP13R/j6OJ/1HwJ46snpvzE7aHAN3Ryqh2yX6Xox2B4CUmTwwOIzlG3Bs7ocsP5dZH/R1Qbg==", "dev": true + }, + "node_modules/yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } } } } diff --git a/package.json b/package.json index f3d2150..9775377 100644 --- a/package.json +++ b/package.json @@ -43,7 +43,7 @@ "@babel/core": "^7.3.3", "@babel/preset-env": "^7.3.1", "babel-loader": "^8.1.0", - "clean-webpack-plugin": "^0.1.17", + "clean-webpack-plugin": "^4.0.0", "copy-webpack-plugin": "^6.1.1", "jasmine-core": "^2.8.0", "jshint": "^2.10.1", @@ -52,12 +52,12 @@ "karma-firefox-launcher": "^1.1.0", "karma-jasmine": "^2.0.1", "karma-sourcemap-loader": "^0.3.7", - "karma-webpack": "^4.0.2", + "karma-webpack": "^5.0.0", "npm-run-all": "^4.1.2", "terser-webpack-plugin": "^4.2.2", - "webpack": "^4.42.0", - "webpack-cli": "^3.3.1", - "webpack-dev-server": "^3.11.0" + "webpack": "^5.79.0", + "webpack-cli": "^5.0.1", + "webpack-dev-server": "^4.13.3" }, "keywords": [ "angular", @@ -76,4 +76,4 @@ "scroller", "scrolling" ] -} +} \ No newline at end of file From c3d15df1eabfcf3b12bb970126e476b99cec0b1d Mon Sep 17 00:00:00 2001 From: Denis Hilt Date: Wed, 19 Apr 2023 01:11:05 +0200 Subject: [PATCH 2/9] Update webpack config --- webpack.config.js | 35 ++++++++++++++--------------------- 1 file changed, 14 insertions(+), 21 deletions(-) diff --git a/webpack.config.js b/webpack.config.js index a3dc1e8..277f1f5 100644 --- a/webpack.config.js +++ b/webpack.config.js @@ -3,7 +3,7 @@ const path = require('path'); const glob = require('glob'); const webpack = require('webpack'); -const CleanWebpackPlugin = require('clean-webpack-plugin'); +const { CleanWebpackPlugin } = require('clean-webpack-plugin'); const CopyWebpackPlugin = require('copy-webpack-plugin'); const TerserPlugin = require('terser-webpack-plugin'); @@ -43,31 +43,24 @@ if (ENV === 'development') { optimization: {}, devServer: !isTest ? { - historyApiFallback: { - rewrites: [ - { from: /\/*\/*\.html$/, to: (context) => '/demo' + context.parsedUrl.pathname }, - { from: /\/*\/*\.css$/, to: (context) => '/demo' + context.parsedUrl.pathname }, - { from: /\/*\/*\.js$/, to: (context) => '/demo' + context.parsedUrl.pathname }, - { from: /\/ui-scroll-demo\.gif$/, to: '/demo/ui-scroll-demo.gif' }, - { from: /^\/$/, to: '/demo/index.html' } - ] - }, proxy: { '/dist': { target: 'http://' + devServerHost + ':' + devServerPort, pathRewrite: { '^/dist': '' } } }, - inline: true, - quiet: false, - stats: { - modules: false, - errors: true, - warnings: true - }, + port: devServerPort, host: devServerHost, - publicPath: '/' + static: "demo", + devMiddleware: { + stats: { + modules: false, + errors: true, + warnings: true + }, + publicPath: '/' + }, } : {}, watch: true @@ -82,7 +75,7 @@ if (ENV === 'production') { }, output: { - path: path.join(__dirname, 'dist'), + path: path.resolve(__dirname, 'dist'), filename: '[name].js' }, @@ -110,8 +103,8 @@ if (ENV === 'production') { }, plugins: [ - new CleanWebpackPlugin('dist', { - root: __dirname + new CleanWebpackPlugin({ + cleanOnceBeforeBuildPatterns: [path.join(__dirname, 'dist/**/*')] }), new CopyWebpackPlugin({ patterns: [ From d19d4ecea90469867460c1537c573d6ebed3daa7 Mon Sep 17 00:00:00 2001 From: Denis Hilt Date: Wed, 19 Apr 2023 01:14:23 +0200 Subject: [PATCH 3/9] New webpack build --- dist/ui-scroll-grid.js | 165 +-------- dist/ui-scroll-grid.js.map | 2 +- dist/ui-scroll-grid.min.js | 2 +- dist/ui-scroll-grid.min.js.map | 2 +- dist/ui-scroll.js | 624 +++++++++------------------------ dist/ui-scroll.js.map | 2 +- dist/ui-scroll.min.js | 2 +- dist/ui-scroll.min.js.map | 2 +- src/ui-scroll.js | 12 +- 9 files changed, 186 insertions(+), 627 deletions(-) diff --git a/dist/ui-scroll-grid.js b/dist/ui-scroll-grid.js index 2fff64c..d1b9916 100644 --- a/dist/ui-scroll-grid.js +++ b/dist/ui-scroll-grid.js @@ -1,131 +1,36 @@ /*! * angular-ui-scroll * https://github.com/angular-ui/ui-scroll - * Version: 1.8.2 -- 2020-10-02T15:06:03.904Z + * Version: 1.8.2 -- 2023-04-18T22:14:45.556Z * License: MIT */ -/******/ (function(modules) { // webpackBootstrap -/******/ // The module cache -/******/ var installedModules = {}; -/******/ -/******/ // The require function -/******/ function __webpack_require__(moduleId) { -/******/ -/******/ // Check if module is in cache -/******/ if(installedModules[moduleId]) { -/******/ return installedModules[moduleId].exports; -/******/ } -/******/ // Create a new module (and put it into the cache) -/******/ var module = installedModules[moduleId] = { -/******/ i: moduleId, -/******/ l: false, -/******/ exports: {} -/******/ }; -/******/ -/******/ // Execute the module function -/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); -/******/ -/******/ // Flag the module as loaded -/******/ module.l = true; -/******/ -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } -/******/ -/******/ -/******/ // expose the modules object (__webpack_modules__) -/******/ __webpack_require__.m = modules; -/******/ -/******/ // expose the module cache -/******/ __webpack_require__.c = installedModules; -/******/ -/******/ // define getter function for harmony exports -/******/ __webpack_require__.d = function(exports, name, getter) { -/******/ if(!__webpack_require__.o(exports, name)) { -/******/ Object.defineProperty(exports, name, { enumerable: true, get: getter }); -/******/ } -/******/ }; -/******/ -/******/ // define __esModule on exports -/******/ __webpack_require__.r = function(exports) { -/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { -/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); -/******/ } -/******/ Object.defineProperty(exports, '__esModule', { value: true }); -/******/ }; -/******/ -/******/ // create a fake namespace object -/******/ // mode & 1: value is a module id, require it -/******/ // mode & 2: merge all properties of value into the ns -/******/ // mode & 4: return value when already ns object -/******/ // mode & 8|1: behave like require -/******/ __webpack_require__.t = function(value, mode) { -/******/ if(mode & 1) value = __webpack_require__(value); -/******/ if(mode & 8) return value; -/******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value; -/******/ var ns = Object.create(null); -/******/ __webpack_require__.r(ns); -/******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value }); -/******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key)); -/******/ return ns; -/******/ }; -/******/ -/******/ // getDefaultExport function for compatibility with non-harmony modules -/******/ __webpack_require__.n = function(module) { -/******/ var getter = module && module.__esModule ? -/******/ function getDefault() { return module['default']; } : -/******/ function getModuleExports() { return module; }; -/******/ __webpack_require__.d(getter, 'a', getter); -/******/ return getter; -/******/ }; -/******/ -/******/ // Object.prototype.hasOwnProperty.call -/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; -/******/ -/******/ // __webpack_public_path__ -/******/ __webpack_require__.p = ""; -/******/ -/******/ -/******/ // Load entry module and return exports -/******/ return __webpack_require__(__webpack_require__.s = 0); -/******/ }) -/************************************************************************/ -/******/ ([ -/* 0 */ -/***/ (function(module, exports) { - +/******/ (() => { // webpackBootstrap +var __webpack_exports__ = {}; angular.module('ui.scroll.grid', []).directive('uiScrollTh', ['$log', '$timeout', function (console, $timeout) { function GridAdapter(controller) { this.getLayout = function () { return controller.getLayout(); }; - this.applyLayout = function (layout) { return controller.applyLayout(layout); }; - this.columnFromPoint = function (x, y) { return controller.columnFromPoint(x, y); }; - Object.defineProperty(this, 'columns', { get: function get() { return controller.getColumns(); } }); } - function ColumnAdapter(controller, column) { - this.css = function () - /* attr, value */ - { + this.css = function /* attr, value */ + () { var attr = arguments[0]; var value = arguments[1]; - if (arguments.length == 1) { return column.header.css(attr); } - if (arguments.length == 2) { column.header.css(attr, value); controller.forEachRow(function (row) { @@ -134,37 +39,33 @@ angular.module('ui.scroll.grid', []).directive('uiScrollTh', ['$log', '$timeout' column.css[attr] = value; } }; - this.moveBefore = function (index) { return controller.moveBefore(column, index); }; - this.exchangeWith = function (index) { return controller.exchangeWith(column, index); }; - Object.defineProperty(this, 'columnId', { get: function get() { return column.id; } }); } - function ColumnController(controller, columns, header) { this.header = header; this.css = {}; this.mapTo = columns.length; - this.id = columns.length; // controller api methods + this.id = columns.length; + + // controller api methods this.applyLayout = function (layout) { this.css = angular.extend({}, layout.css); this.mapTo = layout.mapTo; applyCss(this.header, this.css); }; - this.moveBefore = function (target) { var _this = this; - if (target) { moveBefore(header, target.header); controller.forEachRow(function (row) { @@ -177,25 +78,22 @@ angular.module('ui.scroll.grid', []).directive('uiScrollTh', ['$log', '$timeout' }); } }; - this.columnFromPoint = function (x, y) { var _this2 = this; - if (insidePoint(header, x, y)) { return this; } - var result = null; controller.forEachRow(function (row) { return result = insidePoint(row[_this2.id], x, y) ? _this2 : result; }); return result; }; - this.applyCss = function (target) { applyCss(target, this.css); - }; // function definitions + }; + // function definitions function insidePoint(element, x, y) { var offset = element.offset(); @@ -203,21 +101,17 @@ angular.module('ui.scroll.grid', []).directive('uiScrollTh', ['$log', '$timeout' if (y < offset.top || offset.top + element.outerHeight(true) < y) return false; return true; } - function moveBefore(element, target) { element.detach(); target.before(element); } - function moveLast(element) { var parent = element.parent(); element.detach(); parent.append(element); } - function applyCss(target, css) { target.removeAttr('style'); - for (var attr in css) { if (css.hasOwnProperty(attr)) { target.css(attr, css[attr]); @@ -225,57 +119,44 @@ angular.module('ui.scroll.grid', []).directive('uiScrollTh', ['$log', '$timeout' } } } - function GridController(scrollViewport) { var _this3 = this; - var columns = []; var rowMap = new Map(); $timeout(function () { scrollViewport.adapter.publicContext.gridAdapter = new GridAdapter(_this3); - scrollViewport.adapter.transform = function (scope, item) { return transform(rowMap.get(scope), item); }; }); - this.registerColumn = function (header) { columns.push(new ColumnController(this, columns, header)); }; - this.registerCell = function (scope, cell) { var row = rowMap.get(scope); - if (!row) { row = []; rowMap.set(scope, row); } - if (row.length >= columns.length) { return false; } - row.push(cell); return true; }; - this.unregisterCell = function (scope, cell) { var row = rowMap.get(scope); var i = row.indexOf(cell); row.splice(i, 1); - if (!row.length) { rowMap.delete(scope); } }; - this.forEachRow = function (callback) { rowMap.forEach(callback); }; - this.getColumns = function () { var _this4 = this; - var result = []; columns.slice().sort(function (a, b) { return a.mapTo - b.mapTo; @@ -284,7 +165,6 @@ angular.module('ui.scroll.grid', []).directive('uiScrollTh', ['$log', '$timeout' }); return result; }; - this.getLayout = function () { var result = []; columns.forEach(function (column, index) { @@ -296,12 +176,10 @@ angular.module('ui.scroll.grid', []).directive('uiScrollTh', ['$log', '$timeout' }); return result; }; - this.applyLayout = function (layouts) { if (!layouts || layouts.length != columns.length) { throw new Error('Failed to apply layout - number of layouts should match number of columns'); } - layouts.forEach(function (layout, index) { return columns[index].applyLayout(layout); }); @@ -312,20 +190,17 @@ angular.module('ui.scroll.grid', []).directive('uiScrollTh', ['$log', '$timeout' return transform(row); }); }; - this.moveBefore = function (selected, target) { var index = target; - if (target % 1 !== 0) { index = target ? columns[target.columnId].mapTo : columns.length; } - if (index < 0 || index > columns.length) { return; // throw an error? } var mapTo = selected.mapTo, - next = null; + next = null; index -= mapTo < index ? 1 : 0; columns.forEach(function (c) { c.mapTo -= c.mapTo > mapTo ? 1 : 0; @@ -335,25 +210,23 @@ angular.module('ui.scroll.grid', []).directive('uiScrollTh', ['$log', '$timeout' selected.mapTo = index; selected.moveBefore(next); }; - this.exchangeWith = function (selected, index) { if (index < 0 || index >= columns.length) { return; } - columns.find(function (c) { return c.mapTo === index; }).mapTo = selected.mapTo; selected.mapTo = index; }; - this.columnFromPoint = function (x, y) { var column = columns.find(function (col) { return col.columnFromPoint(x, y); }); return column ? new ColumnAdapter(this, column) : undefined; - }; // function definitions + }; + // function definitions function transform(row) { var parent = row[0].parent(); @@ -368,7 +241,6 @@ angular.module('ui.scroll.grid', []).directive('uiScrollTh', ['$log', '$timeout' }); } } - return { require: ['^^uiScrollViewport'], restrict: 'A', @@ -385,35 +257,28 @@ angular.module('ui.scroll.grid', []).directive('uiScrollTh', ['$log', '$timeout' if (!controllers[0]) { return; } - var scope = $scope; var tdInitializer = $scope.uiScrollTdInitializer; - if (!tdInitializer) { tdInitializer = $scope.uiScrollTdInitializer = { linking: true }; } - if (!tdInitializer.linking) { scope = tdInitializer.scope; } - var gridController = controllers[0].gridController; - if (gridController.registerCell(scope, element)) { $scope.$on('$destroy', function () { return gridController.unregisterCell(scope, element); }); } - if (!tdInitializer.linking) { tdInitializer.onLink(); } } }; }); - -/***/ }) -/******/ ]); +/******/ })() +; //# sourceMappingURL=ui-scroll-grid.js.map \ No newline at end of file diff --git a/dist/ui-scroll-grid.js.map b/dist/ui-scroll-grid.js.map index 3b3ee49..358e48e 100644 --- a/dist/ui-scroll-grid.js.map +++ b/dist/ui-scroll-grid.js.map @@ -1 +1 @@ -{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./src/ui-scroll-grid.js"],"names":["angular","module","directive","console","$timeout","GridAdapter","controller","getLayout","applyLayout","layout","columnFromPoint","x","y","Object","defineProperty","get","getColumns","ColumnAdapter","column","css","attr","arguments","value","length","header","forEachRow","row","id","moveBefore","index","exchangeWith","ColumnController","columns","mapTo","extend","applyCss","target","moveLast","insidePoint","result","element","offset","left","outerWidth","top","outerHeight","detach","before","parent","append","removeAttr","hasOwnProperty","GridController","scrollViewport","rowMap","Map","adapter","publicContext","gridAdapter","transform","scope","item","registerColumn","push","registerCell","cell","set","unregisterCell","i","indexOf","splice","delete","callback","forEach","slice","sort","a","b","layouts","Error","map","selected","columnId","next","c","find","col","undefined","visible","require","restrict","link","$scope","$attr","controllers","gridController","tdInitializer","uiScrollTdInitializer","linking","$on","onLink"],"mappings":"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","file":"ui-scroll-grid.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 0);\n","angular.module('ui.scroll.grid', [])\r\n .directive('uiScrollTh', ['$log', '$timeout', function(console, $timeout) {\r\n\r\n function GridAdapter(controller) {\r\n\r\n this.getLayout = () => controller.getLayout();\r\n\r\n this.applyLayout = (layout) => controller.applyLayout(layout);\r\n\r\n this.columnFromPoint = (x, y) => controller.columnFromPoint(x, y);\r\n\r\n Object.defineProperty(this, 'columns', { get: () => controller.getColumns() });\r\n }\r\n\r\n function ColumnAdapter(controller, column) {\r\n\r\n this.css = function( /* attr, value */ ) {\r\n var attr = arguments[0];\r\n var value = arguments[1];\r\n if (arguments.length == 1) {\r\n return column.header.css(attr);\r\n }\r\n if (arguments.length == 2) {\r\n column.header.css(attr, value);\r\n controller.forEachRow((row) => row[column.id].css(attr, value));\r\n column.css[attr] = value;\r\n }\r\n };\r\n\r\n this.moveBefore = (index) => controller.moveBefore(column, index);\r\n\r\n this.exchangeWith = (index) => controller.exchangeWith(column, index);\r\n\r\n Object.defineProperty(this, 'columnId', { get: () => column.id });\r\n }\r\n\r\n function ColumnController(controller, columns, header) {\r\n\r\n this.header = header;\r\n this.css = {};\r\n this.mapTo = columns.length;\r\n this.id = columns.length;\r\n\r\n // controller api methods\r\n\r\n this.applyLayout = function(layout) {\r\n this.css = angular.extend({}, layout.css);\r\n this.mapTo = layout.mapTo;\r\n applyCss(this.header, this.css);\r\n };\r\n\r\n this.moveBefore = function(target) {\r\n if (target) {\r\n moveBefore(header, target.header);\r\n controller.forEachRow((row) => moveBefore(row[this.id], row[target.id]));\r\n } else {\r\n moveLast(header);\r\n controller.forEachRow((row) => moveLast(row[this.id]));\r\n }\r\n };\r\n\r\n this.columnFromPoint = function(x, y) {\r\n if (insidePoint(header, x, y)) {\r\n return this;\r\n }\r\n let result = null;\r\n controller.forEachRow((row) =>\r\n result = insidePoint(row[this.id], x, y) ? this : result\r\n );\r\n return result;\r\n };\r\n\r\n this.applyCss = function(target) {\r\n applyCss(target, this.css);\r\n };\r\n\r\n // function definitions\r\n\r\n function insidePoint(element, x, y) {\r\n let offset = element.offset();\r\n if (x < offset.left || offset.left + element.outerWidth(true) < x)\r\n return false;\r\n if (y < offset.top || offset.top + element.outerHeight(true) < y)\r\n return false;\r\n return true;\r\n }\r\n\r\n function moveBefore(element, target) {\r\n element.detach();\r\n target.before(element);\r\n }\r\n\r\n function moveLast(element) {\r\n let parent = element.parent();\r\n element.detach();\r\n parent.append(element);\r\n }\r\n\r\n function applyCss(target, css) {\r\n target.removeAttr('style');\r\n for (let attr in css) {\r\n if (css.hasOwnProperty(attr)) {\r\n target.css(attr, css[attr]);\r\n }\r\n }\r\n }\r\n\r\n }\r\n\r\n function GridController(scrollViewport) {\r\n let columns = [];\r\n let rowMap = new Map();\r\n\r\n $timeout(() => {\r\n scrollViewport.adapter.publicContext.gridAdapter = new GridAdapter(this);\r\n scrollViewport.adapter.transform = (scope, item) => transform(rowMap.get(scope), item);\r\n });\r\n\r\n this.registerColumn = function(header) {\r\n columns.push(new ColumnController(this, columns, header));\r\n };\r\n\r\n this.registerCell = function(scope, cell) {\r\n let row = rowMap.get(scope);\r\n if (!row) {\r\n row = [];\r\n rowMap.set(scope, row);\r\n }\r\n if (row.length >= columns.length) {\r\n return false;\r\n }\r\n row.push(cell);\r\n return true;\r\n };\r\n\r\n this.unregisterCell = function(scope, cell) {\r\n let row = rowMap.get(scope);\r\n let i = row.indexOf(cell);\r\n row.splice(i, 1);\r\n if (!row.length) {\r\n rowMap.delete(scope);\r\n }\r\n };\r\n\r\n this.forEachRow = function(callback) {\r\n rowMap.forEach(callback);\r\n };\r\n\r\n this.getColumns = function() {\r\n let result = [];\r\n columns.slice()\r\n .sort((a, b) => a.mapTo - b.mapTo)\r\n .forEach((column) => result.push(new ColumnAdapter(this, column)));\r\n return result;\r\n };\r\n\r\n this.getLayout = function() {\r\n let result = [];\r\n columns.forEach((column, index) => result.push({\r\n index: index,\r\n css: angular.extend({}, column.css),\r\n mapTo: column.mapTo\r\n }));\r\n return result;\r\n };\r\n\r\n this.applyLayout = function(layouts) {\r\n if (!layouts || layouts.length != columns.length) {\r\n throw new Error('Failed to apply layout - number of layouts should match number of columns');\r\n }\r\n layouts.forEach((layout, index) => columns[index].applyLayout(layout));\r\n transform(columns.map((column) => column.header));\r\n rowMap.forEach((row) => transform(row));\r\n };\r\n\r\n this.moveBefore = function(selected, target) {\r\n let index = target;\r\n\r\n if (target % 1 !== 0) {\r\n index = target ? columns[target.columnId].mapTo : columns.length;\r\n }\r\n if (index < 0 || index > columns.length) {\r\n return; // throw an error?\r\n }\r\n\r\n let mapTo = selected.mapTo,\r\n next = null;\r\n index -= mapTo < index ? 1 : 0;\r\n\r\n columns.forEach(c => {\r\n c.mapTo -= c.mapTo > mapTo ? 1 : 0;\r\n c.mapTo += c.mapTo >= index ? 1 : 0;\r\n next = c.mapTo === index + 1 ? c : next;\r\n });\r\n\r\n selected.mapTo = index;\r\n selected.moveBefore(next);\r\n };\r\n\r\n this.exchangeWith = function(selected, index) {\r\n if (index < 0 || index >= columns.length) {\r\n return;\r\n }\r\n columns.find(c => c.mapTo === index).mapTo = selected.mapTo;\r\n selected.mapTo = index;\r\n };\r\n\r\n this.columnFromPoint = function(x, y) {\r\n let column = columns.find(col => col.columnFromPoint(x, y));\r\n return column ? new ColumnAdapter(this, column) : undefined;\r\n };\r\n\r\n // function definitions\r\n\r\n function transform(row) {\r\n let parent = row[0].parent();\r\n let visible = [];\r\n\r\n row.forEach((cell, index) => {\r\n columns[index].applyCss(cell);\r\n visible[columns[index].mapTo] = row[index];\r\n row[index].detach();\r\n });\r\n\r\n visible.forEach(cell => parent.append(cell));\r\n }\r\n\r\n }\r\n\r\n return {\r\n require: ['^^uiScrollViewport'],\r\n restrict: 'A',\r\n link: ($scope, element, $attr, controllers) => {\r\n controllers[0].gridController = controllers[0].gridController || new GridController(controllers[0]);\r\n controllers[0].gridController.registerColumn(element);\r\n }\r\n };\r\n }])\r\n\r\n.directive('uiScrollTd', function() {\r\n return {\r\n require: ['?^^uiScrollViewport'],\r\n restrict: 'A',\r\n link: ($scope, element, $attr, controllers) => {\r\n if (!controllers[0]) {\r\n return;\r\n }\r\n let scope = $scope;\r\n let tdInitializer = $scope.uiScrollTdInitializer;\r\n if (!tdInitializer) {\r\n tdInitializer = $scope.uiScrollTdInitializer = {\r\n linking: true\r\n };\r\n }\r\n if (!tdInitializer.linking) {\r\n scope = tdInitializer.scope;\r\n }\r\n let gridController = controllers[0].gridController;\r\n if (gridController.registerCell(scope, element)) {\r\n $scope.$on('$destroy', () => gridController.unregisterCell(scope, element));\r\n }\r\n if (!tdInitializer.linking) {\r\n tdInitializer.onLink();\r\n }\r\n }\r\n };\r\n});\r\n"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"ui-scroll-grid.js","mappings":"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","sources":["webpack://angular-ui-scroll/./src/ui-scroll-grid.js"],"sourcesContent":["angular.module('ui.scroll.grid', [])\r\n .directive('uiScrollTh', ['$log', '$timeout', function(console, $timeout) {\r\n\r\n function GridAdapter(controller) {\r\n\r\n this.getLayout = () => controller.getLayout();\r\n\r\n this.applyLayout = (layout) => controller.applyLayout(layout);\r\n\r\n this.columnFromPoint = (x, y) => controller.columnFromPoint(x, y);\r\n\r\n Object.defineProperty(this, 'columns', { get: () => controller.getColumns() });\r\n }\r\n\r\n function ColumnAdapter(controller, column) {\r\n\r\n this.css = function( /* attr, value */ ) {\r\n var attr = arguments[0];\r\n var value = arguments[1];\r\n if (arguments.length == 1) {\r\n return column.header.css(attr);\r\n }\r\n if (arguments.length == 2) {\r\n column.header.css(attr, value);\r\n controller.forEachRow((row) => row[column.id].css(attr, value));\r\n column.css[attr] = value;\r\n }\r\n };\r\n\r\n this.moveBefore = (index) => controller.moveBefore(column, index);\r\n\r\n this.exchangeWith = (index) => controller.exchangeWith(column, index);\r\n\r\n Object.defineProperty(this, 'columnId', { get: () => column.id });\r\n }\r\n\r\n function ColumnController(controller, columns, header) {\r\n\r\n this.header = header;\r\n this.css = {};\r\n this.mapTo = columns.length;\r\n this.id = columns.length;\r\n\r\n // controller api methods\r\n\r\n this.applyLayout = function(layout) {\r\n this.css = angular.extend({}, layout.css);\r\n this.mapTo = layout.mapTo;\r\n applyCss(this.header, this.css);\r\n };\r\n\r\n this.moveBefore = function(target) {\r\n if (target) {\r\n moveBefore(header, target.header);\r\n controller.forEachRow((row) => moveBefore(row[this.id], row[target.id]));\r\n } else {\r\n moveLast(header);\r\n controller.forEachRow((row) => moveLast(row[this.id]));\r\n }\r\n };\r\n\r\n this.columnFromPoint = function(x, y) {\r\n if (insidePoint(header, x, y)) {\r\n return this;\r\n }\r\n let result = null;\r\n controller.forEachRow((row) =>\r\n result = insidePoint(row[this.id], x, y) ? this : result\r\n );\r\n return result;\r\n };\r\n\r\n this.applyCss = function(target) {\r\n applyCss(target, this.css);\r\n };\r\n\r\n // function definitions\r\n\r\n function insidePoint(element, x, y) {\r\n let offset = element.offset();\r\n if (x < offset.left || offset.left + element.outerWidth(true) < x)\r\n return false;\r\n if (y < offset.top || offset.top + element.outerHeight(true) < y)\r\n return false;\r\n return true;\r\n }\r\n\r\n function moveBefore(element, target) {\r\n element.detach();\r\n target.before(element);\r\n }\r\n\r\n function moveLast(element) {\r\n let parent = element.parent();\r\n element.detach();\r\n parent.append(element);\r\n }\r\n\r\n function applyCss(target, css) {\r\n target.removeAttr('style');\r\n for (let attr in css) {\r\n if (css.hasOwnProperty(attr)) {\r\n target.css(attr, css[attr]);\r\n }\r\n }\r\n }\r\n\r\n }\r\n\r\n function GridController(scrollViewport) {\r\n let columns = [];\r\n let rowMap = new Map();\r\n\r\n $timeout(() => {\r\n scrollViewport.adapter.publicContext.gridAdapter = new GridAdapter(this);\r\n scrollViewport.adapter.transform = (scope, item) => transform(rowMap.get(scope), item);\r\n });\r\n\r\n this.registerColumn = function(header) {\r\n columns.push(new ColumnController(this, columns, header));\r\n };\r\n\r\n this.registerCell = function(scope, cell) {\r\n let row = rowMap.get(scope);\r\n if (!row) {\r\n row = [];\r\n rowMap.set(scope, row);\r\n }\r\n if (row.length >= columns.length) {\r\n return false;\r\n }\r\n row.push(cell);\r\n return true;\r\n };\r\n\r\n this.unregisterCell = function(scope, cell) {\r\n let row = rowMap.get(scope);\r\n let i = row.indexOf(cell);\r\n row.splice(i, 1);\r\n if (!row.length) {\r\n rowMap.delete(scope);\r\n }\r\n };\r\n\r\n this.forEachRow = function(callback) {\r\n rowMap.forEach(callback);\r\n };\r\n\r\n this.getColumns = function() {\r\n let result = [];\r\n columns.slice()\r\n .sort((a, b) => a.mapTo - b.mapTo)\r\n .forEach((column) => result.push(new ColumnAdapter(this, column)));\r\n return result;\r\n };\r\n\r\n this.getLayout = function() {\r\n let result = [];\r\n columns.forEach((column, index) => result.push({\r\n index: index,\r\n css: angular.extend({}, column.css),\r\n mapTo: column.mapTo\r\n }));\r\n return result;\r\n };\r\n\r\n this.applyLayout = function(layouts) {\r\n if (!layouts || layouts.length != columns.length) {\r\n throw new Error('Failed to apply layout - number of layouts should match number of columns');\r\n }\r\n layouts.forEach((layout, index) => columns[index].applyLayout(layout));\r\n transform(columns.map((column) => column.header));\r\n rowMap.forEach((row) => transform(row));\r\n };\r\n\r\n this.moveBefore = function(selected, target) {\r\n let index = target;\r\n\r\n if (target % 1 !== 0) {\r\n index = target ? columns[target.columnId].mapTo : columns.length;\r\n }\r\n if (index < 0 || index > columns.length) {\r\n return; // throw an error?\r\n }\r\n\r\n let mapTo = selected.mapTo,\r\n next = null;\r\n index -= mapTo < index ? 1 : 0;\r\n\r\n columns.forEach(c => {\r\n c.mapTo -= c.mapTo > mapTo ? 1 : 0;\r\n c.mapTo += c.mapTo >= index ? 1 : 0;\r\n next = c.mapTo === index + 1 ? c : next;\r\n });\r\n\r\n selected.mapTo = index;\r\n selected.moveBefore(next);\r\n };\r\n\r\n this.exchangeWith = function(selected, index) {\r\n if (index < 0 || index >= columns.length) {\r\n return;\r\n }\r\n columns.find(c => c.mapTo === index).mapTo = selected.mapTo;\r\n selected.mapTo = index;\r\n };\r\n\r\n this.columnFromPoint = function(x, y) {\r\n let column = columns.find(col => col.columnFromPoint(x, y));\r\n return column ? new ColumnAdapter(this, column) : undefined;\r\n };\r\n\r\n // function definitions\r\n\r\n function transform(row) {\r\n let parent = row[0].parent();\r\n let visible = [];\r\n\r\n row.forEach((cell, index) => {\r\n columns[index].applyCss(cell);\r\n visible[columns[index].mapTo] = row[index];\r\n row[index].detach();\r\n });\r\n\r\n visible.forEach(cell => parent.append(cell));\r\n }\r\n\r\n }\r\n\r\n return {\r\n require: ['^^uiScrollViewport'],\r\n restrict: 'A',\r\n link: ($scope, element, $attr, controllers) => {\r\n controllers[0].gridController = controllers[0].gridController || new GridController(controllers[0]);\r\n controllers[0].gridController.registerColumn(element);\r\n }\r\n };\r\n }])\r\n\r\n.directive('uiScrollTd', function() {\r\n return {\r\n require: ['?^^uiScrollViewport'],\r\n restrict: 'A',\r\n link: ($scope, element, $attr, controllers) => {\r\n if (!controllers[0]) {\r\n return;\r\n }\r\n let scope = $scope;\r\n let tdInitializer = $scope.uiScrollTdInitializer;\r\n if (!tdInitializer) {\r\n tdInitializer = $scope.uiScrollTdInitializer = {\r\n linking: true\r\n };\r\n }\r\n if (!tdInitializer.linking) {\r\n scope = tdInitializer.scope;\r\n }\r\n let gridController = controllers[0].gridController;\r\n if (gridController.registerCell(scope, element)) {\r\n $scope.$on('$destroy', () => gridController.unregisterCell(scope, element));\r\n }\r\n if (!tdInitializer.linking) {\r\n tdInitializer.onLink();\r\n }\r\n }\r\n };\r\n});\r\n"],"names":["angular","module","directive","console","$timeout","GridAdapter","controller","getLayout","applyLayout","layout","columnFromPoint","x","y","Object","defineProperty","get","getColumns","ColumnAdapter","column","css","attr","arguments","value","length","header","forEachRow","row","id","moveBefore","index","exchangeWith","ColumnController","columns","mapTo","extend","applyCss","target","_this","moveLast","_this2","insidePoint","result","element","offset","left","outerWidth","top","outerHeight","detach","before","parent","append","removeAttr","hasOwnProperty","GridController","scrollViewport","_this3","rowMap","Map","adapter","publicContext","gridAdapter","transform","scope","item","registerColumn","push","registerCell","cell","set","unregisterCell","i","indexOf","splice","delete","callback","forEach","_this4","slice","sort","a","b","layouts","Error","map","selected","columnId","next","c","find","col","undefined","visible","require","restrict","link","$scope","$attr","controllers","gridController","tdInitializer","uiScrollTdInitializer","linking","$on","onLink"],"sourceRoot":""} \ No newline at end of file diff --git a/dist/ui-scroll-grid.min.js b/dist/ui-scroll-grid.min.js index da7b9e3..32e4bf1 100644 --- a/dist/ui-scroll-grid.min.js +++ b/dist/ui-scroll-grid.min.js @@ -1,2 +1,2 @@ -!function(t){var n={};function e(r){if(n[r])return n[r].exports;var o=n[r]={i:r,l:!1,exports:{}};return t[r].call(o.exports,o,o.exports,e),o.l=!0,o.exports}e.m=t,e.c=n,e.d=function(t,n,r){e.o(t,n)||Object.defineProperty(t,n,{enumerable:!0,get:r})},e.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},e.t=function(t,n){if(1&n&&(t=e(t)),8&n)return t;if(4&n&&"object"==typeof t&&t&&t.__esModule)return t;var r=Object.create(null);if(e.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:t}),2&n&&"string"!=typeof t)for(var o in t)e.d(r,o,function(n){return t[n]}.bind(null,o));return r},e.n=function(t){var n=t&&t.__esModule?function(){return t.default}:function(){return t};return e.d(n,"a",n),n},e.o=function(t,n){return Object.prototype.hasOwnProperty.call(t,n)},e.p="",e(e.s=0)}([function(t,n){angular.module("ui.scroll.grid",[]).directive("uiScrollTh",["$log","$timeout",function(t,n){function e(t){this.getLayout=function(){return t.getLayout()},this.applyLayout=function(n){return t.applyLayout(n)},this.columnFromPoint=function(n,e){return t.columnFromPoint(n,e)},Object.defineProperty(this,"columns",{get:function(){return t.getColumns()}})}function r(t,n){this.css=function(){var e=arguments[0],r=arguments[1];if(1==arguments.length)return n.header.css(e);2==arguments.length&&(n.header.css(e,r),t.forEachRow((function(t){return t[n.id].css(e,r)})),n.css[e]=r)},this.moveBefore=function(e){return t.moveBefore(n,e)},this.exchangeWith=function(e){return t.exchangeWith(n,e)},Object.defineProperty(this,"columnId",{get:function(){return n.id}})}function o(t,n,e){function r(t,n,e){var r=t.offset();return!(n=u.length)&&(e.push(n),!0)},this.unregisterCell=function(t,n){var e=c.get(t),r=e.indexOf(n);e.splice(r,1),e.length||c.delete(t)},this.forEachRow=function(t){c.forEach(t)},this.getColumns=function(){var t=this,n=[];return u.slice().sort((function(t,n){return t.mapTo-n.mapTo})).forEach((function(e){return n.push(new r(t,e))})),n},this.getLayout=function(){var t=[];return u.forEach((function(n,e){return t.push({index:e,css:angular.extend({},n.css),mapTo:n.mapTo})})),t},this.applyLayout=function(t){if(!t||t.length!=u.length)throw new Error("Failed to apply layout - number of layouts should match number of columns");t.forEach((function(t,n){return u[n].applyLayout(t)})),a(u.map((function(t){return t.header}))),c.forEach((function(t){return a(t)}))},this.moveBefore=function(t,n){var e=n;if(n%1!=0&&(e=n?u[n.columnId].mapTo:u.length),!(e<0||e>u.length)){var r=t.mapTo,o=null;e-=rr?1:0,t.mapTo+=t.mapTo>=e?1:0,o=t.mapTo===e+1?t:o})),t.mapTo=e,t.moveBefore(o)}},this.exchangeWith=function(t,n){n<0||n>=u.length||(u.find((function(t){return t.mapTo===n})).mapTo=t.mapTo,t.mapTo=n)},this.columnFromPoint=function(t,n){var e=u.find((function(e){return e.columnFromPoint(t,n)}));return e?new r(this,e):void 0}}return{require:["^^uiScrollViewport"],restrict:"A",link:function(t,n,e,r){r[0].gridController=r[0].gridController||new i(r[0]),r[0].gridController.registerColumn(n)}}}]).directive("uiScrollTd",(function(){return{require:["?^^uiScrollViewport"],restrict:"A",link:function(t,n,e,r){if(r[0]){var o=t,i=t.uiScrollTdInitializer;i||(i=t.uiScrollTdInitializer={linking:!0}),i.linking||(o=i.scope);var u=r[0].gridController;u.registerCell(o,n)&&t.$on("$destroy",(function(){return u.unregisterCell(o,n)})),i.linking||i.onLink()}}}}))}]); +angular.module("ui.scroll.grid",[]).directive("uiScrollTh",["$log","$timeout",function(t,n){function r(t){this.getLayout=function(){return t.getLayout()},this.applyLayout=function(n){return t.applyLayout(n)},this.columnFromPoint=function(n,r){return t.columnFromPoint(n,r)},Object.defineProperty(this,"columns",{get:function(){return t.getColumns()}})}function o(t,n){this.css=function(){var r=arguments[0],o=arguments[1];if(1==arguments.length)return n.header.css(r);2==arguments.length&&(n.header.css(r,o),t.forEachRow((function(t){return t[n.id].css(r,o)})),n.css[r]=o)},this.moveBefore=function(r){return t.moveBefore(n,r)},this.exchangeWith=function(r){return t.exchangeWith(n,r)},Object.defineProperty(this,"columnId",{get:function(){return n.id}})}function e(t,n,r){function o(t,n,r){var o=t.offset();return!(n=u.length||(r.push(n),0))},this.unregisterCell=function(t,n){var r=c.get(t),o=r.indexOf(n);r.splice(o,1),r.length||c.delete(t)},this.forEachRow=function(t){c.forEach(t)},this.getColumns=function(){var t=this,n=[];return u.slice().sort((function(t,n){return t.mapTo-n.mapTo})).forEach((function(r){return n.push(new o(t,r))})),n},this.getLayout=function(){var t=[];return u.forEach((function(n,r){return t.push({index:r,css:angular.extend({},n.css),mapTo:n.mapTo})})),t},this.applyLayout=function(t){if(!t||t.length!=u.length)throw new Error("Failed to apply layout - number of layouts should match number of columns");t.forEach((function(t,n){return u[n].applyLayout(t)})),a(u.map((function(t){return t.header}))),c.forEach((function(t){return a(t)}))},this.moveBefore=function(t,n){var r=n;if(n%1!=0&&(r=n?u[n.columnId].mapTo:u.length),!(r<0||r>u.length)){var o=t.mapTo,e=null;r-=oo?1:0,t.mapTo+=t.mapTo>=r?1:0,e=t.mapTo===r+1?t:e})),t.mapTo=r,t.moveBefore(e)}},this.exchangeWith=function(t,n){n<0||n>=u.length||(u.find((function(t){return t.mapTo===n})).mapTo=t.mapTo,t.mapTo=n)},this.columnFromPoint=function(t,n){var r=u.find((function(r){return r.columnFromPoint(t,n)}));return r?new o(this,r):void 0}}return{require:["^^uiScrollViewport"],restrict:"A",link:function(t,n,r,o){o[0].gridController=o[0].gridController||new i(o[0]),o[0].gridController.registerColumn(n)}}}]).directive("uiScrollTd",(function(){return{require:["?^^uiScrollViewport"],restrict:"A",link:function(t,n,r,o){if(o[0]){var e=t,i=t.uiScrollTdInitializer;i||(i=t.uiScrollTdInitializer={linking:!0}),i.linking||(e=i.scope);var u=o[0].gridController;u.registerCell(e,n)&&t.$on("$destroy",(function(){return u.unregisterCell(e,n)})),i.linking||i.onLink()}}}})); //# sourceMappingURL=ui-scroll-grid.min.js.map \ No newline at end of file diff --git a/dist/ui-scroll-grid.min.js.map b/dist/ui-scroll-grid.min.js.map index 41507d4..162ccd7 100644 --- a/dist/ui-scroll-grid.min.js.map +++ b/dist/ui-scroll-grid.min.js.map @@ -1 +1 @@ -{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./src/ui-scroll-grid.js"],"names":["installedModules","__webpack_require__","moduleId","exports","module","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","angular","directive","console","$timeout","GridAdapter","controller","this","getLayout","applyLayout","layout","columnFromPoint","x","y","getColumns","ColumnAdapter","column","css","attr","arguments","length","header","forEachRow","row","id","moveBefore","index","exchangeWith","ColumnController","columns","insidePoint","element","offset","left","outerWidth","top","outerHeight","target","detach","before","moveLast","parent","append","applyCss","removeAttr","mapTo","extend","result","GridController","scrollViewport","rowMap","Map","transform","visible","forEach","cell","adapter","publicContext","gridAdapter","scope","item","registerColumn","push","registerCell","set","unregisterCell","indexOf","splice","delete","callback","slice","sort","a","b","layouts","Error","map","selected","columnId","next","find","col","undefined","require","restrict","link","$scope","$attr","controllers","gridController","tdInitializer","uiScrollTdInitializer","linking","$on","onLink"],"mappings":"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","file":"ui-scroll-grid.min.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 0);\n","angular.module('ui.scroll.grid', [])\r\n .directive('uiScrollTh', ['$log', '$timeout', function(console, $timeout) {\r\n\r\n function GridAdapter(controller) {\r\n\r\n this.getLayout = () => controller.getLayout();\r\n\r\n this.applyLayout = (layout) => controller.applyLayout(layout);\r\n\r\n this.columnFromPoint = (x, y) => controller.columnFromPoint(x, y);\r\n\r\n Object.defineProperty(this, 'columns', { get: () => controller.getColumns() });\r\n }\r\n\r\n function ColumnAdapter(controller, column) {\r\n\r\n this.css = function( /* attr, value */ ) {\r\n var attr = arguments[0];\r\n var value = arguments[1];\r\n if (arguments.length == 1) {\r\n return column.header.css(attr);\r\n }\r\n if (arguments.length == 2) {\r\n column.header.css(attr, value);\r\n controller.forEachRow((row) => row[column.id].css(attr, value));\r\n column.css[attr] = value;\r\n }\r\n };\r\n\r\n this.moveBefore = (index) => controller.moveBefore(column, index);\r\n\r\n this.exchangeWith = (index) => controller.exchangeWith(column, index);\r\n\r\n Object.defineProperty(this, 'columnId', { get: () => column.id });\r\n }\r\n\r\n function ColumnController(controller, columns, header) {\r\n\r\n this.header = header;\r\n this.css = {};\r\n this.mapTo = columns.length;\r\n this.id = columns.length;\r\n\r\n // controller api methods\r\n\r\n this.applyLayout = function(layout) {\r\n this.css = angular.extend({}, layout.css);\r\n this.mapTo = layout.mapTo;\r\n applyCss(this.header, this.css);\r\n };\r\n\r\n this.moveBefore = function(target) {\r\n if (target) {\r\n moveBefore(header, target.header);\r\n controller.forEachRow((row) => moveBefore(row[this.id], row[target.id]));\r\n } else {\r\n moveLast(header);\r\n controller.forEachRow((row) => moveLast(row[this.id]));\r\n }\r\n };\r\n\r\n this.columnFromPoint = function(x, y) {\r\n if (insidePoint(header, x, y)) {\r\n return this;\r\n }\r\n let result = null;\r\n controller.forEachRow((row) =>\r\n result = insidePoint(row[this.id], x, y) ? this : result\r\n );\r\n return result;\r\n };\r\n\r\n this.applyCss = function(target) {\r\n applyCss(target, this.css);\r\n };\r\n\r\n // function definitions\r\n\r\n function insidePoint(element, x, y) {\r\n let offset = element.offset();\r\n if (x < offset.left || offset.left + element.outerWidth(true) < x)\r\n return false;\r\n if (y < offset.top || offset.top + element.outerHeight(true) < y)\r\n return false;\r\n return true;\r\n }\r\n\r\n function moveBefore(element, target) {\r\n element.detach();\r\n target.before(element);\r\n }\r\n\r\n function moveLast(element) {\r\n let parent = element.parent();\r\n element.detach();\r\n parent.append(element);\r\n }\r\n\r\n function applyCss(target, css) {\r\n target.removeAttr('style');\r\n for (let attr in css) {\r\n if (css.hasOwnProperty(attr)) {\r\n target.css(attr, css[attr]);\r\n }\r\n }\r\n }\r\n\r\n }\r\n\r\n function GridController(scrollViewport) {\r\n let columns = [];\r\n let rowMap = new Map();\r\n\r\n $timeout(() => {\r\n scrollViewport.adapter.publicContext.gridAdapter = new GridAdapter(this);\r\n scrollViewport.adapter.transform = (scope, item) => transform(rowMap.get(scope), item);\r\n });\r\n\r\n this.registerColumn = function(header) {\r\n columns.push(new ColumnController(this, columns, header));\r\n };\r\n\r\n this.registerCell = function(scope, cell) {\r\n let row = rowMap.get(scope);\r\n if (!row) {\r\n row = [];\r\n rowMap.set(scope, row);\r\n }\r\n if (row.length >= columns.length) {\r\n return false;\r\n }\r\n row.push(cell);\r\n return true;\r\n };\r\n\r\n this.unregisterCell = function(scope, cell) {\r\n let row = rowMap.get(scope);\r\n let i = row.indexOf(cell);\r\n row.splice(i, 1);\r\n if (!row.length) {\r\n rowMap.delete(scope);\r\n }\r\n };\r\n\r\n this.forEachRow = function(callback) {\r\n rowMap.forEach(callback);\r\n };\r\n\r\n this.getColumns = function() {\r\n let result = [];\r\n columns.slice()\r\n .sort((a, b) => a.mapTo - b.mapTo)\r\n .forEach((column) => result.push(new ColumnAdapter(this, column)));\r\n return result;\r\n };\r\n\r\n this.getLayout = function() {\r\n let result = [];\r\n columns.forEach((column, index) => result.push({\r\n index: index,\r\n css: angular.extend({}, column.css),\r\n mapTo: column.mapTo\r\n }));\r\n return result;\r\n };\r\n\r\n this.applyLayout = function(layouts) {\r\n if (!layouts || layouts.length != columns.length) {\r\n throw new Error('Failed to apply layout - number of layouts should match number of columns');\r\n }\r\n layouts.forEach((layout, index) => columns[index].applyLayout(layout));\r\n transform(columns.map((column) => column.header));\r\n rowMap.forEach((row) => transform(row));\r\n };\r\n\r\n this.moveBefore = function(selected, target) {\r\n let index = target;\r\n\r\n if (target % 1 !== 0) {\r\n index = target ? columns[target.columnId].mapTo : columns.length;\r\n }\r\n if (index < 0 || index > columns.length) {\r\n return; // throw an error?\r\n }\r\n\r\n let mapTo = selected.mapTo,\r\n next = null;\r\n index -= mapTo < index ? 1 : 0;\r\n\r\n columns.forEach(c => {\r\n c.mapTo -= c.mapTo > mapTo ? 1 : 0;\r\n c.mapTo += c.mapTo >= index ? 1 : 0;\r\n next = c.mapTo === index + 1 ? c : next;\r\n });\r\n\r\n selected.mapTo = index;\r\n selected.moveBefore(next);\r\n };\r\n\r\n this.exchangeWith = function(selected, index) {\r\n if (index < 0 || index >= columns.length) {\r\n return;\r\n }\r\n columns.find(c => c.mapTo === index).mapTo = selected.mapTo;\r\n selected.mapTo = index;\r\n };\r\n\r\n this.columnFromPoint = function(x, y) {\r\n let column = columns.find(col => col.columnFromPoint(x, y));\r\n return column ? new ColumnAdapter(this, column) : undefined;\r\n };\r\n\r\n // function definitions\r\n\r\n function transform(row) {\r\n let parent = row[0].parent();\r\n let visible = [];\r\n\r\n row.forEach((cell, index) => {\r\n columns[index].applyCss(cell);\r\n visible[columns[index].mapTo] = row[index];\r\n row[index].detach();\r\n });\r\n\r\n visible.forEach(cell => parent.append(cell));\r\n }\r\n\r\n }\r\n\r\n return {\r\n require: ['^^uiScrollViewport'],\r\n restrict: 'A',\r\n link: ($scope, element, $attr, controllers) => {\r\n controllers[0].gridController = controllers[0].gridController || new GridController(controllers[0]);\r\n controllers[0].gridController.registerColumn(element);\r\n }\r\n };\r\n }])\r\n\r\n.directive('uiScrollTd', function() {\r\n return {\r\n require: ['?^^uiScrollViewport'],\r\n restrict: 'A',\r\n link: ($scope, element, $attr, controllers) => {\r\n if (!controllers[0]) {\r\n return;\r\n }\r\n let scope = $scope;\r\n let tdInitializer = $scope.uiScrollTdInitializer;\r\n if (!tdInitializer) {\r\n tdInitializer = $scope.uiScrollTdInitializer = {\r\n linking: true\r\n };\r\n }\r\n if (!tdInitializer.linking) {\r\n scope = tdInitializer.scope;\r\n }\r\n let gridController = controllers[0].gridController;\r\n if (gridController.registerCell(scope, element)) {\r\n $scope.$on('$destroy', () => gridController.unregisterCell(scope, element));\r\n }\r\n if (!tdInitializer.linking) {\r\n tdInitializer.onLink();\r\n }\r\n }\r\n };\r\n});\r\n"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"ui-scroll-grid.min.js","mappings":"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","sources":["webpack://angular-ui-scroll/./src/ui-scroll-grid.js"],"sourcesContent":["angular.module('ui.scroll.grid', [])\r\n .directive('uiScrollTh', ['$log', '$timeout', function(console, $timeout) {\r\n\r\n function GridAdapter(controller) {\r\n\r\n this.getLayout = () => controller.getLayout();\r\n\r\n this.applyLayout = (layout) => controller.applyLayout(layout);\r\n\r\n this.columnFromPoint = (x, y) => controller.columnFromPoint(x, y);\r\n\r\n Object.defineProperty(this, 'columns', { get: () => controller.getColumns() });\r\n }\r\n\r\n function ColumnAdapter(controller, column) {\r\n\r\n this.css = function( /* attr, value */ ) {\r\n var attr = arguments[0];\r\n var value = arguments[1];\r\n if (arguments.length == 1) {\r\n return column.header.css(attr);\r\n }\r\n if (arguments.length == 2) {\r\n column.header.css(attr, value);\r\n controller.forEachRow((row) => row[column.id].css(attr, value));\r\n column.css[attr] = value;\r\n }\r\n };\r\n\r\n this.moveBefore = (index) => controller.moveBefore(column, index);\r\n\r\n this.exchangeWith = (index) => controller.exchangeWith(column, index);\r\n\r\n Object.defineProperty(this, 'columnId', { get: () => column.id });\r\n }\r\n\r\n function ColumnController(controller, columns, header) {\r\n\r\n this.header = header;\r\n this.css = {};\r\n this.mapTo = columns.length;\r\n this.id = columns.length;\r\n\r\n // controller api methods\r\n\r\n this.applyLayout = function(layout) {\r\n this.css = angular.extend({}, layout.css);\r\n this.mapTo = layout.mapTo;\r\n applyCss(this.header, this.css);\r\n };\r\n\r\n this.moveBefore = function(target) {\r\n if (target) {\r\n moveBefore(header, target.header);\r\n controller.forEachRow((row) => moveBefore(row[this.id], row[target.id]));\r\n } else {\r\n moveLast(header);\r\n controller.forEachRow((row) => moveLast(row[this.id]));\r\n }\r\n };\r\n\r\n this.columnFromPoint = function(x, y) {\r\n if (insidePoint(header, x, y)) {\r\n return this;\r\n }\r\n let result = null;\r\n controller.forEachRow((row) =>\r\n result = insidePoint(row[this.id], x, y) ? this : result\r\n );\r\n return result;\r\n };\r\n\r\n this.applyCss = function(target) {\r\n applyCss(target, this.css);\r\n };\r\n\r\n // function definitions\r\n\r\n function insidePoint(element, x, y) {\r\n let offset = element.offset();\r\n if (x < offset.left || offset.left + element.outerWidth(true) < x)\r\n return false;\r\n if (y < offset.top || offset.top + element.outerHeight(true) < y)\r\n return false;\r\n return true;\r\n }\r\n\r\n function moveBefore(element, target) {\r\n element.detach();\r\n target.before(element);\r\n }\r\n\r\n function moveLast(element) {\r\n let parent = element.parent();\r\n element.detach();\r\n parent.append(element);\r\n }\r\n\r\n function applyCss(target, css) {\r\n target.removeAttr('style');\r\n for (let attr in css) {\r\n if (css.hasOwnProperty(attr)) {\r\n target.css(attr, css[attr]);\r\n }\r\n }\r\n }\r\n\r\n }\r\n\r\n function GridController(scrollViewport) {\r\n let columns = [];\r\n let rowMap = new Map();\r\n\r\n $timeout(() => {\r\n scrollViewport.adapter.publicContext.gridAdapter = new GridAdapter(this);\r\n scrollViewport.adapter.transform = (scope, item) => transform(rowMap.get(scope), item);\r\n });\r\n\r\n this.registerColumn = function(header) {\r\n columns.push(new ColumnController(this, columns, header));\r\n };\r\n\r\n this.registerCell = function(scope, cell) {\r\n let row = rowMap.get(scope);\r\n if (!row) {\r\n row = [];\r\n rowMap.set(scope, row);\r\n }\r\n if (row.length >= columns.length) {\r\n return false;\r\n }\r\n row.push(cell);\r\n return true;\r\n };\r\n\r\n this.unregisterCell = function(scope, cell) {\r\n let row = rowMap.get(scope);\r\n let i = row.indexOf(cell);\r\n row.splice(i, 1);\r\n if (!row.length) {\r\n rowMap.delete(scope);\r\n }\r\n };\r\n\r\n this.forEachRow = function(callback) {\r\n rowMap.forEach(callback);\r\n };\r\n\r\n this.getColumns = function() {\r\n let result = [];\r\n columns.slice()\r\n .sort((a, b) => a.mapTo - b.mapTo)\r\n .forEach((column) => result.push(new ColumnAdapter(this, column)));\r\n return result;\r\n };\r\n\r\n this.getLayout = function() {\r\n let result = [];\r\n columns.forEach((column, index) => result.push({\r\n index: index,\r\n css: angular.extend({}, column.css),\r\n mapTo: column.mapTo\r\n }));\r\n return result;\r\n };\r\n\r\n this.applyLayout = function(layouts) {\r\n if (!layouts || layouts.length != columns.length) {\r\n throw new Error('Failed to apply layout - number of layouts should match number of columns');\r\n }\r\n layouts.forEach((layout, index) => columns[index].applyLayout(layout));\r\n transform(columns.map((column) => column.header));\r\n rowMap.forEach((row) => transform(row));\r\n };\r\n\r\n this.moveBefore = function(selected, target) {\r\n let index = target;\r\n\r\n if (target % 1 !== 0) {\r\n index = target ? columns[target.columnId].mapTo : columns.length;\r\n }\r\n if (index < 0 || index > columns.length) {\r\n return; // throw an error?\r\n }\r\n\r\n let mapTo = selected.mapTo,\r\n next = null;\r\n index -= mapTo < index ? 1 : 0;\r\n\r\n columns.forEach(c => {\r\n c.mapTo -= c.mapTo > mapTo ? 1 : 0;\r\n c.mapTo += c.mapTo >= index ? 1 : 0;\r\n next = c.mapTo === index + 1 ? c : next;\r\n });\r\n\r\n selected.mapTo = index;\r\n selected.moveBefore(next);\r\n };\r\n\r\n this.exchangeWith = function(selected, index) {\r\n if (index < 0 || index >= columns.length) {\r\n return;\r\n }\r\n columns.find(c => c.mapTo === index).mapTo = selected.mapTo;\r\n selected.mapTo = index;\r\n };\r\n\r\n this.columnFromPoint = function(x, y) {\r\n let column = columns.find(col => col.columnFromPoint(x, y));\r\n return column ? new ColumnAdapter(this, column) : undefined;\r\n };\r\n\r\n // function definitions\r\n\r\n function transform(row) {\r\n let parent = row[0].parent();\r\n let visible = [];\r\n\r\n row.forEach((cell, index) => {\r\n columns[index].applyCss(cell);\r\n visible[columns[index].mapTo] = row[index];\r\n row[index].detach();\r\n });\r\n\r\n visible.forEach(cell => parent.append(cell));\r\n }\r\n\r\n }\r\n\r\n return {\r\n require: ['^^uiScrollViewport'],\r\n restrict: 'A',\r\n link: ($scope, element, $attr, controllers) => {\r\n controllers[0].gridController = controllers[0].gridController || new GridController(controllers[0]);\r\n controllers[0].gridController.registerColumn(element);\r\n }\r\n };\r\n }])\r\n\r\n.directive('uiScrollTd', function() {\r\n return {\r\n require: ['?^^uiScrollViewport'],\r\n restrict: 'A',\r\n link: ($scope, element, $attr, controllers) => {\r\n if (!controllers[0]) {\r\n return;\r\n }\r\n let scope = $scope;\r\n let tdInitializer = $scope.uiScrollTdInitializer;\r\n if (!tdInitializer) {\r\n tdInitializer = $scope.uiScrollTdInitializer = {\r\n linking: true\r\n };\r\n }\r\n if (!tdInitializer.linking) {\r\n scope = tdInitializer.scope;\r\n }\r\n let gridController = controllers[0].gridController;\r\n if (gridController.registerCell(scope, element)) {\r\n $scope.$on('$destroy', () => gridController.unregisterCell(scope, element));\r\n }\r\n if (!tdInitializer.linking) {\r\n tdInitializer.onLink();\r\n }\r\n }\r\n };\r\n});\r\n"],"names":["angular","module","directive","console","$timeout","GridAdapter","controller","this","getLayout","applyLayout","layout","columnFromPoint","x","y","Object","defineProperty","get","getColumns","ColumnAdapter","column","css","attr","arguments","value","length","header","forEachRow","row","id","moveBefore","index","exchangeWith","ColumnController","columns","insidePoint","element","offset","left","outerWidth","top","outerHeight","target","detach","before","moveLast","parent","append","applyCss","removeAttr","hasOwnProperty","mapTo","extend","_this","_this2","result","GridController","scrollViewport","_this3","rowMap","Map","transform","visible","forEach","cell","adapter","publicContext","gridAdapter","scope","item","registerColumn","push","registerCell","set","unregisterCell","i","indexOf","splice","delete","callback","_this4","slice","sort","a","b","layouts","Error","map","selected","columnId","next","c","find","col","undefined","require","restrict","link","$scope","$attr","controllers","gridController","tdInitializer","uiScrollTdInitializer","linking","$on","onLink"],"sourceRoot":""} \ No newline at end of file diff --git a/dist/ui-scroll.js b/dist/ui-scroll.js index 385a5a5..c5d03e1 100644 --- a/dist/ui-scroll.js +++ b/dist/ui-scroll.js @@ -1,119 +1,26 @@ /*! * angular-ui-scroll * https://github.com/angular-ui/ui-scroll - * Version: 1.8.2 -- 2020-10-02T15:06:03.904Z + * Version: 1.8.2 -- 2023-04-18T22:14:45.556Z * License: MIT */ -/******/ (function(modules) { // webpackBootstrap -/******/ // The module cache -/******/ var installedModules = {}; -/******/ -/******/ // The require function -/******/ function __webpack_require__(moduleId) { -/******/ -/******/ // Check if module is in cache -/******/ if(installedModules[moduleId]) { -/******/ return installedModules[moduleId].exports; -/******/ } -/******/ // Create a new module (and put it into the cache) -/******/ var module = installedModules[moduleId] = { -/******/ i: moduleId, -/******/ l: false, -/******/ exports: {} -/******/ }; -/******/ -/******/ // Execute the module function -/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); -/******/ -/******/ // Flag the module as loaded -/******/ module.l = true; -/******/ -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } -/******/ -/******/ -/******/ // expose the modules object (__webpack_modules__) -/******/ __webpack_require__.m = modules; -/******/ -/******/ // expose the module cache -/******/ __webpack_require__.c = installedModules; -/******/ -/******/ // define getter function for harmony exports -/******/ __webpack_require__.d = function(exports, name, getter) { -/******/ if(!__webpack_require__.o(exports, name)) { -/******/ Object.defineProperty(exports, name, { enumerable: true, get: getter }); -/******/ } -/******/ }; -/******/ -/******/ // define __esModule on exports -/******/ __webpack_require__.r = function(exports) { -/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { -/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); -/******/ } -/******/ Object.defineProperty(exports, '__esModule', { value: true }); -/******/ }; -/******/ -/******/ // create a fake namespace object -/******/ // mode & 1: value is a module id, require it -/******/ // mode & 2: merge all properties of value into the ns -/******/ // mode & 4: return value when already ns object -/******/ // mode & 8|1: behave like require -/******/ __webpack_require__.t = function(value, mode) { -/******/ if(mode & 1) value = __webpack_require__(value); -/******/ if(mode & 8) return value; -/******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value; -/******/ var ns = Object.create(null); -/******/ __webpack_require__.r(ns); -/******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value }); -/******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key)); -/******/ return ns; -/******/ }; -/******/ -/******/ // getDefaultExport function for compatibility with non-harmony modules -/******/ __webpack_require__.n = function(module) { -/******/ var getter = module && module.__esModule ? -/******/ function getDefault() { return module['default']; } : -/******/ function getModuleExports() { return module; }; -/******/ __webpack_require__.d(getter, 'a', getter); -/******/ return getter; -/******/ }; -/******/ -/******/ // Object.prototype.hasOwnProperty.call -/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; -/******/ -/******/ // __webpack_public_path__ -/******/ __webpack_require__.p = ""; -/******/ -/******/ -/******/ // Load entry module and return exports -/******/ return __webpack_require__(__webpack_require__.s = 1); -/******/ }) -/************************************************************************/ -/******/ ([ -/* 0 */, -/* 1 */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -// ESM COMPAT FLAG -__webpack_require__.r(__webpack_exports__); - -// CONCATENATED MODULE: ./src/modules/jqLiteExtras.js -function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); } - -function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance"); } - -function _iterableToArrayLimit(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_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; } - +/******/ (() => { // webpackBootstrap +/******/ "use strict"; +var __webpack_exports__ = {}; + +;// CONCATENATED MODULE: ./src/modules/jqLiteExtras.js +function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _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 _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 _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; } +function _iterableToArrayLimit(arr, i) { var _i = null == arr ? null : "undefined" != typeof Symbol && arr[Symbol.iterator] || arr["@@iterator"]; if (null != _i) { var _s, _e, _x, _r, _arr = [], _n = !0, _d = !1; try { if (_x = (_i = _i.call(arr)).next, 0 === i) { if (Object(_i) !== _i) return; _n = !1; } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0); } catch (err) { _d = !0, _e = err; } finally { try { if (!_n && null != _i.return && (_r = _i.return(), Object(_r) !== _r)) return; } finally { if (_d) throw _e; } } return _arr; } } function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; } - function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } - -function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } - +function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } } +function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; } +function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); } +function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); } /*! globals: angular, window List of used element methods available in JQuery but not in JQuery Lite @@ -124,67 +31,54 @@ function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _d element.scrollTop() element.scrollTop(value) */ -var jqLiteExtras_JQLiteExtras = -/*#__PURE__*/ -function () { +var JQLiteExtras = /*#__PURE__*/function () { function JQLiteExtras() { _classCallCheck(this, JQLiteExtras); } - _createClass(JQLiteExtras, [{ key: "registerFor", value: function registerFor(element) { - var convertToPx, css, getStyle, isWindow; // angular implementation blows up if elem is the window - + var convertToPx, css, getStyle, isWindow; + // angular implementation blows up if elem is the window css = angular.element.prototype.css; - element.prototype.css = function (name, value) { var self = this; var elem = self[0]; - if (!(!elem || elem.nodeType === 3 || elem.nodeType === 8 || !elem.style)) { return css.call(self, name, value); } - }; // as defined in angularjs v1.0.5 - + }; + // as defined in angularjs v1.0.5 isWindow = function isWindow(obj) { return obj && obj.document && obj.location && obj.alert && obj.setInterval; }; - function scrollTo(self, direction, value) { var elem = self[0]; - var _top$left$direction = _slicedToArray({ - top: ['scrollTop', 'pageYOffset', 'scrollLeft'], - left: ['scrollLeft', 'pageXOffset', 'scrollTop'] - }[direction], 3), - method = _top$left$direction[0], - prop = _top$left$direction[1], - preserve = _top$left$direction[2]; - + top: ['scrollTop', 'pageYOffset', 'scrollLeft'], + left: ['scrollLeft', 'pageXOffset', 'scrollTop'] + }[direction], 3), + method = _top$left$direction[0], + prop = _top$left$direction[1], + preserve = _top$left$direction[2]; var isValueDefined = typeof value !== 'undefined'; - if (isWindow(elem)) { if (isValueDefined) { return elem.scrollTo(self[preserve].call(self), value); } - return prop in elem ? elem[prop] : elem.document.documentElement[method]; } else { if (isValueDefined) { elem[method] = value; } - return elem[method]; } } - if (window.getComputedStyle) { getStyle = function getStyle(elem) { return window.getComputedStyle(elem, null); }; - convertToPx = function convertToPx(elem, value) { return parseFloat(value); }; @@ -192,42 +86,34 @@ function () { getStyle = function getStyle(elem) { return elem.currentStyle; }; - convertToPx = function convertToPx(elem, value) { var left, result, rs, rsLeft, style; var core_pnum = /[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source; var rnumnonpx = new RegExp('^(' + core_pnum + ')(?!px)[a-z%]+$', 'i'); - if (!rnumnonpx.test(value)) { return parseFloat(value); - } // ported from JQuery - + } + // ported from JQuery style = elem.style; left = style.left; rs = elem.runtimeStyle; rsLeft = rs && rs.left; - if (rs) { rs.left = style.left; - } // put in the new values to get a computed style out - - + } + // put in the new values to get a computed style out style.left = value; result = style.pixelLeft; style.left = left; - if (rsLeft) { rs.left = rsLeft; } - return result; }; } - function getMeasurements(elem, measure) { var base, borderA, borderB, computedMarginA, computedMarginB, computedStyle, dirA, dirB, marginA, marginB, paddingA, paddingB; - if (isWindow(elem)) { base = document.documentElement[{ height: 'clientHeight', @@ -239,14 +125,13 @@ function () { border: 0, margin: 0 }; - } // Start with offset property - + } + // Start with offset property var _width$height$measure = _slicedToArray({ width: [elem.offsetWidth, 'Left', 'Right'], height: [elem.offsetHeight, 'Top', 'Bottom'] }[measure], 3); - base = _width$height$measure[0]; dirA = _width$height$measure[1]; dirB = _width$height$measure[2]; @@ -256,11 +141,12 @@ function () { borderA = convertToPx(elem, computedStyle['border' + dirA + 'Width']) || 0; borderB = convertToPx(elem, computedStyle['border' + dirB + 'Width']) || 0; computedMarginA = computedStyle['margin' + dirA]; - computedMarginB = computedStyle['margin' + dirB]; // I do not care for width for now, so this hack is irrelevant + computedMarginB = computedStyle['margin' + dirB]; + + // I do not care for width for now, so this hack is irrelevant // if ( !supportsPercentMargin ) // computedMarginA = hackPercentMargin( elem, computedStyle, computedMarginA ) // computedMarginB = hackPercentMargin( elem, computedStyle, computedMarginB ) - marginA = convertToPx(elem, computedMarginA) || 0; marginB = convertToPx(elem, computedMarginB) || 0; return { @@ -270,37 +156,34 @@ function () { margin: marginA + marginB }; } - function getWidthHeight(elem, direction, measure) { var computedStyle, result; var measurements = getMeasurements(elem, direction); - if (measurements.base > 0) { return { base: measurements.base - measurements.padding - measurements.border, outer: measurements.base, outerfull: measurements.base + measurements.margin }[measure]; - } // Fall back to computed then uncomputed css if necessary - + } + // Fall back to computed then uncomputed css if necessary computedStyle = getStyle(elem); result = computedStyle[direction]; - if (result < 0 || result === null) { result = elem.style[direction] || 0; - } // Normalize "", auto, and prepare for extra - + } + // Normalize "", auto, and prepare for extra result = parseFloat(result) || 0; return { base: result - measurements.padding - measurements.border, outer: result, outerfull: result + measurements.padding + measurements.border + measurements.margin }[measure]; - } // define missing methods - + } + // define missing methods return angular.forEach({ before: function before(newElem) { var children, elem, i, j, parent, ref, self; @@ -308,7 +191,6 @@ function () { elem = self[0]; parent = self.parent(); children = parent.contents(); - if (children[0] === elem) { return parent.prepend(newElem); } else { @@ -318,19 +200,16 @@ function () { return; } } - throw new Error('invalid DOM structure ' + elem.outerHTML); } }, height: function height(value) { var self; self = this; - if (typeof value !== 'undefined') { if (angular.isNumber(value)) { value = value + 'px'; } - return css.call(self, 'height', value); } else { return getWidthHeight(this[0], 'height', 'base'); @@ -342,7 +221,6 @@ function () { outerWidth: function outerWidth(option) { return getWidthHeight(this[0], 'width', option ? 'outerfull' : 'outer'); }, - /* The offset setter method is not implemented */ @@ -355,26 +233,23 @@ function () { }; var elem = self[0]; var doc = elem && elem.ownerDocument; - if (arguments.length) { if (value === undefined) { return self; - } // TODO: implement setter - - + } + // TODO: implement setter throw new Error('offset setter method is not implemented'); } - if (!doc) { return; } + docElem = doc.documentElement; - docElem = doc.documentElement; // TODO: Make sure it's not a disconnected DOM node + // TODO: Make sure it's not a disconnected DOM node if (elem.getBoundingClientRect != null) { box = elem.getBoundingClientRect(); } - win = doc.defaultView || doc.parentWindow; return { top: box.top + (win.pageYOffset || docElem.scrollTop) - (docElem.clientTop || 0), @@ -394,53 +269,24 @@ function () { }); } }]); - return JQLiteExtras; }(); - -// CONCATENATED MODULE: ./src/modules/elementRoutines.js +;// CONCATENATED MODULE: ./src/modules/elementRoutines.js +function elementRoutines_typeof(obj) { "@babel/helpers - typeof"; return elementRoutines_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, elementRoutines_typeof(obj); } function elementRoutines_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -function elementRoutines_defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } - -function elementRoutines_createClass(Constructor, protoProps, staticProps) { if (protoProps) elementRoutines_defineProperties(Constructor.prototype, protoProps); if (staticProps) elementRoutines_defineProperties(Constructor, staticProps); return Constructor; } - +function elementRoutines_defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, elementRoutines_toPropertyKey(descriptor.key), descriptor); } } +function elementRoutines_createClass(Constructor, protoProps, staticProps) { if (protoProps) elementRoutines_defineProperties(Constructor.prototype, protoProps); if (staticProps) elementRoutines_defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; } +function elementRoutines_toPropertyKey(arg) { var key = elementRoutines_toPrimitive(arg, "string"); return elementRoutines_typeof(key) === "symbol" ? key : String(key); } +function elementRoutines_toPrimitive(input, hint) { if (elementRoutines_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (elementRoutines_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); } var hideClassToken = 'ng-ui-scroll-hide'; - -var ElementRoutines = -/*#__PURE__*/ -function () { - elementRoutines_createClass(ElementRoutines, null, [{ - key: "addCSSRules", - value: function addCSSRules() { - var selector = '.' + hideClassToken; - var rules = 'display: none'; - var sheet = document.styleSheets[0]; - var index; - - try { - index = sheet.cssRules.length; - } catch (err) { - index = 0; - } - - if ('insertRule' in sheet) { - sheet.insertRule(selector + '{' + rules + '}', index); - } else if ('addRule' in sheet) { - sheet.addRule(selector, rules, index); - } - } - }]); - +var ElementRoutines = /*#__PURE__*/function () { function ElementRoutines($injector, $q) { elementRoutines_classCallCheck(this, ElementRoutines); - this.$animate = $injector.has && $injector.has('$animate') ? $injector.get('$animate') : null; this.isAngularVersionLessThen1_3 = angular.version.major === 1 && angular.version.minor < 3; this.$q = $q; } - elementRoutines_createClass(ElementRoutines, [{ key: "hideElement", value: function hideElement(wrapper) { @@ -470,17 +316,16 @@ function () { if (!this.$animate) { return this.insertElement(newElement, previousElement); } - if (this.isAngularVersionLessThen1_3) { - var deferred = this.$q.defer(); // no need for parent - previous element is never null - + var deferred = this.$q.defer(); + // no need for parent - previous element is never null this.$animate.enter(newElement, null, previousElement, function () { return deferred.resolve(); }); return [deferred.promise]; - } // no need for parent - previous element is never null - + } + // no need for parent - previous element is never null return [this.$animate.enter(newElement, null, previousElement)]; } }, { @@ -489,7 +334,6 @@ function () { if (!this.$animate) { return this.removeElement(wrapper); } - if (this.isAngularVersionLessThen1_3) { var deferred = this.$q.defer(); this.$animate.leave(wrapper.element, function () { @@ -498,18 +342,33 @@ function () { }); return [deferred.promise]; } - return [this.$animate.leave(wrapper.element).then(function () { return wrapper.scope.$destroy(); })]; } + }], [{ + key: "addCSSRules", + value: function addCSSRules() { + var selector = '.' + hideClassToken; + var rules = 'display: none'; + var sheet = document.styleSheets[0]; + var index; + try { + index = sheet.cssRules.length; + } catch (err) { + index = 0; + } + if ('insertRule' in sheet) { + sheet.insertRule(selector + '{' + rules + '}', index); + } else if ('addRule' in sheet) { + sheet.addRule(selector, rules, index); + } + } }]); - return ElementRoutines; }(); - -// CONCATENATED MODULE: ./src/modules/utils.js +;// CONCATENATED MODULE: ./src/modules/utils.js var OPERATIONS = { PREPEND: 'prepend', APPEND: 'append', @@ -517,7 +376,7 @@ var OPERATIONS = { REMOVE: 'remove', NONE: 'none' }; -// CONCATENATED MODULE: ./src/modules/buffer.js +;// CONCATENATED MODULE: ./src/modules/buffer.js function ScrollBuffer(elementRoutines, bufferSize, startIndex) { var buffer = Object.create(Array.prototype); @@ -548,12 +407,10 @@ function ScrollBuffer(elementRoutines, bufferSize, startIndex) { } else { --buffer.first; } - buffer.insert(OPERATIONS.PREPEND, item); }); buffer.minIndex = buffer.bof ? buffer.minIndex = buffer.first : Math.min(buffer.first, buffer.minIndex); }, - /** * inserts wrapped element in the buffer * the first argument is either operation keyword (see below) or a number for operation 'insert' @@ -564,12 +421,10 @@ function ScrollBuffer(elementRoutines, bufferSize, startIndex) { var wrapper = { item: item }; - if (operation % 1 === 0) { // it is an insert wrapper.op = OPERATIONS.INSERT; buffer.splice(operation, 0, wrapper); - if (shiftTop) { buffer.first--; } else { @@ -577,12 +432,10 @@ function ScrollBuffer(elementRoutines, bufferSize, startIndex) { } } else { wrapper.op = operation; - switch (operation) { case OPERATIONS.APPEND: buffer.push(wrapper); break; - case OPERATIONS.PREPEND: buffer.unshift(wrapper); break; @@ -596,29 +449,23 @@ function ScrollBuffer(elementRoutines, bufferSize, startIndex) { for (var i = arg1; i < arg2; i++) { elementRoutines.removeElement(buffer[i]); } - return buffer.splice(arg1, arg2 - arg1); - } // removes single item (wrapper) from the buffer - - + } + // removes single item (wrapper) from the buffer buffer.splice(buffer.indexOf(arg1), 1); - if (arg1.shiftTop && buffer.first === this.getAbsMinIndex()) { this.incrementMinIndex(); } else { this.decrementMaxIndex(); } - if (arg1.shiftTop) { buffer.first++; } else { buffer.next--; } - if (!buffer.length) { buffer.minIndex = Math.min(buffer.maxIndex, buffer.minIndex); } - return elementRoutines.removeElementAnimated(arg1); }, incrementMinIndex: function incrementMinIndex() { @@ -627,40 +474,34 @@ function ScrollBuffer(elementRoutines, bufferSize, startIndex) { buffer.minIndexUser++; return; } - if (buffer.minIndex === buffer.minIndexUser) { buffer.minIndexUser++; } } - buffer.minIndex++; }, decrementMaxIndex: function decrementMaxIndex() { if (buffer.maxIndexUser !== null && buffer.maxIndex <= buffer.maxIndexUser) { buffer.maxIndexUser--; } - buffer.maxIndex--; }, getAbsMinIndex: function getAbsMinIndex() { if (buffer.minIndexUser !== null) { return Math.min(buffer.minIndexUser, buffer.minIndex); } - return buffer.minIndex; }, getAbsMaxIndex: function getAbsMaxIndex() { if (buffer.maxIndexUser !== null) { return Math.max(buffer.maxIndexUser, buffer.maxIndex); } - return buffer.maxIndex; }, effectiveHeight: function effectiveHeight(elements) { if (!elements.length) { return 0; } - var top = Number.MAX_VALUE; var bottom = Number.NEGATIVE_INFINITY; elements.forEach(function (wrapper) { @@ -679,42 +520,35 @@ function ScrollBuffer(elementRoutines, bufferSize, startIndex) { }, getFirstItem: function getFirstItem() { var list = buffer.getItems(); - if (!list.length) { return null; } - return list[0].item; }, getLastItem: function getLastItem() { var list = buffer.getItems(); - if (!list.length) { return null; } - return list[list.length - 1].item; } }); buffer.reset(startIndex); return buffer; } -// CONCATENATED MODULE: ./src/modules/padding.js +;// CONCATENATED MODULE: ./src/modules/padding.js +function padding_typeof(obj) { "@babel/helpers - typeof"; return padding_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, padding_typeof(obj); } function padding_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -function padding_defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } - -function padding_createClass(Constructor, protoProps, staticProps) { if (protoProps) padding_defineProperties(Constructor.prototype, protoProps); if (staticProps) padding_defineProperties(Constructor, staticProps); return Constructor; } - +function padding_defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, padding_toPropertyKey(descriptor.key), descriptor); } } +function padding_createClass(Constructor, protoProps, staticProps) { if (protoProps) padding_defineProperties(Constructor.prototype, protoProps); if (staticProps) padding_defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; } +function padding_toPropertyKey(arg) { var key = padding_toPrimitive(arg, "string"); return padding_typeof(key) === "symbol" ? key : String(key); } +function padding_toPrimitive(input, hint) { if (padding_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (padding_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); } // Can't just extend the Array, due to Babel does not support built-in classes extending // This solution was taken from https://stackoverflow.com/questions/46897414/es6-class-extends-array-workaround-for-es5-babel-transpile -var CacheProto = -/*#__PURE__*/ -function () { +var CacheProto = /*#__PURE__*/function () { function CacheProto() { padding_classCallCheck(this, CacheProto); } - padding_createClass(CacheProto, [{ key: "add", value: function add(item) { @@ -724,7 +558,6 @@ function () { return; } } - this.push({ index: item.scope.$index, height: item.element.outerHeight() @@ -738,14 +571,12 @@ function () { value: function remove(argument, _shiftTop) { var index = argument % 1 === 0 ? argument : argument.scope.$index; var shiftTop = argument % 1 === 0 ? _shiftTop : argument.shiftTop; - for (var i = this.length - 1; i >= 0; i--) { if (this[i].index === index) { this.splice(i, 1); break; } } - if (!shiftTop) { for (var _i = this.length - 1; _i >= 0; _i--) { if (this[_i].index > index) { @@ -760,71 +591,54 @@ function () { this.length = 0; } }]); - return CacheProto; }(); - function Cache() { var instance = []; instance.push.apply(instance, arguments); Object.setPrototypeOf(instance, Cache.prototype); return instance; } - Cache.prototype = Object.create(Array.prototype); Object.getOwnPropertyNames(CacheProto.prototype).forEach(function (methodName) { return Cache.prototype[methodName] = CacheProto.prototype[methodName]; }); - function generateElement(template) { if (template.nodeType !== Node.ELEMENT_NODE) { throw new Error('ui-scroll directive requires an Element node for templating the view'); } - var element; - switch (template.tagName.toLowerCase()) { case 'dl': throw new Error("ui-scroll directive does not support <".concat(template.tagName, "> as a repeating tag: ").concat(template.outerHTML)); - case 'tr': var table = angular.element('
'); element = table.find('tr'); break; - case 'li': element = angular.element('
  • '); break; - default: element = angular.element('
    '); } - return element; } - -var Padding = -/*#__PURE__*/ -function () { +var Padding = /*#__PURE__*/function () { function Padding(template) { padding_classCallCheck(this, Padding); - this.element = generateElement(template); this.cache = new Cache(); } - padding_createClass(Padding, [{ key: "height", value: function height() { return this.element.height.apply(this.element, arguments); } }]); - return Padding; }(); - -/* harmony default export */ var modules_padding = (Padding); -// CONCATENATED MODULE: ./src/modules/viewport.js +/* harmony default export */ const modules_padding = (Padding); +;// CONCATENATED MODULE: ./src/modules/viewport.js function Viewport(elementRoutines, buffer, element, viewportController, $rootScope, padding) { var topPadding = null; @@ -837,7 +651,6 @@ function Viewport(elementRoutines, buffer, element, viewportController, $rootSco 'overflow-y': 'auto', 'display': 'block' }); - function bufferPadding() { return viewport.outerHeight() * padding; // some extra space to initiate preload } @@ -858,11 +671,9 @@ function Viewport(elementRoutines, buffer, element, viewportController, $rootSco if (!container) { return true; } - if (container !== viewport) { viewport.css('height', window.getComputedStyle(container[0]).height); } - return viewport.height() > 0; }, bottomDataPos: function bottomDataPos() { @@ -894,19 +705,15 @@ function Viewport(elementRoutines, buffer, element, viewportController, $rootSco var overageHeight = 0; var itemHeight = 0; var emptySpaceHeight = viewport.bottomDataPos() - viewport.bottomVisiblePos() - bufferPadding(); - for (var i = buffer.length - 1; i >= 0; i--) { itemHeight = buffer[i].element.outerHeight(true); - if (overageHeight + itemHeight > emptySpaceHeight) { break; } - bottomPadding.cache.add(buffer[i]); overageHeight += itemHeight; overage++; } - if (overage > 0) { buffer.eof = false; buffer.remove(buffer.length - overage, buffer.length); @@ -923,19 +730,15 @@ function Viewport(elementRoutines, buffer, element, viewportController, $rootSco var overageHeight = 0; var itemHeight = 0; var emptySpaceHeight = viewport.topVisiblePos() - viewport.topDataPos() - bufferPadding(); - for (var i = 0; i < buffer.length; i++) { itemHeight = buffer[i].element.outerHeight(true); - if (overageHeight + itemHeight > emptySpaceHeight) { break; } - topPadding.cache.add(buffer[i]); overageHeight += itemHeight; overage++; } - if (overage > 0) { // we need to adjust top padding element before items are removed from top // to avoid strange behaviour of scroll bar during remove top items when we are at the very bottom @@ -948,14 +751,14 @@ function Viewport(elementRoutines, buffer, element, viewportController, $rootSco adjustPaddings: function adjustPaddings() { if (!buffer.length) { return; - } // precise heights calculation based on items that are in buffer or that were in buffer once - + } + // precise heights calculation based on items that are in buffer or that were in buffer once var visibleItemsHeight = buffer.reduce(function (summ, item) { return summ + item.element.outerHeight(true); }, 0); var topPaddingHeight = 0, - topCount = 0; + topCount = 0; topPadding.cache.forEach(function (item) { if (item.index < buffer.first) { topPaddingHeight += item.height; @@ -963,7 +766,7 @@ function Viewport(elementRoutines, buffer, element, viewportController, $rootSco } }); var bottomPaddingHeight = 0, - bottomCount = 0; + bottomCount = 0; bottomPadding.cache.forEach(function (item) { if (item.index >= buffer.next) { bottomPaddingHeight += item.height; @@ -971,13 +774,15 @@ function Viewport(elementRoutines, buffer, element, viewportController, $rootSco } }); var totalHeight = visibleItemsHeight + topPaddingHeight + bottomPaddingHeight; - var averageItemHeight = totalHeight / (topCount + bottomCount + buffer.length); // average heights calculation, items that have never been reached + var averageItemHeight = totalHeight / (topCount + bottomCount + buffer.length); + // average heights calculation, items that have never been reached var adjustTopPadding = buffer.minIndexUser !== null && buffer.minIndex > buffer.minIndexUser; var adjustBottomPadding = buffer.maxIndexUser !== null && buffer.maxIndex < buffer.maxIndexUser; var topPaddingHeightAdd = adjustTopPadding ? (buffer.minIndex - buffer.minIndexUser) * averageItemHeight : 0; - var bottomPaddingHeightAdd = adjustBottomPadding ? (buffer.maxIndexUser - buffer.maxIndex) * averageItemHeight : 0; // paddings combine adjustment + var bottomPaddingHeightAdd = adjustBottomPadding ? (buffer.maxIndexUser - buffer.maxIndex) * averageItemHeight : 0; + // paddings combine adjustment topPadding.height(topPaddingHeight + topPaddingHeightAdd); bottomPadding.height(bottomPaddingHeight + bottomPaddingHeightAdd); }, @@ -986,7 +791,6 @@ function Viewport(elementRoutines, buffer, element, viewportController, $rootSco if (buffer.minIndexUser !== null && buffer.minIndex > buffer.minIndexUser) { var diff = topPadding.height() - topPaddingHeightOld; viewport.scrollTop(viewport.scrollTop() + diff); - while ((diff -= viewport.scrollTop()) > 0) { bottomPadding.height(bottomPadding.height() + diff); viewport.scrollTop(viewport.scrollTop() + diff); @@ -997,15 +801,12 @@ function Viewport(elementRoutines, buffer, element, viewportController, $rootSco if (!updates.prepended.length) { return; } - var height = buffer.effectiveHeight(updates.prepended); var paddingHeight = topPadding.height() - height; - if (paddingHeight >= 0) { topPadding.height(paddingHeight); return; } - var position = viewport.scrollTop(); var newPosition = position - paddingHeight; viewport.synthetic = { @@ -1034,21 +835,17 @@ function Viewport(elementRoutines, buffer, element, viewportController, $rootSco }); return viewport; } -// CONCATENATED MODULE: ./src/modules/adapter.js +;// CONCATENATED MODULE: ./src/modules/adapter.js +function adapter_typeof(obj) { "@babel/helpers - typeof"; return adapter_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, adapter_typeof(obj); } function adapter_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } +function adapter_defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, adapter_toPropertyKey(descriptor.key), descriptor); } } +function adapter_createClass(Constructor, protoProps, staticProps) { if (protoProps) adapter_defineProperties(Constructor.prototype, protoProps); if (staticProps) adapter_defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; } +function adapter_toPropertyKey(arg) { var key = adapter_toPrimitive(arg, "string"); return adapter_typeof(key) === "symbol" ? key : String(key); } +function adapter_toPrimitive(input, hint) { if (adapter_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (adapter_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); } -function adapter_defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } - -function adapter_createClass(Constructor, protoProps, staticProps) { if (protoProps) adapter_defineProperties(Constructor.prototype, protoProps); if (staticProps) adapter_defineProperties(Constructor, staticProps); return Constructor; } - - - -var adapter_Adapter = -/*#__PURE__*/ -function () { +var Adapter = /*#__PURE__*/function () { function Adapter($scope, $parse, $attr, viewport, buffer, doAdjust, reload) { adapter_classCallCheck(this, Adapter); - this.$parse = $parse; this.$attr = $attr; this.viewport = viewport; @@ -1063,16 +860,13 @@ function () { this.assignAdapter($attr.adapter); this.generatePublicContext(); } - adapter_createClass(Adapter, [{ key: "assignAdapter", value: function assignAdapter(adapterAttr) { if (!adapterAttr || !(adapterAttr = adapterAttr.replace(/^\s+|\s+$/gm, ''))) { return; } - var adapterOnScope; - try { this.$parse(adapterAttr).assign(this.startScope, {}); adapterOnScope = this.$parse(adapterAttr)(this.startScope); @@ -1080,7 +874,6 @@ function () { error.message = "Angular ui-scroll Adapter assignment exception.\n" + "Can't parse \"".concat(adapterAttr, "\" expression.\n") + error.message; throw error; } - angular.extend(adapterOnScope, this.publicContext); this.publicContext = adapterOnScope; } @@ -1088,20 +881,17 @@ function () { key: "generatePublicContext", value: function generatePublicContext() { var _this = this; - // these methods will be accessible out of ui-scroll via user defined adapter var publicMethods = ['reload', 'applyUpdates', 'append', 'prepend', 'isBOF', 'isEOF', 'isEmpty']; - for (var i = publicMethods.length - 1; i >= 0; i--) { this.publicContext[publicMethods[i]] = this[publicMethods[i]].bind(this); - } // these read-only props will be accessible out of ui-scroll via user defined adapter - + } + // these read-only props will be accessible out of ui-scroll via user defined adapter var publicProps = ['isLoading', 'topVisible', 'topVisibleElement', 'topVisibleScope', 'bottomVisible', 'bottomVisibleElement', 'bottomVisibleScope']; - var _loop = function _loop(_i) { - var property = void 0, - attr = _this.$attr[publicProps[_i]]; + var property, + attr = _this.$attr[publicProps[_i]]; Object.defineProperty(_this, publicProps[_i], { get: function get() { return property; @@ -1109,21 +899,18 @@ function () { set: function set(value) { property = value; _this.publicContext[publicProps[_i]] = value; - if (attr) { _this.$parse(attr).assign(_this.startScope, value); } } }); }; - for (var _i = publicProps.length - 1; _i >= 0; _i--) { _loop(_i); - } // read-only immediately calculated public properties - + } + // read-only immediately calculated public properties var publicPropsImmediate = ['bufferFirst', 'bufferLast', 'bufferLength']; - var _loop2 = function _loop2(_i2) { Object.defineProperty(_this.publicContext, publicPropsImmediate[_i2], { get: function get() { @@ -1131,12 +918,11 @@ function () { } }); }; - for (var _i2 = publicPropsImmediate.length - 1; _i2 >= 0; _i2--) { _loop2(_i2); - } // non-read-only public property - + } + // non-read-only public property Object.defineProperty(this.publicContext, 'disabled', { get: function get() { return _this.disabled; @@ -1166,6 +952,21 @@ function () { value: function isEmpty() { return !this.buffer.length; } + }, { + key: "bufferLength", + get: function get() { + return this.buffer.getItems().length; + } + }, { + key: "bufferFirst", + get: function get() { + return this.buffer.getFirstItem(); + } + }, { + key: "bufferLast", + get: function get() { + return this.buffer.getLastItem(); + } }, { key: "append", value: function append(newItems) { @@ -1191,14 +992,12 @@ function () { } else { this.applyUpdatesIndex(arg1, arg2, arg3); } - this.doAdjust(); } }, { key: "applyUpdatesFunc", value: function applyUpdatesFunc(cb) { var _this2 = this; - var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; this.buffer.slice(0).forEach(function (wrapper) { // we need to do it on the buffer clone, because buffer content @@ -1210,47 +1009,41 @@ function () { key: "applyUpdatesIndex", value: function applyUpdatesIndex(index, newItems) { var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {}; - if (index % 1 !== 0) { throw new Error('applyUpdates - ' + index + ' is not a valid index (should be an integer)'); } + var _index = index - this.buffer.first; - var _index = index - this.buffer.first; // apply updates only within buffer - - + // apply updates only within buffer if (_index >= 0 && _index < this.buffer.length) { this.applyUpdate(this.buffer[_index], newItems, options); - } // out-of-buffer case: deletion may affect Paddings + } + // out-of-buffer case: deletion may affect Paddings else if (index >= this.buffer.getAbsMinIndex() && index <= this.buffer.getAbsMaxIndex()) { - if (angular.isArray(newItems) && !newItems.length) { - this.viewport.removeCacheItem(index, !options.immutableTop && index === this.buffer.minIndex); - - if (!options.immutableTop && index === this.buffer.getAbsMinIndex()) { - this.buffer.incrementMinIndex(); - } else { - this.buffer.decrementMaxIndex(); - } + if (angular.isArray(newItems) && !newItems.length) { + this.viewport.removeCacheItem(index, !options.immutableTop && index === this.buffer.minIndex); + if (!options.immutableTop && index === this.buffer.getAbsMinIndex()) { + this.buffer.incrementMinIndex(); + } else { + this.buffer.decrementMaxIndex(); } } + } } }, { key: "applyUpdate", value: function applyUpdate(wrapper, newItems) { var _this3 = this; - var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {}; - if (!angular.isArray(newItems)) { return; } - var position = this.buffer.indexOf(wrapper); - if (!newItems.reverse().some(function (newItem) { return newItem === wrapper.item; })) { - wrapper.op = OPERATIONS.REMOVE; // try to catch "first" edge case on remove - + wrapper.op = OPERATIONS.REMOVE; + // try to catch "first" edge case on remove if (!options.immutableTop && !newItems.length) { // this is the first item, or the previous one's part of the "shift-top" group if (position === 0 && this.buffer.bof || position !== 0 && this.buffer[position - 1].shiftTop) { @@ -1258,7 +1051,6 @@ function () { } } } - newItems.forEach(function (newItem) { if (newItem === wrapper.item) { position--; @@ -1272,73 +1064,49 @@ function () { key: "calculateProperties", value: function calculateProperties() { var rowTop = null, - topHeight = 0; + topHeight = 0; var topDone = false, - bottomDone = false; + bottomDone = false; var length = this.buffer.length; - for (var i = 0; i < length; i++) { var item = this.buffer[i]; var itemTop = item.element.offset().top; - if (rowTop !== itemTop) { // a new row condition var itemHeight = item.element.outerHeight(true); var top = this.viewport.topDataPos() + topHeight + itemHeight; - if (!topDone && top > this.viewport.topVisiblePos()) { topDone = true; this['topVisible'] = item.item; this['topVisibleElement'] = item.element; this['topVisibleScope'] = item.scope; } - if (!bottomDone && (top >= this.viewport.bottomVisiblePos() || i === length - 1 && this.isEOF())) { bottomDone = true; this['bottomVisible'] = item.item; this['bottomVisibleElement'] = item.element; this['bottomVisibleScope'] = item.scope; } - topHeight += itemHeight; } - rowTop = itemTop; - if (topDone && bottomDone) { break; } } } - }, { - key: "bufferLength", - get: function get() { - return this.buffer.getItems().length; - } - }, { - key: "bufferFirst", - get: function get() { - return this.buffer.getFirstItem(); - } - }, { - key: "bufferLast", - get: function get() { - return this.buffer.getLastItem(); - } }]); - return Adapter; }(); - -/* harmony default export */ var modules_adapter = (adapter_Adapter); -// CONCATENATED MODULE: ./src/ui-scroll.js +/* harmony default export */ const modules_adapter = (Adapter); +;// CONCATENATED MODULE: ./src/ui-scroll.js -angular.module('ui.scroll', []).constant('JQLiteExtras', jqLiteExtras_JQLiteExtras).run(['JQLiteExtras', function (JQLiteExtras) { +angular.module('ui.scroll', []).constant('JQLiteExtras', JQLiteExtras).run(['JQLiteExtras', function (JQLiteExtras) { var elt = angular.element; !(window.jQuery && elt.fn && elt.fn.jquery) ? new JQLiteExtras().registerFor(elt) : null; ElementRoutines.addCSSRules(); @@ -1347,7 +1115,6 @@ angular.module('ui.scroll', []).constant('JQLiteExtras', jqLiteExtras_JQLiteExtr restrict: 'A', controller: ['$scope', '$element', function (scope, element) { var _this = this; - this.container = element; this.viewport = element; this.scope = scope; @@ -1368,32 +1135,25 @@ angular.module('ui.scroll', []).constant('JQLiteExtras', jqLiteExtras_JQLiteExtr terminal: true, link: link }; - function link($scope, element, $attr, controllers, linker) { var match = $attr.uiScroll.match(/^\s*(\w+)\s+in\s+([(\w|\$)\.]+)\s*$/); - if (!match) { throw new Error('Expected uiScroll in form of \'_item_ in _datasource_\' but got \'' + $attr.uiScroll + '\''); } - function parseNumber(value, defaultValue, isFloat) { if (!isFloat) { value = value === null ? defaultValue : Math.floor(value); } - return isNaN(value) ? defaultValue : value; } - function parseNumericAttr(value, defaultValue, isFloat) { var result = $parse(value)($scope); return parseNumber(result, defaultValue, isFloat); } - function parseBooleanAttr(value, defaultValue) { var result = $parse(value)($scope); return typeof result === 'boolean' ? result : defaultValue; } - var BUFFER_MIN = 3; var BUFFER_DEFAULT = 10; var PADDING_MIN = 0.3; @@ -1411,46 +1171,36 @@ angular.module('ui.scroll', []).constant('JQLiteExtras', jqLiteExtras_JQLiteExtr var handleInertia = parseBooleanAttr($attr.handleInertia, HANDLE_INERTIA_DEFAULT); var startIndex = parseNumericAttr($attr.startIndex, START_INDEX_DEFAULT); var ridActual = 0; // current data revision id - var pending = []; var elementRoutines = new ElementRoutines($injector, $q); var buffer = new ScrollBuffer(elementRoutines, bufferSize, startIndex); var viewport = new Viewport(elementRoutines, buffer, element, viewportController, $rootScope, padding); var adapter = new modules_adapter($scope, $parse, $attr, viewport, buffer, doAdjust, reload); - if (viewportController) { viewportController.adapter = adapter; } - var isDatasourceValid = function isDatasourceValid() { return Object.prototype.toString.call(datasource) === '[object Object]' && typeof datasource.get === 'function'; }; - datasource = $parse(datasourceName)($scope); // try to get datasource on scope - if (!isDatasourceValid()) { datasource = $injector.get(datasourceName); // try to inject datasource as service - if (!isDatasourceValid()) { throw new Error(datasourceName + ' is not a valid datasource'); } } - var onRenderHandlers = []; - function onRenderHandlersRunner() { onRenderHandlers.forEach(function (handler) { return handler.run(); }); onRenderHandlers = []; } - function persistDatasourceIndex(datasource, propName) { - var getter; // need to postpone min/maxIndexUser processing if the view is empty - + var getter; + // need to postpone min/maxIndexUser processing if the view is empty if (angular.isNumber(datasource[propName])) { getter = datasource[propName]; - if (angular.isNumber(getter)) { onRenderHandlers = onRenderHandlers.filter(function (handler) { return handler.id !== propName; @@ -1464,29 +1214,23 @@ angular.module('ui.scroll', []).constant('JQLiteExtras', jqLiteExtras_JQLiteExtr } } } - function defineDatasourceIndex(datasource, propName, propUserName) { var descriptor = Object.getOwnPropertyDescriptor(datasource, propName); - if (descriptor && (descriptor.set || descriptor.get)) { return; } - var getter; persistDatasourceIndex(datasource, propName); Object.defineProperty(datasource, propName, { set: function set(value) { getter = value; - if (pending.length && !buffer.length) { persistDatasourceIndex(datasource, propName); return; } - buffer[propUserName] = value; var topPaddingHeightOld = viewport.topDataPos(); viewport.adjustPaddings(); - if (propName === 'minIndex') { viewport.onAfterMinIndexSet(topPaddingHeightOld); } @@ -1496,7 +1240,6 @@ angular.module('ui.scroll', []).constant('JQLiteExtras', jqLiteExtras_JQLiteExtr } }); } - defineDatasourceIndex(datasource, 'minIndex', 'minIndexUser'); defineDatasourceIndex(datasource, 'maxIndex', 'maxIndexUser'); var fetchNext = datasource.get.length !== 2 ? function (success) { @@ -1517,19 +1260,15 @@ angular.module('ui.scroll', []).constant('JQLiteExtras', jqLiteExtras_JQLiteExtr count: bufferSize }, success); }; - var initialize = function initialize() { var tryCount = 0; - if (!viewport.applyContainerStyle()) { var timer = $interval(function () { tryCount++; - if (viewport.applyContainerStyle()) { $interval.cancel(timer); doAdjust(); } - if (tryCount * VIEWPORT_POLLING_INTERVAL >= MAX_VIEWPORT_DELAY) { $interval.cancel(timer); throw Error("ui-scroll directive requires a viewport with non-zero height in ".concat(MAX_VIEWPORT_DELAY, "ms")); @@ -1539,6 +1278,7 @@ angular.module('ui.scroll', []).constant('JQLiteExtras', jqLiteExtras_JQLiteExtr doAdjust(); } }; + /** * Build padding elements * @@ -1546,13 +1286,11 @@ angular.module('ui.scroll', []).constant('JQLiteExtras', jqLiteExtras_JQLiteExtr * to prevent the directive scope from pollution a new scope is created and destroyed * right after the builder creation is completed */ - - linker(function (clone, scope) { - viewport.createPaddingElements(clone[0]); // we do not include the clone in the DOM. It means that the nested directives will not + viewport.createPaddingElements(clone[0]); + // we do not include the clone in the DOM. It means that the nested directives will not // be able to reach the parent directives, but in this case it is intentional because we // created the clone to access the template tag name - scope.$destroy(); clone.remove(); }); @@ -1562,41 +1300,35 @@ angular.module('ui.scroll', []).constant('JQLiteExtras', jqLiteExtras_JQLiteExtr }); viewport.on('mousewheel', wheelHandler); initialize(); + /* Private function definitions */ function isInvalid(rid) { return rid && rid !== ridActual || $scope.$$destroyed; } - function bindEvents() { viewport.on('resize', resizeAndScrollHandler); viewport.on('scroll', resizeAndScrollHandler); } - function unbindEvents() { viewport.off('resize', resizeAndScrollHandler); viewport.off('scroll', resizeAndScrollHandler); } - function reload() { unbindEvents(); viewport.resetTopPadding(); viewport.resetBottomPadding(); - if (arguments.length) { startIndex = parseNumber(arguments[0], START_INDEX_DEFAULT, false); } - buffer.reset(startIndex); persistDatasourceIndex(datasource, 'minIndex'); persistDatasourceIndex(datasource, 'maxIndex'); doAdjust(); } - function isElementVisible(wrapper) { return wrapper.element.height() && wrapper.element[0].offsetParent; } - function visibilityWatcher(wrapper) { if (isElementVisible(wrapper)) { buffer.forEach(function (item) { @@ -1605,7 +1337,6 @@ angular.module('ui.scroll', []).constant('JQLiteExtras', jqLiteExtras_JQLiteExtr delete item.unregisterVisibilityWatcher; } }); - if (!pending.length) { $timeout(function () { return doAdjust(); @@ -1613,16 +1344,13 @@ angular.module('ui.scroll', []).constant('JQLiteExtras', jqLiteExtras_JQLiteExtr } } } - function insertWrapperContent(wrapper, insertAfter) { createElement(wrapper, insertAfter, viewport.insertElement); - if (!isElementVisible(wrapper)) { wrapper.unregisterVisibilityWatcher = wrapper.scope.$watch(function () { return visibilityWatcher(wrapper); }); } - elementRoutines.hideElement(wrapper); // hide inserted elements before data binding } @@ -1634,11 +1362,10 @@ angular.module('ui.scroll', []).constant('JQLiteExtras', jqLiteExtras_JQLiteExtr wrapper.element = clone; wrapper.scope = scope; scope[itemName] = wrapper.item; - }); // ui-scroll-grid apply - + }); + // ui-scroll-grid apply if (adapter.transform) { var tdInitializer = wrapper.scope.uiScrollTdInitializer; - if (tdInitializer && tdInitializer.linking) { adapter.transform(wrapper.scope, wrapper.element); } else { @@ -1650,10 +1377,8 @@ angular.module('ui.scroll', []).constant('JQLiteExtras', jqLiteExtras_JQLiteExtr }; } } - return promises; } - function updateDOM() { var promises = []; var toBePrepended = []; @@ -1664,19 +1389,16 @@ angular.module('ui.scroll', []).constant('JQLiteExtras', jqLiteExtras_JQLiteExtr case OPERATIONS.PREPEND: toBePrepended.unshift(wrapper); break; - case OPERATIONS.APPEND: insertWrapperContent(wrapper, i); wrapper.op = OPERATIONS.NONE; inserted.push(wrapper); break; - case OPERATIONS.INSERT: promises = promises.concat(createElement(wrapper, i, viewport.insertElementAnimated)); wrapper.op = OPERATIONS.NONE; inserted.push(wrapper); break; - case OPERATIONS.REMOVE: toBeRemoved.push(wrapper); } @@ -1698,7 +1420,6 @@ angular.module('ui.scroll', []).constant('JQLiteExtras', jqLiteExtras_JQLiteExtr animated: promises }; } - function updatePaddings(rid, updates) { // schedule another doAdjust after animation completion if (updates.animated.length) { @@ -1710,7 +1431,6 @@ angular.module('ui.scroll', []).constant('JQLiteExtras', jqLiteExtras_JQLiteExtr viewport.adjustPaddings(); } } - function enqueueFetch(rid, updates) { if (viewport.shouldLoadBottom()) { if (!updates || buffer.effectiveHeight(updates.inserted) > 0) { @@ -1732,10 +1452,10 @@ angular.module('ui.scroll', []).constant('JQLiteExtras', jqLiteExtras_JQLiteExtr } } } - function processUpdates() { - var updates = updateDOM(); // We need the item bindings to be processed before we can do adjustments + var updates = updateDOM(); + // We need the item bindings to be processed before we can do adjustments !$scope.$$phase && !$rootScope.$$phase && $scope.$digest(); updates.inserted.forEach(function (w) { return elementRoutines.showElement(w); @@ -1745,36 +1465,28 @@ angular.module('ui.scroll', []).constant('JQLiteExtras', jqLiteExtras_JQLiteExtr }); return updates; } - function doAdjust(rid) { if (!rid) { // dismiss pending requests pending = []; rid = ++ridActual; } - var updates = processUpdates(); - if (isInvalid(rid)) { return; } - updatePaddings(rid, updates); enqueueFetch(rid); - if (!pending.length) { adapter.calculateProperties(); } } - function doAdjustAfterFetch(rid) { var updates = processUpdates(); viewport.onAfterPrepend(updates); - if (isInvalid(rid)) { return; } - updatePaddings(rid, updates); onRenderHandlersRunner(); enqueueFetch(rid, updates); @@ -1785,7 +1497,6 @@ angular.module('ui.scroll', []).constant('JQLiteExtras', jqLiteExtras_JQLiteExtr adapter.calculateProperties(); } } - function fetch(rid) { if (pending[0]) { // scrolling down @@ -1796,16 +1507,13 @@ angular.module('ui.scroll', []).constant('JQLiteExtras', jqLiteExtras_JQLiteExtr if (isInvalid(rid)) { return; } - if (result.length < bufferSize) { buffer.eof = true; } - if (result.length > 0) { viewport.clipTop(); buffer.append(result); } - doAdjustAfterFetch(rid); }); } @@ -1818,61 +1526,50 @@ angular.module('ui.scroll', []).constant('JQLiteExtras', jqLiteExtras_JQLiteExtr if (isInvalid(rid)) { return; } - if (result.length < bufferSize) { - buffer.bof = true; // log 'bof is reached' + buffer.bof = true; + // log 'bof is reached' } if (result.length > 0) { if (buffer.length) { viewport.clipBottom(); } - buffer.prepend(result); } - doAdjustAfterFetch(rid); }); } } } - function fixInertia() { if (!viewport.synthetic) { return; } - var oldPosition = viewport.synthetic.previous; var newPosition = viewport.synthetic.next; - if (viewport.scrollTop() !== newPosition) { requestAnimationFrame(function () { var position = viewport.scrollTop(); var diff = oldPosition - position; - if (diff > 0) { // inertia over synthetic viewport.scrollTop(newPosition - diff); } else { viewport.scrollTop(newPosition); } - viewport.synthetic = null; }); return true; } - viewport.synthetic = null; } - function resizeAndScrollHandler() { if (handleInertia && fixInertia()) { return; } - if (!$rootScope.$$phase && !adapter.isLoading && !adapter.disabled) { enqueueFetch(ridActual); - if (pending.length) { unbindEvents(); } else { @@ -1881,12 +1578,10 @@ angular.module('ui.scroll', []).constant('JQLiteExtras', jqLiteExtras_JQLiteExtr } } } - function wheelHandler(event) { if (!adapter.disabled) { var scrollTop = viewport[0].scrollTop; var yMax = viewport[0].scrollHeight - viewport[0].clientHeight; - if (scrollTop === 0 && !buffer.bof || scrollTop === yMax && !buffer.eof) { event.preventDefault(); } @@ -1894,7 +1589,6 @@ angular.module('ui.scroll', []).constant('JQLiteExtras', jqLiteExtras_JQLiteExtr } } }]); - -/***/ }) -/******/ ]); +/******/ })() +; //# sourceMappingURL=ui-scroll.js.map \ No newline at end of file diff --git a/dist/ui-scroll.js.map b/dist/ui-scroll.js.map index e7ab38f..36e64ed 100644 --- a/dist/ui-scroll.js.map +++ b/dist/ui-scroll.js.map @@ -1 +1 @@ -{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./src/modules/jqLiteExtras.js","webpack:///./src/modules/elementRoutines.js","webpack:///./src/modules/utils.js","webpack:///./src/modules/buffer.js","webpack:///./src/modules/padding.js","webpack:///./src/modules/viewport.js","webpack:///./src/modules/adapter.js","webpack:///./src/ui-scroll.js"],"names":["JQLiteExtras","element","convertToPx","css","getStyle","isWindow","angular","prototype","name","value","self","elem","nodeType","style","call","obj","document","location","alert","setInterval","scrollTo","direction","top","left","method","prop","preserve","isValueDefined","documentElement","window","getComputedStyle","parseFloat","currentStyle","result","rs","rsLeft","core_pnum","source","rnumnonpx","RegExp","test","runtimeStyle","pixelLeft","getMeasurements","measure","base","borderA","borderB","computedMarginA","computedMarginB","computedStyle","dirA","dirB","marginA","marginB","paddingA","paddingB","height","width","padding","border","margin","offsetWidth","offsetHeight","getWidthHeight","measurements","outer","outerfull","forEach","before","newElem","children","i","j","parent","ref","contents","prepend","length","after","Error","outerHTML","isNumber","outerHeight","option","outerWidth","offset","docElem","win","box","doc","ownerDocument","arguments","undefined","getBoundingClientRect","defaultView","parentWindow","pageYOffset","scrollTop","clientTop","pageXOffset","scrollLeft","clientLeft","key","hideClassToken","ElementRoutines","selector","rules","sheet","styleSheets","index","cssRules","err","insertRule","addRule","$injector","$q","$animate","has","get","isAngularVersionLessThen1_3","version","major","minor","wrapper","addClass","removeClass","newElement","previousElement","remove","scope","$destroy","insertElement","deferred","defer","enter","resolve","promise","removeElement","leave","then","OPERATIONS","PREPEND","APPEND","INSERT","REMOVE","NONE","ScrollBuffer","elementRoutines","bufferSize","startIndex","buffer","Object","create","Array","extend","size","reset","eof","bof","first","next","minIndex","maxIndex","minIndexUser","maxIndexUser","append","items","item","insert","Math","max","immutableTop","reverse","min","operation","shiftTop","op","splice","push","unshift","arg1","arg2","indexOf","getAbsMinIndex","incrementMinIndex","decrementMaxIndex","removeElementAnimated","getAbsMaxIndex","effectiveHeight","elements","Number","MAX_VALUE","bottom","NEGATIVE_INFINITY","offsetParent","getItems","filter","getFirstItem","list","getLastItem","CacheProto","$index","sort","a","b","argument","_shiftTop","Cache","instance","apply","setPrototypeOf","getOwnPropertyNames","methodName","generateElement","template","Node","ELEMENT_NODE","tagName","toLowerCase","table","find","Padding","cache","Viewport","viewportController","$rootScope","topPadding","bottomPadding","viewport","container","bufferPadding","getScope","createPaddingElements","applyContainerStyle","bottomDataPos","scrollHeight","topDataPos","bottomVisiblePos","topVisiblePos","e","sibling","insertElementAnimated","shouldLoadBottom","clipBottom","overage","overageHeight","itemHeight","emptySpaceHeight","add","adjustPaddings","shouldLoadTop","clipTop","visibleItemsHeight","reduce","summ","topPaddingHeight","topCount","bottomPaddingHeight","bottomCount","totalHeight","averageItemHeight","adjustTopPadding","adjustBottomPadding","topPaddingHeightAdd","bottomPaddingHeightAdd","onAfterMinIndexSet","topPaddingHeightOld","diff","onAfterPrepend","updates","prepended","paddingHeight","position","newPosition","synthetic","previous","resetTopPadding","clear","resetBottomPadding","removeCacheItem","removeItem","Adapter","$scope","$parse","$attr","doAdjust","reload","isLoading","disabled","viewportScope","startScope","$parent","publicContext","assignAdapter","adapter","generatePublicContext","adapterAttr","replace","adapterOnScope","assign","error","message","publicMethods","bind","publicProps","property","attr","defineProperty","set","publicPropsImmediate","newItems","options","arg3","applyUpdatesFunc","applyUpdatesIndex","cb","slice","applyUpdate","_index","isArray","some","newItem","rowTop","topHeight","topDone","bottomDone","itemTop","isEOF","module","constant","run","elt","jQuery","fn","jquery","registerFor","addCSSRules","directive","restrict","controller","child","console","$timeout","$interval","require","transclude","priority","terminal","link","controllers","linker","match","uiScroll","parseNumber","defaultValue","isFloat","floor","isNaN","parseNumericAttr","parseBooleanAttr","BUFFER_MIN","BUFFER_DEFAULT","PADDING_MIN","PADDING_DEFAULT","HANDLE_INERTIA_DEFAULT","START_INDEX_DEFAULT","MAX_VIEWPORT_DELAY","VIEWPORT_POLLING_INTERVAL","datasource","itemName","datasourceName","handleInertia","ridActual","pending","isDatasourceValid","toString","onRenderHandlers","onRenderHandlersRunner","handler","persistDatasourceIndex","propName","getter","id","defineDatasourceIndex","propUserName","descriptor","getOwnPropertyDescriptor","fetchNext","success","count","fetchPrevious","initialize","tryCount","timer","cancel","clone","$on","unbindEvents","off","wheelHandler","on","isInvalid","rid","$$destroyed","bindEvents","resizeAndScrollHandler","isElementVisible","visibilityWatcher","unregisterVisibilityWatcher","insertWrapperContent","insertAfter","createElement","$watch","hideElement","promises","transform","tdInitializer","uiScrollTdInitializer","linking","onLink","updateDOM","toBePrepended","toBeRemoved","inserted","concat","removed","animated","updatePaddings","all","enqueueFetch","loading","fetch","processUpdates","$$phase","$digest","w","showElement","calculateProperties","doAdjustAfterFetch","shift","fixInertia","oldPosition","requestAnimationFrame","event","yMax","clientHeight","preventDefault"],"mappings":";;;;;;;QAAA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;;QAEA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;;;QAGA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;QACA,0CAA0C,gCAAgC;QAC1E;QACA;;QAEA;QACA;QACA;QACA,wDAAwD,kBAAkB;QAC1E;QACA,iDAAiD,cAAc;QAC/D;;QAEA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA,yCAAyC,iCAAiC;QAC1E,gHAAgH,mBAAmB,EAAE;QACrI;QACA;;QAEA;QACA;QACA;QACA,2BAA2B,0BAA0B,EAAE;QACvD,iCAAiC,eAAe;QAChD;QACA;QACA;;QAEA;QACA,sDAAsD,+DAA+D;;QAErH;QACA;;;QAGA;QACA;;;;;;;;;;;;;;;;;;;;;;;;;;;AClFA;;;;;;;;;;IAWqBA,yB;;;;;;;;;gCAEPC,O,EAAS;AACnB,UAAIC,WAAJ,EAAiBC,GAAjB,EAAsBC,QAAtB,EAAgCC,QAAhC,CADmB,CAEnB;;AACAF,SAAG,GAAGG,OAAO,CAACL,OAAR,CAAgBM,SAAhB,CAA0BJ,GAAhC;;AAEAF,aAAO,CAACM,SAAR,CAAkBJ,GAAlB,GAAwB,UAAUK,IAAV,EAAgBC,KAAhB,EAAuB;AAC7C,YAAIC,IAAI,GAAG,IAAX;AACA,YAAIC,IAAI,GAAGD,IAAI,CAAC,CAAD,CAAf;;AACA,YAAI,EAAE,CAACC,IAAD,IAASA,IAAI,CAACC,QAAL,KAAkB,CAA3B,IAAgCD,IAAI,CAACC,QAAL,KAAkB,CAAlD,IAAuD,CAACD,IAAI,CAACE,KAA/D,CAAJ,EAA2E;AACzE,iBAAOV,GAAG,CAACW,IAAJ,CAASJ,IAAT,EAAeF,IAAf,EAAqBC,KAArB,CAAP;AACD;AACF,OAND,CALmB,CAanB;;;AACAJ,cAAQ,GAAG,kBAACU,GAAD;AAAA,eAASA,GAAG,IAAIA,GAAG,CAACC,QAAX,IAAuBD,GAAG,CAACE,QAA3B,IAAuCF,GAAG,CAACG,KAA3C,IAAoDH,GAAG,CAACI,WAAjE;AAAA,OAAX;;AAEA,eAASC,QAAT,CAAkBV,IAAlB,EAAwBW,SAAxB,EAAmCZ,KAAnC,EAA0C;AACxC,YAAIE,IAAI,GAAGD,IAAI,CAAC,CAAD,CAAf;;AADwC,iDAET;AAC7BY,aAAG,EAAE,CACH,WADG,EAEH,aAFG,EAGH,YAHG,CADwB;AAM7BC,cAAI,EAAE,CACJ,YADI,EAEJ,aAFI,EAGJ,WAHI;AANuB,UAW7BF,SAX6B,CAFS;AAAA,YAEnCG,MAFmC;AAAA,YAE3BC,IAF2B;AAAA,YAErBC,QAFqB;;AAexC,YAAMC,cAAc,GAAG,OAAOlB,KAAP,KAAiB,WAAxC;;AACA,YAAIJ,QAAQ,CAACM,IAAD,CAAZ,EAAoB;AAClB,cAAIgB,cAAJ,EAAoB;AAClB,mBAAOhB,IAAI,CAACS,QAAL,CAAcV,IAAI,CAACgB,QAAD,CAAJ,CAAeZ,IAAf,CAAoBJ,IAApB,CAAd,EAAyCD,KAAzC,CAAP;AACD;;AACD,iBAAQgB,IAAI,IAAId,IAAT,GAAiBA,IAAI,CAACc,IAAD,CAArB,GAA8Bd,IAAI,CAACK,QAAL,CAAcY,eAAd,CAA8BJ,MAA9B,CAArC;AACD,SALD,MAKO;AACL,cAAIG,cAAJ,EAAoB;AAClBhB,gBAAI,CAACa,MAAD,CAAJ,GAAef,KAAf;AACD;;AACD,iBAAOE,IAAI,CAACa,MAAD,CAAX;AACD;AACF;;AAED,UAAIK,MAAM,CAACC,gBAAX,EAA6B;AAC3B1B,gBAAQ,GAAG,kBAACO,IAAD;AAAA,iBAAUkB,MAAM,CAACC,gBAAP,CAAwBnB,IAAxB,EAA8B,IAA9B,CAAV;AAAA,SAAX;;AACAT,mBAAW,GAAG,qBAACS,IAAD,EAAOF,KAAP;AAAA,iBAAiBsB,UAAU,CAACtB,KAAD,CAA3B;AAAA,SAAd;AACD,OAHD,MAGO;AACLL,gBAAQ,GAAG,kBAACO,IAAD;AAAA,iBAAUA,IAAI,CAACqB,YAAf;AAAA,SAAX;;AACA9B,mBAAW,GAAG,qBAACS,IAAD,EAAOF,KAAP,EAAiB;AAC7B,cAAIc,IAAJ,EAAUU,MAAV,EAAkBC,EAAlB,EAAsBC,MAAtB,EAA8BtB,KAA9B;AACA,cAAIuB,SAAS,GAAG,sCAAsCC,MAAtD;AACA,cAAIC,SAAS,GAAG,IAAIC,MAAJ,CAAW,OAAOH,SAAP,GAAmB,iBAA9B,EAAiD,GAAjD,CAAhB;;AAEA,cAAI,CAACE,SAAS,CAACE,IAAV,CAAe/B,KAAf,CAAL,EAA4B;AAC1B,mBAAOsB,UAAU,CAACtB,KAAD,CAAjB;AACD,WAP4B,CAS7B;;;AACAI,eAAK,GAAGF,IAAI,CAACE,KAAb;AACAU,cAAI,GAAGV,KAAK,CAACU,IAAb;AACAW,YAAE,GAAGvB,IAAI,CAAC8B,YAAV;AACAN,gBAAM,GAAGD,EAAE,IAAIA,EAAE,CAACX,IAAlB;;AACA,cAAIW,EAAJ,EAAQ;AACNA,cAAE,CAACX,IAAH,GAAUV,KAAK,CAACU,IAAhB;AACD,WAhB4B,CAiB7B;;;AACAV,eAAK,CAACU,IAAN,GAAad,KAAb;AACAwB,gBAAM,GAAGpB,KAAK,CAAC6B,SAAf;AACA7B,eAAK,CAACU,IAAN,GAAaA,IAAb;;AACA,cAAIY,MAAJ,EAAY;AACVD,cAAE,CAACX,IAAH,GAAUY,MAAV;AACD;;AACD,iBAAOF,MAAP;AACD,SAzBD;AA0BD;;AAED,eAASU,eAAT,CAAyBhC,IAAzB,EAA+BiC,OAA/B,EAAwC;AACtC,YAAIC,IAAJ,EAAUC,OAAV,EAAmBC,OAAnB,EAA4BC,eAA5B,EAA6CC,eAA7C,EAA8DC,aAA9D,EAA6EC,IAA7E,EAAmFC,IAAnF,EAAyFC,OAAzF,EAAkGC,OAAlG,EAA2GC,QAA3G,EAAqHC,QAArH;;AAEA,YAAInD,QAAQ,CAACM,IAAD,CAAZ,EAAoB;AAClBkC,cAAI,GAAG7B,QAAQ,CAACY,eAAT,CAAyB;AAAC6B,kBAAM,EAAE,cAAT;AAAyBC,iBAAK,EAAE;AAAhC,YAA+Cd,OAA/C,CAAzB,CAAP;AAEA,iBAAO;AACLC,gBAAI,EAAEA,IADD;AAELc,mBAAO,EAAE,CAFJ;AAGLC,kBAAM,EAAE,CAHH;AAILC,kBAAM,EAAE;AAJH,WAAP;AAMD,SAZqC,CActC;;;AAdsC,mDAmBlC;AACFH,eAAK,EAAE,CACL/C,IAAI,CAACmD,WADA,EAEL,MAFK,EAGL,OAHK,CADL;AAMFL,gBAAM,EAAE,CACN9C,IAAI,CAACoD,YADC,EAEN,KAFM,EAGN,QAHM;AANN,UAWFnB,OAXE,CAnBkC;;AAgBpCC,YAhBoC;AAiBpCM,YAjBoC;AAkBpCC,YAlBoC;AAgCtCF,qBAAa,GAAG9C,QAAQ,CAACO,IAAD,CAAxB;AACA4C,gBAAQ,GAAGrD,WAAW,CAACS,IAAD,EAAOuC,aAAa,CAAC,YAAYC,IAAb,CAApB,CAAX,IAAsD,CAAjE;AACAK,gBAAQ,GAAGtD,WAAW,CAACS,IAAD,EAAOuC,aAAa,CAAC,YAAYE,IAAb,CAApB,CAAX,IAAsD,CAAjE;AACAN,eAAO,GAAG5C,WAAW,CAACS,IAAD,EAAOuC,aAAa,CAAC,WAAWC,IAAX,GAAkB,OAAnB,CAApB,CAAX,IAA+D,CAAzE;AACAJ,eAAO,GAAG7C,WAAW,CAACS,IAAD,EAAOuC,aAAa,CAAC,WAAWE,IAAX,GAAkB,OAAnB,CAApB,CAAX,IAA+D,CAAzE;AACAJ,uBAAe,GAAGE,aAAa,CAAC,WAAWC,IAAZ,CAA/B;AACAF,uBAAe,GAAGC,aAAa,CAAC,WAAWE,IAAZ,CAA/B,CAtCsC,CAwCtC;AACA;AACA;AACA;;AACAC,eAAO,GAAGnD,WAAW,CAACS,IAAD,EAAOqC,eAAP,CAAX,IAAsC,CAAhD;AACAM,eAAO,GAAGpD,WAAW,CAACS,IAAD,EAAOsC,eAAP,CAAX,IAAsC,CAAhD;AAEA,eAAO;AACLJ,cAAI,EAAEA,IADD;AAELc,iBAAO,EAAEJ,QAAQ,GAAGC,QAFf;AAGLI,gBAAM,EAAEd,OAAO,GAAGC,OAHb;AAILc,gBAAM,EAAER,OAAO,GAAGC;AAJb,SAAP;AAMD;;AAED,eAASU,cAAT,CAAwBrD,IAAxB,EAA8BU,SAA9B,EAAyCuB,OAAzC,EAAkD;AAChD,YAAIM,aAAJ,EAAmBjB,MAAnB;AAEA,YAAIgC,YAAY,GAAGtB,eAAe,CAAChC,IAAD,EAAOU,SAAP,CAAlC;;AAEA,YAAI4C,YAAY,CAACpB,IAAb,GAAoB,CAAxB,EAA2B;AACzB,iBAAO;AACLA,gBAAI,EAAEoB,YAAY,CAACpB,IAAb,GAAoBoB,YAAY,CAACN,OAAjC,GAA2CM,YAAY,CAACL,MADzD;AAELM,iBAAK,EAAED,YAAY,CAACpB,IAFf;AAGLsB,qBAAS,EAAEF,YAAY,CAACpB,IAAb,GAAoBoB,YAAY,CAACJ;AAHvC,YAILjB,OAJK,CAAP;AAKD,SAX+C,CAahD;;;AACAM,qBAAa,GAAG9C,QAAQ,CAACO,IAAD,CAAxB;AACAsB,cAAM,GAAGiB,aAAa,CAAC7B,SAAD,CAAtB;;AAEA,YAAIY,MAAM,GAAG,CAAT,IAAcA,MAAM,KAAK,IAA7B,EAAmC;AACjCA,gBAAM,GAAGtB,IAAI,CAACE,KAAL,CAAWQ,SAAX,KAAyB,CAAlC;AACD,SAnB+C,CAqBhD;;;AACAY,cAAM,GAAGF,UAAU,CAACE,MAAD,CAAV,IAAsB,CAA/B;AAEA,eAAO;AACLY,cAAI,EAAEZ,MAAM,GAAGgC,YAAY,CAACN,OAAtB,GAAgCM,YAAY,CAACL,MAD9C;AAELM,eAAK,EAAEjC,MAFF;AAGLkC,mBAAS,EAAElC,MAAM,GAAGgC,YAAY,CAACN,OAAtB,GAAgCM,YAAY,CAACL,MAA7C,GAAsDK,YAAY,CAACJ;AAHzE,UAILjB,OAJK,CAAP;AAKD,OAlKkB,CAoKnB;;;AACA,aAAOtC,OAAO,CAAC8D,OAAR,CAAgB;AACrBC,cADqB,kBACdC,OADc,EACL;AACd,cAAIC,QAAJ,EAAc5D,IAAd,EAAoB6D,CAApB,EAAuBC,CAAvB,EAA0BC,MAA1B,EAAkCC,GAAlC,EAAuCjE,IAAvC;AACAA,cAAI,GAAG,IAAP;AACAC,cAAI,GAAGD,IAAI,CAAC,CAAD,CAAX;AACAgE,gBAAM,GAAGhE,IAAI,CAACgE,MAAL,EAAT;AACAH,kBAAQ,GAAGG,MAAM,CAACE,QAAP,EAAX;;AACA,cAAIL,QAAQ,CAAC,CAAD,CAAR,KAAgB5D,IAApB,EAA0B;AACxB,mBAAO+D,MAAM,CAACG,OAAP,CAAeP,OAAf,CAAP;AACD,WAFD,MAEO;AACL,iBAAKE,CAAC,GAAGC,CAAC,GAAG,CAAR,EAAWE,GAAG,GAAGJ,QAAQ,CAACO,MAAT,GAAkB,CAAxC,EAA2C,KAAKH,GAAL,GAAWF,CAAC,IAAIE,GAAhB,GAAsBF,CAAC,IAAIE,GAAtE,EAA2EH,CAAC,GAAG,KAAKG,GAAL,GAAW,EAAEF,CAAb,GAAiB,EAAEA,CAAlG,EAAqG;AACnG,kBAAIF,QAAQ,CAACC,CAAD,CAAR,KAAgB7D,IAApB,EAA0B;AACxBL,uBAAO,CAACL,OAAR,CAAgBsE,QAAQ,CAACC,CAAC,GAAG,CAAL,CAAxB,EAAiCO,KAAjC,CAAuCT,OAAvC;AACA;AACD;AACF;;AACD,kBAAM,IAAIU,KAAJ,CAAU,2BAA2BrE,IAAI,CAACsE,SAA1C,CAAN;AACD;AACF,SAlBoB;AAmBrBxB,cAnBqB,kBAmBbhD,KAnBa,EAmBP;AACZ,cAAIC,IAAJ;AACAA,cAAI,GAAG,IAAP;;AACA,cAAI,OAAOD,KAAP,KAAiB,WAArB,EAAkC;AAChC,gBAAIH,OAAO,CAAC4E,QAAR,CAAiBzE,KAAjB,CAAJ,EAA6B;AAC3BA,mBAAK,GAAGA,KAAK,GAAG,IAAhB;AACD;;AACD,mBAAON,GAAG,CAACW,IAAJ,CAASJ,IAAT,EAAe,QAAf,EAAyBD,KAAzB,CAAP;AACD,WALD,MAKO;AACL,mBAAOuD,cAAc,CAAC,KAAK,CAAL,CAAD,EAAU,QAAV,EAAoB,MAApB,CAArB;AACD;AACF,SA9BoB;AA+BrBmB,mBA/BqB,uBA+BTC,MA/BS,EA+BD;AAClB,iBAAOpB,cAAc,CAAC,KAAK,CAAL,CAAD,EAAU,QAAV,EAAoBoB,MAAM,GAAG,WAAH,GAAiB,OAA3C,CAArB;AACD,SAjCoB;AAkCrBC,kBAlCqB,sBAkCVD,MAlCU,EAkCF;AACjB,iBAAOpB,cAAc,CAAC,KAAK,CAAL,CAAD,EAAU,OAAV,EAAmBoB,MAAM,GAAG,WAAH,GAAiB,OAA1C,CAArB;AACD,SApCoB;;AAsCrB;;;AAGAE,cAzCqB,kBAyCd7E,KAzCc,EAyCP;AACZ,cAAI8E,OAAJ,EAAaC,GAAb;AACA,cAAI9E,IAAI,GAAG,IAAX;AACA,cAAI+E,GAAG,GAAG;AACRnE,eAAG,EAAE,CADG;AAERC,gBAAI,EAAE;AAFE,WAAV;AAIA,cAAIZ,IAAI,GAAGD,IAAI,CAAC,CAAD,CAAf;AACA,cAAIgF,GAAG,GAAG/E,IAAI,IAAIA,IAAI,CAACgF,aAAvB;;AAEA,cAAIC,SAAS,CAACd,MAAd,EAAsB;AACpB,gBAAIrE,KAAK,KAAKoF,SAAd,EAAyB;AACvB,qBAAOnF,IAAP;AACD,aAHmB,CAIpB;;;AACA,kBAAM,IAAIsE,KAAJ,CAAU,yCAAV,CAAN;AACD;;AAED,cAAI,CAACU,GAAL,EAAU;AACR;AACD;;AAEDH,iBAAO,GAAGG,GAAG,CAAC9D,eAAd,CAtBY,CAwBZ;;AAEA,cAAIjB,IAAI,CAACmF,qBAAL,IAA8B,IAAlC,EAAwC;AACtCL,eAAG,GAAG9E,IAAI,CAACmF,qBAAL,EAAN;AACD;;AAEDN,aAAG,GAAGE,GAAG,CAACK,WAAJ,IAAmBL,GAAG,CAACM,YAA7B;AAEA,iBAAO;AACL1E,eAAG,EAAEmE,GAAG,CAACnE,GAAJ,IAAWkE,GAAG,CAACS,WAAJ,IAAmBV,OAAO,CAACW,SAAtC,KAAoDX,OAAO,CAACY,SAAR,IAAqB,CAAzE,CADA;AAEL5E,gBAAI,EAAEkE,GAAG,CAAClE,IAAJ,IAAYiE,GAAG,CAACY,WAAJ,IAAmBb,OAAO,CAACc,UAAvC,KAAsDd,OAAO,CAACe,UAAR,IAAsB,CAA5E;AAFD,WAAP;AAID,SA7EoB;AA8ErBJ,iBA9EqB,qBA8EXzF,KA9EW,EA8EJ;AACf,iBAAOW,QAAQ,CAAC,IAAD,EAAO,KAAP,EAAcX,KAAd,CAAf;AACD,SAhFoB;AAiFrB4F,kBAjFqB,sBAiFV5F,KAjFU,EAiFH;AAChB,iBAAOW,QAAQ,CAAC,IAAD,EAAO,MAAP,EAAeX,KAAf,CAAf;AACD;AAnFoB,OAAhB,EAoFJ,UAACA,KAAD,EAAQ8F,GAAR,EAAgB;AACjB,YAAI,CAACtG,OAAO,CAACM,SAAR,CAAkBgG,GAAlB,CAAL,EAA6B;AAC3B,iBAAOtG,OAAO,CAACM,SAAR,CAAkBgG,GAAlB,IAAyB9F,KAAhC;AACD;AACF,OAxFM,CAAP;AAyFD;;;;;;;;;;;;;;AC3QH,IAAM+F,cAAc,GAAG,mBAAvB;;IAEqBC,e;;;;;kCAEE;AACnB,UAAMC,QAAQ,GAAG,MAAMF,cAAvB;AACA,UAAMG,KAAK,GAAG,eAAd;AACA,UAAMC,KAAK,GAAG5F,QAAQ,CAAC6F,WAAT,CAAqB,CAArB,CAAd;AACA,UAAIC,KAAJ;;AACA,UAAI;AACFA,aAAK,GAAGF,KAAK,CAACG,QAAN,CAAejC,MAAvB;AACD,OAFD,CAEE,OAAOkC,GAAP,EAAY;AACZF,aAAK,GAAG,CAAR;AACD;;AACD,UAAG,gBAAgBF,KAAnB,EAA0B;AACxBA,aAAK,CAACK,UAAN,CAAiBP,QAAQ,GAAG,GAAX,GAAiBC,KAAjB,GAAyB,GAA1C,EAA+CG,KAA/C;AACD,OAFD,MAGK,IAAG,aAAaF,KAAhB,EAAuB;AAC1BA,aAAK,CAACM,OAAN,CAAcR,QAAd,EAAwBC,KAAxB,EAA+BG,KAA/B;AACD;AACF;;;AAED,2BAAYK,SAAZ,EAAuBC,EAAvB,EAA2B;AAAA;;AACzB,SAAKC,QAAL,GAAiBF,SAAS,CAACG,GAAV,IAAiBH,SAAS,CAACG,GAAV,CAAc,UAAd,CAAlB,GAA+CH,SAAS,CAACI,GAAV,CAAc,UAAd,CAA/C,GAA2E,IAA3F;AACA,SAAKC,2BAAL,GAAmClH,OAAO,CAACmH,OAAR,CAAgBC,KAAhB,KAA0B,CAA1B,IAA+BpH,OAAO,CAACmH,OAAR,CAAgBE,KAAhB,GAAwB,CAA1F;AACA,SAAKP,EAAL,GAAUA,EAAV;AACD;;;;gCAEWQ,O,EAAS;AACnBA,aAAO,CAAC3H,OAAR,CAAgB4H,QAAhB,CAAyBrB,cAAzB;AACD;;;gCAEWoB,O,EAAS;AACnBA,aAAO,CAAC3H,OAAR,CAAgB6H,WAAhB,CAA4BtB,cAA5B;AACD;;;kCAEauB,U,EAAYC,e,EAAiB;AACzCA,qBAAe,CAACjD,KAAhB,CAAsBgD,UAAtB;AACA,aAAO,EAAP;AACD;;;kCAEaH,O,EAAS;AACrBA,aAAO,CAAC3H,OAAR,CAAgBgI,MAAhB;AACAL,aAAO,CAACM,KAAR,CAAcC,QAAd;AACA,aAAO,EAAP;AACD;;;0CAEqBJ,U,EAAYC,e,EAAiB;AACjD,UAAI,CAAC,KAAKX,QAAV,EAAoB;AAClB,eAAO,KAAKe,aAAL,CAAmBL,UAAnB,EAA+BC,eAA/B,CAAP;AACD;;AAED,UAAI,KAAKR,2BAAT,EAAsC;AACpC,YAAMa,QAAQ,GAAG,KAAKjB,EAAL,CAAQkB,KAAR,EAAjB,CADoC,CAEpC;;AACA,aAAKjB,QAAL,CAAckB,KAAd,CAAoBR,UAApB,EAAgC,IAAhC,EAAsCC,eAAtC,EAAuD;AAAA,iBAAMK,QAAQ,CAACG,OAAT,EAAN;AAAA,SAAvD;AAEA,eAAO,CAACH,QAAQ,CAACI,OAAV,CAAP;AACD,OAXgD,CAajD;;;AACA,aAAO,CAAC,KAAKpB,QAAL,CAAckB,KAAd,CAAoBR,UAApB,EAAgC,IAAhC,EAAsCC,eAAtC,CAAD,CAAP;AACD;;;0CAEqBJ,O,EAAS;AAC7B,UAAI,CAAC,KAAKP,QAAV,EAAoB;AAClB,eAAO,KAAKqB,aAAL,CAAmBd,OAAnB,CAAP;AACD;;AAED,UAAI,KAAKJ,2BAAT,EAAsC;AACpC,YAAMa,QAAQ,GAAG,KAAKjB,EAAL,CAAQkB,KAAR,EAAjB;AACA,aAAKjB,QAAL,CAAcsB,KAAd,CAAoBf,OAAO,CAAC3H,OAA5B,EAAqC,YAAM;AACzC2H,iBAAO,CAACM,KAAR,CAAcC,QAAd;AACA,iBAAOE,QAAQ,CAACG,OAAT,EAAP;AACD,SAHD;AAKA,eAAO,CAACH,QAAQ,CAACI,OAAV,CAAP;AACD;;AAED,aAAO,CAAE,KAAKpB,QAAL,CAAcsB,KAAd,CAAoBf,OAAO,CAAC3H,OAA5B,CAAD,CAAuC2I,IAAvC,CAA4C;AAAA,eAAMhB,OAAO,CAACM,KAAR,CAAcC,QAAd,EAAN;AAAA,OAA5C,CAAD,CAAP;AACD;;;;;;;;AChFI,IAAMU,UAAU,GAAG;AACxBC,SAAO,EAAE,SADe;AAExBC,QAAM,EAAE,QAFgB;AAGxBC,QAAM,EAAE,QAHgB;AAIxBC,QAAM,EAAE,QAJgB;AAKxBC,MAAI,EAAE;AALkB,CAAnB,C;;ACAP;AAEe,SAASC,YAAT,CAAsBC,eAAtB,EAAuCC,UAAvC,EAAmDC,UAAnD,EAA+D;AAC5E,MAAMC,MAAM,GAAGC,MAAM,CAACC,MAAP,CAAcC,KAAK,CAACnJ,SAApB,CAAf;AAEAD,SAAO,CAACqJ,MAAR,CAAeJ,MAAf,EAAuB;AACrBK,QAAI,EAAEP,UADe;AAGrBQ,SAHqB,iBAGfP,UAHe,EAGH;AAChBC,YAAM,CAACtB,MAAP,CAAc,CAAd,EAAiBsB,MAAM,CAACzE,MAAxB;AACAyE,YAAM,CAACO,GAAP,GAAa,KAAb;AACAP,YAAM,CAACQ,GAAP,GAAa,KAAb;AACAR,YAAM,CAACS,KAAP,GAAeV,UAAf;AACAC,YAAM,CAACU,IAAP,GAAcX,UAAd;AACAC,YAAM,CAACW,QAAP,GAAkBZ,UAAlB;AACAC,YAAM,CAACY,QAAP,GAAkBb,UAAlB;AACAC,YAAM,CAACa,YAAP,GAAsB,IAAtB;AACAb,YAAM,CAACc,YAAP,GAAsB,IAAtB;AACD,KAboB;AAerBC,UAfqB,kBAedC,KAfc,EAeP;AACZA,WAAK,CAACnG,OAAN,CAAc,UAACoG,IAAD,EAAU;AACtB,UAAEjB,MAAM,CAACU,IAAT;AACAV,cAAM,CAACkB,MAAP,CAAc5B,UAAU,CAACE,MAAzB,EAAiCyB,IAAjC;AACD,OAHD;AAIAjB,YAAM,CAACY,QAAP,GAAkBZ,MAAM,CAACO,GAAP,GAAaP,MAAM,CAACU,IAAP,GAAc,CAA3B,GAA+BS,IAAI,CAACC,GAAL,CAASpB,MAAM,CAACU,IAAP,GAAc,CAAvB,EAA0BV,MAAM,CAACY,QAAjC,CAAjD;AACD,KArBoB;AAuBrBtF,WAvBqB,mBAuBb0F,KAvBa,EAuBNK,YAvBM,EAuBQ;AAC3BL,WAAK,CAACM,OAAN,GAAgBzG,OAAhB,CAAwB,UAACoG,IAAD,EAAU;AAChC,YAAII,YAAJ,EAAkB;AAChB,YAAErB,MAAM,CAACU,IAAT;AACD,SAFD,MAGK;AACH,YAAEV,MAAM,CAACS,KAAT;AACD;;AACDT,cAAM,CAACkB,MAAP,CAAc5B,UAAU,CAACC,OAAzB,EAAkC0B,IAAlC;AACD,OARD;AASAjB,YAAM,CAACW,QAAP,GAAkBX,MAAM,CAACQ,GAAP,GAAaR,MAAM,CAACW,QAAP,GAAkBX,MAAM,CAACS,KAAtC,GAA8CU,IAAI,CAACI,GAAL,CAASvB,MAAM,CAACS,KAAhB,EAAuBT,MAAM,CAACW,QAA9B,CAAhE;AACD,KAlCoB;;AAoCrB;;;;;;AAMAO,UA1CqB,kBA0CdM,SA1Cc,EA0CHP,IA1CG,EA0CGQ,QA1CH,EA0Ca;AAChC,UAAMpD,OAAO,GAAG;AACd4C,YAAI,EAAEA;AADQ,OAAhB;;AAIA,UAAIO,SAAS,GAAG,CAAZ,KAAkB,CAAtB,EAAyB;AAAE;AACzBnD,eAAO,CAACqD,EAAR,GAAapC,UAAU,CAACG,MAAxB;AACAO,cAAM,CAAC2B,MAAP,CAAcH,SAAd,EAAyB,CAAzB,EAA4BnD,OAA5B;;AACA,YAAIoD,QAAJ,EAAc;AACZzB,gBAAM,CAACS,KAAP;AACD,SAFD,MAGK;AACHT,gBAAM,CAACU,IAAP;AACD;AACF,OATD,MASO;AACLrC,eAAO,CAACqD,EAAR,GAAaF,SAAb;;AACA,gBAAQA,SAAR;AACE,eAAKlC,UAAU,CAACE,MAAhB;AACEQ,kBAAM,CAAC4B,IAAP,CAAYvD,OAAZ;AACA;;AACF,eAAKiB,UAAU,CAACC,OAAhB;AACES,kBAAM,CAAC6B,OAAP,CAAexD,OAAf;AACA;AANJ;AAQD;AACF,KAnEoB;AAqErB;AACAK,UAtEqB,kBAsEdoD,IAtEc,EAsERC,IAtEQ,EAsEF;AACjB,UAAIhL,OAAO,CAAC4E,QAAR,CAAiBmG,IAAjB,CAAJ,EAA4B;AAC1B;AACA,aAAK,IAAI7G,CAAC,GAAG6G,IAAb,EAAmB7G,CAAC,GAAG8G,IAAvB,EAA6B9G,CAAC,EAA9B,EAAkC;AAChC4E,yBAAe,CAACV,aAAhB,CAA8Ba,MAAM,CAAC/E,CAAD,CAApC;AACD;;AACD,eAAO+E,MAAM,CAAC2B,MAAP,CAAcG,IAAd,EAAoBC,IAAI,GAAGD,IAA3B,CAAP;AACD,OAPgB,CAQjB;;;AACA9B,YAAM,CAAC2B,MAAP,CAAc3B,MAAM,CAACgC,OAAP,CAAeF,IAAf,CAAd,EAAoC,CAApC;;AACA,UAAIA,IAAI,CAACL,QAAL,IAAiBzB,MAAM,CAACS,KAAP,KAAiB,KAAKwB,cAAL,EAAtC,EAA6D;AAC3D,aAAKC,iBAAL;AACD,OAFD,MAGK;AACH,aAAKC,iBAAL;AACD;;AACD,UAAIL,IAAI,CAACL,QAAT,EAAmB;AACjBzB,cAAM,CAACS,KAAP;AACD,OAFD,MAGK;AACHT,cAAM,CAACU,IAAP;AACD;;AACD,UAAI,CAACV,MAAM,CAACzE,MAAZ,EAAoB;AAClByE,cAAM,CAACW,QAAP,GAAkBQ,IAAI,CAACI,GAAL,CAASvB,MAAM,CAACY,QAAhB,EAA0BZ,MAAM,CAACW,QAAjC,CAAlB;AACD;;AAED,aAAOd,eAAe,CAACuC,qBAAhB,CAAsCN,IAAtC,CAAP;AACD,KAjGoB;AAmGrBI,qBAnGqB,+BAmGD;AAClB,UAAIlC,MAAM,CAACa,YAAP,KAAwB,IAA5B,EAAkC;AAChC,YAAIb,MAAM,CAACW,QAAP,GAAkBX,MAAM,CAACa,YAA7B,EAA2C;AACzCb,gBAAM,CAACa,YAAP;AACA;AACD;;AACD,YAAIb,MAAM,CAACW,QAAP,KAAoBX,MAAM,CAACa,YAA/B,EAA6C;AAC3Cb,gBAAM,CAACa,YAAP;AACD;AACF;;AACDb,YAAM,CAACW,QAAP;AACD,KA9GoB;AAgHrBwB,qBAhHqB,+BAgHD;AAClB,UAAInC,MAAM,CAACc,YAAP,KAAwB,IAAxB,IAAgCd,MAAM,CAACY,QAAP,IAAmBZ,MAAM,CAACc,YAA9D,EAA4E;AAC1Ed,cAAM,CAACc,YAAP;AACD;;AACDd,YAAM,CAACY,QAAP;AACD,KArHoB;AAuHrBqB,kBAvHqB,4BAuHJ;AACf,UAAIjC,MAAM,CAACa,YAAP,KAAwB,IAA5B,EAAkC;AAChC,eAAOM,IAAI,CAACI,GAAL,CAASvB,MAAM,CAACa,YAAhB,EAA8Bb,MAAM,CAACW,QAArC,CAAP;AACD;;AACD,aAAOX,MAAM,CAACW,QAAd;AACD,KA5HoB;AA8HrB0B,kBA9HqB,4BA8HJ;AACf,UAAIrC,MAAM,CAACc,YAAP,KAAwB,IAA5B,EAAkC;AAChC,eAAOK,IAAI,CAACC,GAAL,CAASpB,MAAM,CAACc,YAAhB,EAA8Bd,MAAM,CAACY,QAArC,CAAP;AACD;;AACD,aAAOZ,MAAM,CAACY,QAAd;AACD,KAnIoB;AAqIrB0B,mBArIqB,2BAqILC,QArIK,EAqIK;AACxB,UAAI,CAACA,QAAQ,CAAChH,MAAd,EAAsB;AACpB,eAAO,CAAP;AACD;;AACD,UAAIxD,GAAG,GAAGyK,MAAM,CAACC,SAAjB;AACA,UAAIC,MAAM,GAAGF,MAAM,CAACG,iBAApB;AACAJ,cAAQ,CAAC1H,OAAT,CAAiB,UAACwD,OAAD,EAAa;AAC5B,YAAIA,OAAO,CAAC3H,OAAR,CAAgB,CAAhB,EAAmBkM,YAAvB,EAAqC;AACnC;AACA7K,aAAG,GAAGoJ,IAAI,CAACI,GAAL,CAASxJ,GAAT,EAAcsG,OAAO,CAAC3H,OAAR,CAAgBqF,MAAhB,GAAyBhE,GAAvC,CAAN;AACA2K,gBAAM,GAAGvB,IAAI,CAACC,GAAL,CAASsB,MAAT,EAAiBrE,OAAO,CAAC3H,OAAR,CAAgBqF,MAAhB,GAAyBhE,GAAzB,GAA+BsG,OAAO,CAAC3H,OAAR,CAAgBkF,WAAhB,CAA4B,IAA5B,CAAhD,CAAT;AACD;AACF,OAND;AAOA,aAAOuF,IAAI,CAACC,GAAL,CAAS,CAAT,EAAYsB,MAAM,GAAG3K,GAArB,CAAP;AACD,KAnJoB;AAqJrB8K,YArJqB,sBAqJV;AACT,aAAO7C,MAAM,CAAC8C,MAAP,CAAc,UAAA7B,IAAI;AAAA,eAAIA,IAAI,CAACS,EAAL,KAAYpC,UAAU,CAACK,IAA3B;AAAA,OAAlB,CAAP;AACD,KAvJoB;AAyJrBoD,gBAzJqB,0BAyJN;AACb,UAAMC,IAAI,GAAGhD,MAAM,CAAC6C,QAAP,EAAb;;AACA,UAAI,CAACG,IAAI,CAACzH,MAAV,EAAkB;AAChB,eAAO,IAAP;AACD;;AACD,aAAOyH,IAAI,CAAC,CAAD,CAAJ,CAAQ/B,IAAf;AACD,KA/JoB;AAiKrBgC,eAjKqB,yBAiKP;AACZ,UAAMD,IAAI,GAAGhD,MAAM,CAAC6C,QAAP,EAAb;;AACA,UAAI,CAACG,IAAI,CAACzH,MAAV,EAAkB;AAChB,eAAO,IAAP;AACD;;AACD,aAAOyH,IAAI,CAACA,IAAI,CAACzH,MAAL,GAAc,CAAf,CAAJ,CAAsB0F,IAA7B;AACD;AAvKoB,GAAvB;AA2KAjB,QAAM,CAACM,KAAP,CAAaP,UAAb;AAEA,SAAOC,MAAP;AACD,C;;;;;;;;ACnLD;AACA;IACMkD,U;;;;;;;;;wBACAjC,I,EAAM;AACR,WAAK,IAAIhG,CAAC,GAAG,KAAKM,MAAL,GAAc,CAA3B,EAA8BN,CAAC,IAAI,CAAnC,EAAsCA,CAAC,EAAvC,EAA2C;AACzC,YAAI,KAAKA,CAAL,EAAQsC,KAAR,KAAkB0D,IAAI,CAACtC,KAAL,CAAWwE,MAAjC,EAAyC;AACvC,eAAKlI,CAAL,EAAQf,MAAR,GAAiB+G,IAAI,CAACvK,OAAL,CAAakF,WAAb,EAAjB;AACA;AACD;AACF;;AACD,WAAKgG,IAAL,CAAU;AACRrE,aAAK,EAAE0D,IAAI,CAACtC,KAAL,CAAWwE,MADV;AAERjJ,cAAM,EAAE+G,IAAI,CAACvK,OAAL,CAAakF,WAAb;AAFA,OAAV;AAIA,WAAKwH,IAAL,CAAU,UAACC,CAAD,EAAIC,CAAJ;AAAA,eAAYD,CAAC,CAAC9F,KAAF,GAAU+F,CAAC,CAAC/F,KAAb,GAAsB,CAAC,CAAvB,GAA6B8F,CAAC,CAAC9F,KAAF,GAAU+F,CAAC,CAAC/F,KAAb,GAAsB,CAAtB,GAA0B,CAAjE;AAAA,OAAV;AACD;;;2BAEMgG,Q,EAAUC,S,EAAW;AAC1B,UAAMjG,KAAK,GAAGgG,QAAQ,GAAG,CAAX,KAAiB,CAAjB,GAAqBA,QAArB,GAAgCA,QAAQ,CAAC5E,KAAT,CAAewE,MAA7D;AACA,UAAM1B,QAAQ,GAAG8B,QAAQ,GAAG,CAAX,KAAiB,CAAjB,GAAqBC,SAArB,GAAiCD,QAAQ,CAAC9B,QAA3D;;AACA,WAAK,IAAIxG,CAAC,GAAG,KAAKM,MAAL,GAAc,CAA3B,EAA8BN,CAAC,IAAI,CAAnC,EAAsCA,CAAC,EAAvC,EAA2C;AACzC,YAAI,KAAKA,CAAL,EAAQsC,KAAR,KAAkBA,KAAtB,EAA6B;AAC3B,eAAKoE,MAAL,CAAY1G,CAAZ,EAAe,CAAf;AACA;AACD;AACF;;AACD,UAAI,CAACwG,QAAL,EAAe;AACb,aAAK,IAAIxG,EAAC,GAAG,KAAKM,MAAL,GAAc,CAA3B,EAA8BN,EAAC,IAAI,CAAnC,EAAsCA,EAAC,EAAvC,EAA2C;AACzC,cAAI,KAAKA,EAAL,EAAQsC,KAAR,GAAgBA,KAApB,EAA2B;AACzB,iBAAKtC,EAAL,EAAQsC,KAAR;AACD;AACF;AACF;AACF;;;4BAEO;AACN,WAAKhC,MAAL,GAAc,CAAd;AACD;;;;;;AAGH,SAASkI,KAAT,GAAiB;AACf,MAAMC,QAAQ,GAAG,EAAjB;AACAA,UAAQ,CAAC9B,IAAT,CAAc+B,KAAd,CAAoBD,QAApB,EAA8BrH,SAA9B;AACA4D,QAAM,CAAC2D,cAAP,CAAsBF,QAAtB,EAAgCD,KAAK,CAACzM,SAAtC;AACA,SAAO0M,QAAP;AACD;;AACDD,KAAK,CAACzM,SAAN,GAAkBiJ,MAAM,CAACC,MAAP,CAAcC,KAAK,CAACnJ,SAApB,CAAlB;AACAiJ,MAAM,CAAC4D,mBAAP,CAA2BX,UAAU,CAAClM,SAAtC,EAAiD6D,OAAjD,CAAyD,UAAAiJ,UAAU;AAAA,SACjEL,KAAK,CAACzM,SAAN,CAAgB8M,UAAhB,IAA8BZ,UAAU,CAAClM,SAAX,CAAqB8M,UAArB,CADmC;AAAA,CAAnE;;AAIA,SAASC,eAAT,CAAyBC,QAAzB,EAAmC;AACjC,MAAIA,QAAQ,CAAC3M,QAAT,KAAsB4M,IAAI,CAACC,YAA/B,EAA6C;AAC3C,UAAM,IAAIzI,KAAJ,CAAU,sEAAV,CAAN;AACD;;AACD,MAAI/E,OAAJ;;AACA,UAAQsN,QAAQ,CAACG,OAAT,CAAiBC,WAAjB,EAAR;AACE,SAAK,IAAL;AACE,YAAM,IAAI3I,KAAJ,iDAAmDuI,QAAQ,CAACG,OAA5D,mCAA4FH,QAAQ,CAACtI,SAArG,EAAN;;AACF,SAAK,IAAL;AACE,UAAI2I,KAAK,GAAGtN,OAAO,CAACL,OAAR,CAAgB,8CAAhB,CAAZ;AACAA,aAAO,GAAG2N,KAAK,CAACC,IAAN,CAAW,IAAX,CAAV;AACA;;AACF,SAAK,IAAL;AACE5N,aAAO,GAAGK,OAAO,CAACL,OAAR,CAAgB,WAAhB,CAAV;AACA;;AACF;AACEA,aAAO,GAAGK,OAAO,CAACL,OAAR,CAAgB,aAAhB,CAAV;AAXJ;;AAaA,SAAOA,OAAP;AACD;;IAEK6N,O;;;AACJ,mBAAYP,QAAZ,EAAsB;AAAA;;AACpB,SAAKtN,OAAL,GAAeqN,eAAe,CAACC,QAAD,CAA9B;AACA,SAAKQ,KAAL,GAAa,IAAIf,KAAJ,EAAb;AACD;;;;6BAEQ;AACP,aAAO,KAAK/M,OAAL,CAAawD,MAAb,CAAoByJ,KAApB,CAA0B,KAAKjN,OAA/B,EAAwC2F,SAAxC,CAAP;AACD;;;;;;AAGYkI,2DAAf,E;;ACnFA;AAEe,SAASE,QAAT,CAAkB5E,eAAlB,EAAmCG,MAAnC,EAA2CtJ,OAA3C,EAAoDgO,kBAApD,EAAwEC,UAAxE,EAAoFvK,OAApF,EAA6F;AAC1G,MAAIwK,UAAU,GAAG,IAAjB;AACA,MAAIC,aAAa,GAAG,IAApB;AACA,MAAMC,QAAQ,GAAGJ,kBAAkB,IAAIA,kBAAkB,CAACI,QAAzC,GAAoDJ,kBAAkB,CAACI,QAAvE,GAAkF/N,OAAO,CAACL,OAAR,CAAgB4B,MAAhB,CAAnG;AACA,MAAMyM,SAAS,GAAGL,kBAAkB,IAAIA,kBAAkB,CAACK,SAAzC,GAAqDL,kBAAkB,CAACK,SAAxE,GAAoFzI,SAAtG;AACA,MAAMqC,KAAK,GAAG+F,kBAAkB,IAAIA,kBAAkB,CAAC/F,KAAzC,GAAiD+F,kBAAkB,CAAC/F,KAApE,GAA4EgG,UAA1F;AAEAG,UAAQ,CAAClO,GAAT,CAAa;AACX,uBAAmB,MADR;AAEX,kBAAc,MAFH;AAGX,eAAW;AAHA,GAAb;;AAMA,WAASoO,aAAT,GAAyB;AACvB,WAAOF,QAAQ,CAAClJ,WAAT,KAAyBxB,OAAhC,CADuB,CACkB;AAC1C;;AAEDrD,SAAO,CAACqJ,MAAR,CAAe0E,QAAf,EAAyB;AACvBG,YADuB,sBACZ;AACT,aAAOtG,KAAP;AACD,KAHsB;AAKvBuG,yBALuB,iCAKDlB,QALC,EAKS;AAC9BY,gBAAU,GAAG,IAAIL,eAAJ,CAAYP,QAAZ,CAAb;AACAa,mBAAa,GAAG,IAAIN,eAAJ,CAAYP,QAAZ,CAAhB;AACAtN,aAAO,CAACoE,MAAR,CAAe8J,UAAU,CAAClO,OAA1B;AACAA,aAAO,CAAC8E,KAAR,CAAcqJ,aAAa,CAACnO,OAA5B;AACAkO,gBAAU,CAAC1K,MAAX,CAAkB,CAAlB;AACA2K,mBAAa,CAAC3K,MAAd,CAAqB,CAArB;AACD,KAZsB;AAcvBiL,uBAduB,iCAcD;AACpB,UAAI,CAACJ,SAAL,EAAgB;AACd,eAAO,IAAP;AACD;;AACD,UAAIA,SAAS,KAAKD,QAAlB,EAA4B;AAC1BA,gBAAQ,CAAClO,GAAT,CAAa,QAAb,EAAuB0B,MAAM,CAACC,gBAAP,CAAwBwM,SAAS,CAAC,CAAD,CAAjC,EAAsC7K,MAA7D;AACD;;AACD,aAAO4K,QAAQ,CAAC5K,MAAT,KAAoB,CAA3B;AACD,KAtBsB;AAwBvBkL,iBAxBuB,2BAwBP;AACd,UAAIC,YAAY,GAAGP,QAAQ,CAAC,CAAD,CAAR,CAAYO,YAA/B;AACAA,kBAAY,GAAGA,YAAY,IAAI,IAAhB,GAAuBA,YAAvB,GAAsCP,QAAQ,CAAC,CAAD,CAAR,CAAYrN,QAAZ,CAAqBY,eAArB,CAAqCgN,YAA1F;AACA,aAAOA,YAAY,GAAGR,aAAa,CAAC3K,MAAd,EAAtB;AACD,KA5BsB;AA8BvBoL,cA9BuB,wBA8BV;AACX,aAAOV,UAAU,CAAC1K,MAAX,EAAP;AACD,KAhCsB;AAkCvBqL,oBAlCuB,8BAkCJ;AACjB,aAAOT,QAAQ,CAACnI,SAAT,KAAuBmI,QAAQ,CAAClJ,WAAT,EAA9B;AACD,KApCsB;AAsCvB4J,iBAtCuB,2BAsCP;AACd,aAAOV,QAAQ,CAACnI,SAAT,EAAP;AACD,KAxCsB;AA0CvBkC,iBA1CuB,yBA0CT4G,CA1CS,EA0CNC,OA1CM,EA0CG;AACxB,aAAO7F,eAAe,CAAChB,aAAhB,CAA8B4G,CAA9B,EAAiCC,OAAO,IAAId,UAAU,CAAClO,OAAvD,CAAP;AACD,KA5CsB;AA8CvBiP,yBA9CuB,iCA8CDF,CA9CC,EA8CEC,OA9CF,EA8CW;AAChC,aAAO7F,eAAe,CAAC8F,qBAAhB,CAAsCF,CAAtC,EAAyCC,OAAO,IAAId,UAAU,CAAClO,OAA/D,CAAP;AACD,KAhDsB;AAkDvBkP,oBAlDuB,8BAkDJ;AACjB,aAAO,CAAC5F,MAAM,CAACO,GAAR,IAAeuE,QAAQ,CAACM,aAAT,KAA2BN,QAAQ,CAACS,gBAAT,KAA8BP,aAAa,EAA5F;AACD,KApDsB;AAsDvBa,cAtDuB,wBAsDV;AACX;AACA,UAAIC,OAAO,GAAG,CAAd;AACA,UAAIC,aAAa,GAAG,CAApB;AACA,UAAIC,UAAU,GAAG,CAAjB;AACA,UAAIC,gBAAgB,GAAGnB,QAAQ,CAACM,aAAT,KAA2BN,QAAQ,CAACS,gBAAT,EAA3B,GAAyDP,aAAa,EAA7F;;AAEA,WAAK,IAAI/J,CAAC,GAAG+E,MAAM,CAACzE,MAAP,GAAgB,CAA7B,EAAgCN,CAAC,IAAI,CAArC,EAAwCA,CAAC,EAAzC,EAA6C;AAC3C+K,kBAAU,GAAGhG,MAAM,CAAC/E,CAAD,CAAN,CAAUvE,OAAV,CAAkBkF,WAAlB,CAA8B,IAA9B,CAAb;;AACA,YAAImK,aAAa,GAAGC,UAAhB,GAA6BC,gBAAjC,EAAmD;AACjD;AACD;;AACDpB,qBAAa,CAACL,KAAd,CAAoB0B,GAApB,CAAwBlG,MAAM,CAAC/E,CAAD,CAA9B;AACA8K,qBAAa,IAAIC,UAAjB;AACAF,eAAO;AACR;;AAED,UAAIA,OAAO,GAAG,CAAd,EAAiB;AACf9F,cAAM,CAACO,GAAP,GAAa,KAAb;AACAP,cAAM,CAACtB,MAAP,CAAcsB,MAAM,CAACzE,MAAP,GAAgBuK,OAA9B,EAAuC9F,MAAM,CAACzE,MAA9C;AACAyE,cAAM,CAACU,IAAP,IAAeoF,OAAf;AACAhB,gBAAQ,CAACqB,cAAT;AACD;AACF,KA7EsB;AA+EvBC,iBA/EuB,2BA+EP;AACd,aAAO,CAACpG,MAAM,CAACQ,GAAR,IAAgBsE,QAAQ,CAACQ,UAAT,KAAwBR,QAAQ,CAACU,aAAT,KAA2BR,aAAa,EAAvF;AACD,KAjFsB;AAmFvBqB,WAnFuB,qBAmFb;AACR;AACA,UAAIP,OAAO,GAAG,CAAd;AACA,UAAIC,aAAa,GAAG,CAApB;AACA,UAAIC,UAAU,GAAG,CAAjB;AACA,UAAIC,gBAAgB,GAAGnB,QAAQ,CAACU,aAAT,KAA2BV,QAAQ,CAACQ,UAAT,EAA3B,GAAmDN,aAAa,EAAvF;;AAEA,WAAK,IAAI/J,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG+E,MAAM,CAACzE,MAA3B,EAAmCN,CAAC,EAApC,EAAwC;AACtC+K,kBAAU,GAAGhG,MAAM,CAAC/E,CAAD,CAAN,CAAUvE,OAAV,CAAkBkF,WAAlB,CAA8B,IAA9B,CAAb;;AACA,YAAImK,aAAa,GAAGC,UAAhB,GAA6BC,gBAAjC,EAAmD;AACjD;AACD;;AACDrB,kBAAU,CAACJ,KAAX,CAAiB0B,GAAjB,CAAqBlG,MAAM,CAAC/E,CAAD,CAA3B;AACA8K,qBAAa,IAAIC,UAAjB;AACAF,eAAO;AACR;;AAED,UAAIA,OAAO,GAAG,CAAd,EAAiB;AACf;AACA;AACAlB,kBAAU,CAAC1K,MAAX,CAAkB0K,UAAU,CAAC1K,MAAX,KAAsB6L,aAAxC;AACA/F,cAAM,CAACQ,GAAP,GAAa,KAAb;AACAR,cAAM,CAACtB,MAAP,CAAc,CAAd,EAAiBoH,OAAjB;AACA9F,cAAM,CAACS,KAAP,IAAgBqF,OAAhB;AACD;AACF,KA5GsB;AA8GvBK,kBA9GuB,4BA8GN;AACf,UAAI,CAACnG,MAAM,CAACzE,MAAZ,EAAoB;AAClB;AACD,OAHc,CAKf;;;AACA,UAAM+K,kBAAkB,GAAGtG,MAAM,CAACuG,MAAP,CAAc,UAACC,IAAD,EAAOvF,IAAP;AAAA,eAAgBuF,IAAI,GAAGvF,IAAI,CAACvK,OAAL,CAAakF,WAAb,CAAyB,IAAzB,CAAvB;AAAA,OAAd,EAAqE,CAArE,CAA3B;AAEA,UAAI6K,gBAAgB,GAAG,CAAvB;AAAA,UAA0BC,QAAQ,GAAG,CAArC;AACA9B,gBAAU,CAACJ,KAAX,CAAiB3J,OAAjB,CAAyB,UAAAoG,IAAI,EAAI;AAC/B,YAAIA,IAAI,CAAC1D,KAAL,GAAayC,MAAM,CAACS,KAAxB,EAA+B;AAC7BgG,0BAAgB,IAAIxF,IAAI,CAAC/G,MAAzB;AACAwM,kBAAQ;AACT;AACF,OALD;AAOA,UAAIC,mBAAmB,GAAG,CAA1B;AAAA,UAA6BC,WAAW,GAAG,CAA3C;AACA/B,mBAAa,CAACL,KAAd,CAAoB3J,OAApB,CAA4B,UAAAoG,IAAI,EAAI;AAClC,YAAIA,IAAI,CAAC1D,KAAL,IAAcyC,MAAM,CAACU,IAAzB,EAA+B;AAC7BiG,6BAAmB,IAAI1F,IAAI,CAAC/G,MAA5B;AACA0M,qBAAW;AACZ;AACF,OALD;AAOA,UAAMC,WAAW,GAAGP,kBAAkB,GAAGG,gBAArB,GAAwCE,mBAA5D;AACA,UAAMG,iBAAiB,GAAGD,WAAW,IAAIH,QAAQ,GAAGE,WAAX,GAAyB5G,MAAM,CAACzE,MAApC,CAArC,CAzBe,CA2Bf;;AACA,UAAIwL,gBAAgB,GAAG/G,MAAM,CAACa,YAAP,KAAwB,IAAxB,IAAgCb,MAAM,CAACW,QAAP,GAAkBX,MAAM,CAACa,YAAhF;AACA,UAAImG,mBAAmB,GAAGhH,MAAM,CAACc,YAAP,KAAwB,IAAxB,IAAgCd,MAAM,CAACY,QAAP,GAAkBZ,MAAM,CAACc,YAAnF;AACA,UAAImG,mBAAmB,GAAGF,gBAAgB,GAAG,CAAC/G,MAAM,CAACW,QAAP,GAAkBX,MAAM,CAACa,YAA1B,IAA0CiG,iBAA7C,GAAiE,CAA3G;AACA,UAAII,sBAAsB,GAAGF,mBAAmB,GAAG,CAAChH,MAAM,CAACc,YAAP,GAAsBd,MAAM,CAACY,QAA9B,IAA0CkG,iBAA7C,GAAiE,CAAjH,CA/Be,CAiCf;;AACAlC,gBAAU,CAAC1K,MAAX,CAAkBuM,gBAAgB,GAAGQ,mBAArC;AACApC,mBAAa,CAAC3K,MAAd,CAAqByM,mBAAmB,GAAGO,sBAA3C;AACD,KAlJsB;AAoJvBC,sBApJuB,8BAoJJC,mBApJI,EAoJiB;AACtC;AACA,UAAIpH,MAAM,CAACa,YAAP,KAAwB,IAAxB,IAAgCb,MAAM,CAACW,QAAP,GAAkBX,MAAM,CAACa,YAA7D,EAA2E;AACzE,YAAIwG,IAAI,GAAGzC,UAAU,CAAC1K,MAAX,KAAsBkN,mBAAjC;AACAtC,gBAAQ,CAACnI,SAAT,CAAmBmI,QAAQ,CAACnI,SAAT,KAAuB0K,IAA1C;;AACA,eAAM,CAACA,IAAI,IAAIvC,QAAQ,CAACnI,SAAT,EAAT,IAAiC,CAAvC,EAA0C;AACxCkI,uBAAa,CAAC3K,MAAd,CAAqB2K,aAAa,CAAC3K,MAAd,KAAyBmN,IAA9C;AACAvC,kBAAQ,CAACnI,SAAT,CAAmBmI,QAAQ,CAACnI,SAAT,KAAuB0K,IAA1C;AACD;AACF;AACF,KA9JsB;AAgKvBC,kBAhKuB,0BAgKRC,OAhKQ,EAgKC;AACtB,UAAI,CAACA,OAAO,CAACC,SAAR,CAAkBjM,MAAvB,EAA+B;AAC7B;AACD;;AACD,UAAMrB,MAAM,GAAG8F,MAAM,CAACsC,eAAP,CAAuBiF,OAAO,CAACC,SAA/B,CAAf;AACA,UAAMC,aAAa,GAAG7C,UAAU,CAAC1K,MAAX,KAAsBA,MAA5C;;AACA,UAAIuN,aAAa,IAAI,CAArB,EAAwB;AACtB7C,kBAAU,CAAC1K,MAAX,CAAkBuN,aAAlB;AACA;AACD;;AACD,UAAMC,QAAQ,GAAG5C,QAAQ,CAACnI,SAAT,EAAjB;AACA,UAAMgL,WAAW,GAAGD,QAAQ,GAAGD,aAA/B;AACA3C,cAAQ,CAAC8C,SAAT,GAAqB;AAAEC,gBAAQ,EAAEH,QAAZ;AAAsBhH,YAAI,EAAEiH;AAA5B,OAArB;AACA/C,gBAAU,CAAC1K,MAAX,CAAkB,CAAlB;AACA4K,cAAQ,CAACnI,SAAT,CAAmBgL,WAAnB;AACD,KA/KsB;AAiLvBG,mBAjLuB,6BAiLL;AAChBlD,gBAAU,CAAC1K,MAAX,CAAkB,CAAlB;AACA0K,gBAAU,CAACJ,KAAX,CAAiBuD,KAAjB;AACD,KApLsB;AAsLvBC,sBAtLuB,gCAsLF;AACnBnD,mBAAa,CAAC3K,MAAd,CAAqB,CAArB;AACA2K,mBAAa,CAACL,KAAd,CAAoBuD,KAApB;AACD,KAzLsB;AA2LvBE,mBA3LuB,2BA2LPhH,IA3LO,EA2LDQ,QA3LC,EA2LS;AAC9BmD,gBAAU,CAACJ,KAAX,CAAiB9F,MAAjB,CAAwBuC,IAAxB,EAA8BQ,QAA9B;AACAoD,mBAAa,CAACL,KAAd,CAAoB9F,MAApB,CAA2BuC,IAA3B,EAAiCQ,QAAjC;AACD,KA9LsB;AAgMvByG,cAhMuB,sBAgMZjH,IAhMY,EAgMN;AACf,WAAKgH,eAAL,CAAqBhH,IAArB;AACA,aAAOjB,MAAM,CAACtB,MAAP,CAAcuC,IAAd,CAAP;AACD;AAnMsB,GAAzB;AAsMA,SAAO6D,QAAP;AACD,C;;;;;;;;AC1ND;;IAEMqD,e;;;AAEJ,mBAAYC,MAAZ,EAAoBC,MAApB,EAA4BC,KAA5B,EAAmCxD,QAAnC,EAA6C9E,MAA7C,EAAqDuI,QAArD,EAA+DC,MAA/D,EAAuE;AAAA;;AACrE,SAAKH,MAAL,GAAcA,MAAd;AACA,SAAKC,KAAL,GAAaA,KAAb;AACA,SAAKxD,QAAL,GAAgBA,QAAhB;AACA,SAAK9E,MAAL,GAAcA,MAAd;AAEA,SAAKuI,QAAL,GAAgBA,QAAhB;AACA,SAAKC,MAAL,GAAcA,MAAd;AAEA,SAAKC,SAAL,GAAiB,KAAjB;AACA,SAAKC,QAAL,GAAgB,KAAhB;AAEA,QAAMC,aAAa,GAAG7D,QAAQ,CAACG,QAAT,EAAtB;AACA,SAAK2D,UAAL,GAAkBD,aAAa,CAACE,OAAd,GAAwBF,aAAxB,GAAwCP,MAA1D;AAEA,SAAKU,aAAL,GAAqB,EAArB;AACA,SAAKC,aAAL,CAAmBT,KAAK,CAACU,OAAzB;AACA,SAAKC,qBAAL;AACD;;;;kCAEaC,W,EAAa;AACzB,UAAI,CAACA,WAAD,IAAgB,EAAEA,WAAW,GAAGA,WAAW,CAACC,OAAZ,CAAoB,aAApB,EAAmC,EAAnC,CAAhB,CAApB,EAA6E;AAC3E;AACD;;AACD,UAAIC,cAAJ;;AAEA,UAAI;AACF,aAAKf,MAAL,CAAYa,WAAZ,EAAyBG,MAAzB,CAAgC,KAAKT,UAArC,EAAiD,EAAjD;AACAQ,sBAAc,GAAG,KAAKf,MAAL,CAAYa,WAAZ,EAAyB,KAAKN,UAA9B,CAAjB;AACD,OAHD,CAIA,OAAOU,KAAP,EAAc;AACZA,aAAK,CAACC,OAAN,GAAgB,8EACEL,WADF,wBAEdI,KAAK,CAACC,OAFR;AAGA,cAAMD,KAAN;AACD;;AAEDvS,aAAO,CAACqJ,MAAR,CAAegJ,cAAf,EAA+B,KAAKN,aAApC;AACA,WAAKA,aAAL,GAAqBM,cAArB;AACD;;;4CAEuB;AAAA;;AACtB;AACA,UAAMI,aAAa,GAAG,CAAC,QAAD,EAAW,cAAX,EAA2B,QAA3B,EAAqC,SAArC,EAAgD,OAAhD,EAAyD,OAAzD,EAAkE,SAAlE,CAAtB;;AACA,WAAK,IAAIvO,CAAC,GAAGuO,aAAa,CAACjO,MAAd,GAAuB,CAApC,EAAuCN,CAAC,IAAI,CAA5C,EAA+CA,CAAC,EAAhD,EAAoD;AAClD,aAAK6N,aAAL,CAAmBU,aAAa,CAACvO,CAAD,CAAhC,IAAuC,KAAKuO,aAAa,CAACvO,CAAD,CAAlB,EAAuBwO,IAAvB,CAA4B,IAA5B,CAAvC;AACD,OALqB,CAOtB;;;AACA,UAAMC,WAAW,GAAG,CAAC,WAAD,EAAc,YAAd,EAA4B,mBAA5B,EAAiD,iBAAjD,EAAoE,eAApE,EAAqF,sBAArF,EAA6G,oBAA7G,CAApB;;AARsB,iCASbzO,EATa;AAUpB,YAAI0O,QAAQ,SAAZ;AAAA,YAAcC,IAAI,GAAG,KAAI,CAACtB,KAAL,CAAWoB,WAAW,CAACzO,EAAD,CAAtB,CAArB;AACAgF,cAAM,CAAC4J,cAAP,CAAsB,KAAtB,EAA4BH,WAAW,CAACzO,EAAD,CAAvC,EAA4C;AAC1C+C,aAAG,EAAE;AAAA,mBAAM2L,QAAN;AAAA,WADqC;AAE1CG,aAAG,EAAE,aAAC5S,KAAD,EAAW;AACdyS,oBAAQ,GAAGzS,KAAX;AACA,iBAAI,CAAC4R,aAAL,CAAmBY,WAAW,CAACzO,EAAD,CAA9B,IAAqC/D,KAArC;;AACA,gBAAI0S,IAAJ,EAAU;AACR,mBAAI,CAACvB,MAAL,CAAYuB,IAAZ,EAAkBP,MAAlB,CAAyB,KAAI,CAACT,UAA9B,EAA0C1R,KAA1C;AACD;AACF;AARyC,SAA5C;AAXoB;;AAStB,WAAK,IAAI+D,EAAC,GAAGyO,WAAW,CAACnO,MAAZ,GAAqB,CAAlC,EAAqCN,EAAC,IAAI,CAA1C,EAA6CA,EAAC,EAA9C,EAAkD;AAAA,cAAzCA,EAAyC;AAYjD,OArBqB,CAuBtB;;;AACA,UAAM8O,oBAAoB,GAAG,CAAC,aAAD,EAAgB,YAAhB,EAA8B,cAA9B,CAA7B;;AAxBsB,mCAyBb9O,GAzBa;AA0BpBgF,cAAM,CAAC4J,cAAP,CAAsB,KAAI,CAACf,aAA3B,EAA0CiB,oBAAoB,CAAC9O,GAAD,CAA9D,EAAmE;AACjE+C,aAAG,EAAE;AAAA,mBAAM,KAAI,CAAC+L,oBAAoB,CAAC9O,GAAD,CAArB,CAAV;AAAA;AAD4D,SAAnE;AA1BoB;;AAyBtB,WAAK,IAAIA,GAAC,GAAG8O,oBAAoB,CAACxO,MAArB,GAA8B,CAA3C,EAA8CN,GAAC,IAAI,CAAnD,EAAsDA,GAAC,EAAvD,EAA2D;AAAA,eAAlDA,GAAkD;AAI1D,OA7BqB,CA+BtB;;;AACAgF,YAAM,CAAC4J,cAAP,CAAsB,KAAKf,aAA3B,EAA0C,UAA1C,EAAsD;AACpD9K,WAAG,EAAE;AAAA,iBAAM,KAAI,CAAC0K,QAAX;AAAA,SAD+C;AAEpDoB,WAAG,EAAE,aAAC5S,KAAD;AAAA,iBAAY,EAAE,KAAI,CAACwR,QAAL,GAAgBxR,KAAlB,CAAD,GAA6B,KAAI,CAACqR,QAAL,EAA7B,GAA+C,IAA1D;AAAA;AAF+C,OAAtD;AAID;;;4BAEOrR,K,EAAO;AACb,WAAKuR,SAAL,GAAiBvR,KAAjB;AACD;;;4BAEO;AACN,aAAO,KAAK8I,MAAL,CAAYQ,GAAnB;AACD;;;4BAEO;AACN,aAAO,KAAKR,MAAL,CAAYO,GAAnB;AACD;;;8BAES;AACR,aAAO,CAAC,KAAKP,MAAL,CAAYzE,MAApB;AACD;;;2BAcMyO,Q,EAAU;AACf,WAAKhK,MAAL,CAAYe,MAAZ,CAAmBiJ,QAAnB;AACA,WAAKzB,QAAL;AACA,WAAKzD,QAAL,CAAcuB,OAAd;AACA,WAAKvB,QAAL,CAAce,UAAd;AACD;;;4BAEOmE,Q,EAAwB;AAAA,UAAdC,OAAc,uEAAJ,EAAI;AAC9B,WAAKjK,MAAL,CAAY1E,OAAZ,CAAoB0O,QAApB,EAA8BC,OAAO,CAAC5I,YAAtC;AACA,WAAKkH,QAAL;AACA,WAAKzD,QAAL,CAAcuB,OAAd;AACA,WAAKvB,QAAL,CAAce,UAAd;AACD;;;iCAEY/D,I,EAAMC,I,EAAMmI,I,EAAM;AAC7B,UAAI,OAAOpI,IAAP,KAAgB,UAApB,EAAgC;AAC9B,aAAKqI,gBAAL,CAAsBrI,IAAtB,EAA4BC,IAA5B;AACD,OAFD,MAEO;AACL,aAAKqI,iBAAL,CAAuBtI,IAAvB,EAA6BC,IAA7B,EAAmCmI,IAAnC;AACD;;AACD,WAAK3B,QAAL;AACD;;;qCAEgB8B,E,EAAkB;AAAA;;AAAA,UAAdJ,OAAc,uEAAJ,EAAI;AACjC,WAAKjK,MAAL,CAAYsK,KAAZ,CAAkB,CAAlB,EAAqBzP,OAArB,CAA6B,UAACwD,OAAD,EAAa;AACxC;AACA;AACA,cAAI,CAACkM,WAAL,CAAiBlM,OAAjB,EAA0BgM,EAAE,CAAChM,OAAO,CAAC4C,IAAT,EAAe5C,OAAO,CAACM,KAAvB,EAA8BN,OAAO,CAAC3H,OAAtC,CAA5B,EAA4EuT,OAA5E;AACD,OAJD;AAKD;;;sCAEiB1M,K,EAAOyM,Q,EAAwB;AAAA,UAAdC,OAAc,uEAAJ,EAAI;;AAC/C,UAAI1M,KAAK,GAAG,CAAR,KAAc,CAAlB,EAAqB;AACnB,cAAM,IAAI9B,KAAJ,CAAU,oBAAoB8B,KAApB,GAA4B,8CAAtC,CAAN;AACD;;AACD,UAAMiN,MAAM,GAAGjN,KAAK,GAAG,KAAKyC,MAAL,CAAYS,KAAnC,CAJ+C,CAM/C;;;AACA,UAAI+J,MAAM,IAAI,CAAV,IAAeA,MAAM,GAAG,KAAKxK,MAAL,CAAYzE,MAAxC,EAAgD;AAC9C,aAAKgP,WAAL,CAAiB,KAAKvK,MAAL,CAAYwK,MAAZ,CAAjB,EAAsCR,QAAtC,EAAgDC,OAAhD;AACD,OAFD,CAGA;AAHA,WAIK,IAAG1M,KAAK,IAAI,KAAKyC,MAAL,CAAYiC,cAAZ,EAAT,IAAyC1E,KAAK,IAAI,KAAKyC,MAAL,CAAYqC,cAAZ,EAArD,EAAmF;AACtF,cAAGtL,OAAO,CAAC0T,OAAR,CAAgBT,QAAhB,KAA6B,CAACA,QAAQ,CAACzO,MAA1C,EAAkD;AAChD,iBAAKuJ,QAAL,CAAcmD,eAAd,CAA8B1K,KAA9B,EAAqC,CAAC0M,OAAO,CAAC5I,YAAT,IAAyB9D,KAAK,KAAK,KAAKyC,MAAL,CAAYW,QAApF;;AACA,gBAAI,CAACsJ,OAAO,CAAC5I,YAAT,IAAyB9D,KAAK,KAAK,KAAKyC,MAAL,CAAYiC,cAAZ,EAAvC,EAAqE;AACnE,mBAAKjC,MAAL,CAAYkC,iBAAZ;AACD,aAFD,MAGK;AACH,mBAAKlC,MAAL,CAAYmC,iBAAZ;AACD;AACF;AACF;AACF;;;gCAEW9D,O,EAAS2L,Q,EAAwB;AAAA;;AAAA,UAAdC,OAAc,uEAAJ,EAAI;;AAC3C,UAAI,CAAClT,OAAO,CAAC0T,OAAR,CAAgBT,QAAhB,CAAL,EAAgC;AAC9B;AACD;;AACD,UAAItC,QAAQ,GAAG,KAAK1H,MAAL,CAAYgC,OAAZ,CAAoB3D,OAApB,CAAf;;AACA,UAAI,CAAC2L,QAAQ,CAAC1I,OAAT,GAAmBoJ,IAAnB,CAAwB,UAAAC,OAAO;AAAA,eAAIA,OAAO,KAAKtM,OAAO,CAAC4C,IAAxB;AAAA,OAA/B,CAAL,EAAmE;AACjE5C,eAAO,CAACqD,EAAR,GAAapC,UAAU,CAACI,MAAxB,CADiE,CAEjE;;AACA,YAAI,CAACuK,OAAO,CAAC5I,YAAT,IAAyB,CAAC2I,QAAQ,CAACzO,MAAvC,EAA+C;AAC7C;AACA,cACGmM,QAAQ,KAAK,CAAb,IAAkB,KAAK1H,MAAL,CAAYQ,GAA/B,IACCkH,QAAQ,KAAK,CAAb,IAAkB,KAAK1H,MAAL,CAAY0H,QAAQ,GAAG,CAAvB,EAA0BjG,QAF/C,EAGE;AACApD,mBAAO,CAACoD,QAAR,GAAmB,IAAnB;AACD;AACF;AACF;;AACDuI,cAAQ,CAACnP,OAAT,CAAiB,UAAC8P,OAAD,EAAa;AAC5B,YAAIA,OAAO,KAAKtM,OAAO,CAAC4C,IAAxB,EAA8B;AAC5ByG,kBAAQ;AACT,SAFD,MAEO;AACL;AACA,gBAAI,CAAC1H,MAAL,CAAYkB,MAAZ,CAAmBwG,QAAQ,GAAG,CAA9B,EAAiCiD,OAAjC,EAA0C,CAACV,OAAO,CAAC5I,YAAT,IAAyBqG,QAAQ,KAAK,CAAC,CAAjF;AACD;AACF,OAPD;AAQD;;;0CAEqB;AACpB,UAAIkD,MAAM,GAAG,IAAb;AAAA,UAAmBC,SAAS,GAAG,CAA/B;AACA,UAAIC,OAAO,GAAG,KAAd;AAAA,UAAqBC,UAAU,GAAG,KAAlC;AACA,UAAMxP,MAAM,GAAG,KAAKyE,MAAL,CAAYzE,MAA3B;;AAEA,WAAK,IAAIN,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGM,MAApB,EAA4BN,CAAC,EAA7B,EAAiC;AAC/B,YAAMgG,IAAI,GAAG,KAAKjB,MAAL,CAAY/E,CAAZ,CAAb;AACA,YAAM+P,OAAO,GAAG/J,IAAI,CAACvK,OAAL,CAAaqF,MAAb,GAAsBhE,GAAtC;;AAEA,YAAI6S,MAAM,KAAKI,OAAf,EAAwB;AAAE;AACxB,cAAMhF,UAAU,GAAG/E,IAAI,CAACvK,OAAL,CAAakF,WAAb,CAAyB,IAAzB,CAAnB;AACA,cAAM7D,GAAG,GAAG,KAAK+M,QAAL,CAAcQ,UAAd,KAA6BuF,SAA7B,GAAyC7E,UAArD;;AAEA,cAAI,CAAC8E,OAAD,IAAY/S,GAAG,GAAG,KAAK+M,QAAL,CAAcU,aAAd,EAAtB,EAAqD;AACnDsF,mBAAO,GAAG,IAAV;AACA,iBAAK,YAAL,IAAqB7J,IAAI,CAACA,IAA1B;AACA,iBAAK,mBAAL,IAA4BA,IAAI,CAACvK,OAAjC;AACA,iBAAK,iBAAL,IAA0BuK,IAAI,CAACtC,KAA/B;AACD;;AACD,cAAI,CAACoM,UAAD,KAAgBhT,GAAG,IAAI,KAAK+M,QAAL,CAAcS,gBAAd,EAAP,IAA4CtK,CAAC,KAAKM,MAAM,GAAG,CAAf,IAAoB,KAAK0P,KAAL,EAAhF,CAAJ,EAAoG;AAClGF,sBAAU,GAAG,IAAb;AACA,iBAAK,eAAL,IAAwB9J,IAAI,CAACA,IAA7B;AACA,iBAAK,sBAAL,IAA+BA,IAAI,CAACvK,OAApC;AACA,iBAAK,oBAAL,IAA6BuK,IAAI,CAACtC,KAAlC;AACD;;AACDkM,mBAAS,IAAI7E,UAAb;AACD;;AACD4E,cAAM,GAAGI,OAAT;;AAEA,YAAIF,OAAO,IAAIC,UAAf,EAA2B;AACzB;AACD;AACF;AACF;;;wBAhIkB;AACjB,aAAO,KAAK/K,MAAL,CAAY6C,QAAZ,GAAuBtH,MAA9B;AACD;;;wBAEiB;AAChB,aAAO,KAAKyE,MAAL,CAAY+C,YAAZ,EAAP;AACD;;;wBAEgB;AACf,aAAO,KAAK/C,MAAL,CAAYiD,WAAZ,EAAP;AACD;;;;;;AA0HYkF,mEAAf,E;;ACvOA;AACA;AACA;AACA;AACA;AACA;AAEApR,OAAO,CAACmU,MAAR,CAAe,WAAf,EAA4B,EAA5B,EAEGC,QAFH,CAEY,cAFZ,EAE4B1U,yBAF5B,EAGG2U,GAHH,CAGO,CAAC,cAAD,EAAiB,UAAC3U,YAAD,EAAkB;AACtC,MAAM4U,GAAG,GAAGtU,OAAO,CAACL,OAApB;AACA,IAAE4B,MAAM,CAACgT,MAAP,IAAiBD,GAAG,CAACE,EAArB,IAA2BF,GAAG,CAACE,EAAJ,CAAOC,MAApC,IAA+C,IAAI/U,YAAJ,EAAD,CAAqBgV,WAArB,CAAiCJ,GAAjC,CAA9C,GAAsF,IAAtF;AACAnO,iBAAe,CAACwO,WAAhB;AACD,CAJI,CAHP,EASGC,SATH,CASa,kBATb,EASiC,YAAY;AACzC,SAAO;AACLC,YAAQ,EAAE,GADL;AAELC,cAAU,EAAE,CACV,QADU,EAEV,UAFU,EAGV,UAAUlN,KAAV,EAAiBjI,OAAjB,EAA0B;AAAA;;AACxB,WAAKqO,SAAL,GAAiBrO,OAAjB;AACA,WAAKoO,QAAL,GAAgBpO,OAAhB;AACA,WAAKiI,KAAL,GAAaA,KAAb;AAEA5H,aAAO,CAAC8D,OAAR,CAAgBnE,OAAO,CAACsE,QAAR,EAAhB,EAAoC,UAAA8Q,KAAK,EAAI;AAC3C,YAAIA,KAAK,CAAC3H,OAAN,CAAcC,WAAd,OAAgC,OAApC,EAA6C;AAC3C,eAAI,CAACU,QAAL,GAAgB/N,OAAO,CAACL,OAAR,CAAgBoV,KAAhB,CAAhB;AACD;AACF,OAJD;AAMA,aAAO,IAAP;AACD,KAfS;AAFP,GAAP;AAoBD,CA9BH,EAgCGH,SAhCH,CAgCa,UAhCb,EAgCyB,CACrB,MADqB,EAErB,WAFqB,EAGrB,YAHqB,EAIrB,UAJqB,EAKrB,WALqB,EAMrB,IANqB,EAOrB,QAPqB,EAQrB,UAAUI,OAAV,EAAmBnO,SAAnB,EAA8B+G,UAA9B,EAA0CqH,QAA1C,EAAoDC,SAApD,EAA+DpO,EAA/D,EAAmEwK,MAAnE,EAA2E;AAEzE,SAAO;AACL6D,WAAO,EAAE,CAAC,oBAAD,CADJ;AAELN,YAAQ,EAAE,GAFL;AAGLO,cAAU,EAAE,SAHP;AAILC,YAAQ,EAAE,IAJL;AAKLC,YAAQ,EAAE,IALL;AAMLC,QAAI,EAAEA;AAND,GAAP;;AASA,WAASA,IAAT,CAAclE,MAAd,EAAsB1R,OAAtB,EAA+B4R,KAA/B,EAAsCiE,WAAtC,EAAmDC,MAAnD,EAA2D;AACzD,QAAMC,KAAK,GAAGnE,KAAK,CAACoE,QAAN,CAAeD,KAAf,CAAqB,qCAArB,CAAd;;AACA,QAAI,CAACA,KAAL,EAAY;AACV,YAAM,IAAIhR,KAAJ,CAAU,uEAAuE6M,KAAK,CAACoE,QAA7E,GAAwF,IAAlG,CAAN;AACD;;AAED,aAASC,WAAT,CAAqBzV,KAArB,EAA4B0V,YAA5B,EAA0CC,OAA1C,EAAmD;AACjD,UAAI,CAACA,OAAL,EAAc;AACZ3V,aAAK,GAAGA,KAAK,KAAK,IAAV,GAAiB0V,YAAjB,GAAgCzL,IAAI,CAAC2L,KAAL,CAAW5V,KAAX,CAAxC;AACD;;AACD,aAAO6V,KAAK,CAAC7V,KAAD,CAAL,GAAe0V,YAAf,GAA8B1V,KAArC;AACD;;AAED,aAAS8V,gBAAT,CAA0B9V,KAA1B,EAAiC0V,YAAjC,EAA+CC,OAA/C,EAAwD;AACtD,UAAMnU,MAAM,GAAG2P,MAAM,CAACnR,KAAD,CAAN,CAAckR,MAAd,CAAf;AACA,aAAOuE,WAAW,CAACjU,MAAD,EAASkU,YAAT,EAAuBC,OAAvB,CAAlB;AACD;;AAED,aAASI,gBAAT,CAA0B/V,KAA1B,EAAiC0V,YAAjC,EAA+C;AAC7C,UAAMlU,MAAM,GAAG2P,MAAM,CAACnR,KAAD,CAAN,CAAckR,MAAd,CAAf;AACA,aAAO,OAAO1P,MAAP,KAAkB,SAAlB,GAA8BA,MAA9B,GAAuCkU,YAA9C;AACD;;AAED,QAAMM,UAAU,GAAG,CAAnB;AACA,QAAMC,cAAc,GAAG,EAAvB;AACA,QAAMC,WAAW,GAAG,GAApB;AACA,QAAMC,eAAe,GAAG,GAAxB;AACA,QAAMC,sBAAsB,GAAG,IAA/B;AACA,QAAMC,mBAAmB,GAAG,CAA5B;AACA,QAAMC,kBAAkB,GAAG,GAA3B;AACA,QAAMC,yBAAyB,GAAG,EAAlC;AAEA,QAAIC,UAAU,GAAG,IAAjB;AACA,QAAMC,QAAQ,GAAGlB,KAAK,CAAC,CAAD,CAAtB;AACA,QAAMmB,cAAc,GAAGnB,KAAK,CAAC,CAAD,CAA5B;AACA,QAAM/H,kBAAkB,GAAG6H,WAAW,CAAC,CAAD,CAAtC;AACA,QAAMzM,UAAU,GAAGqB,IAAI,CAACC,GAAL,CAAS8L,UAAT,EAAqBF,gBAAgB,CAAC1E,KAAK,CAACxI,UAAP,EAAmBqN,cAAnB,CAArC,CAAnB;AACA,QAAM/S,OAAO,GAAG+G,IAAI,CAACC,GAAL,CAASgM,WAAT,EAAsBJ,gBAAgB,CAAC1E,KAAK,CAAClO,OAAP,EAAgBiT,eAAhB,EAAiC,IAAjC,CAAtC,CAAhB;AACA,QAAMQ,aAAa,GAAGZ,gBAAgB,CAAC3E,KAAK,CAACuF,aAAP,EAAsBP,sBAAtB,CAAtC;AACA,QAAIvN,UAAU,GAAGiN,gBAAgB,CAAC1E,KAAK,CAACvI,UAAP,EAAmBwN,mBAAnB,CAAjC;AACA,QAAIO,SAAS,GAAG,CAAhB,CAxCyD,CAwCtC;;AACnB,QAAIC,OAAO,GAAG,EAAd;AAEA,QAAMlO,eAAe,GAAG,IAAI3C,eAAJ,CAAoBU,SAApB,EAA+BC,EAA/B,CAAxB;AACA,QAAMmC,MAAM,GAAG,IAAIJ,YAAJ,CAAiBC,eAAjB,EAAkCC,UAAlC,EAA8CC,UAA9C,CAAf;AACA,QAAM+E,QAAQ,GAAG,IAAIL,QAAJ,CAAa5E,eAAb,EAA8BG,MAA9B,EAAsCtJ,OAAtC,EAA+CgO,kBAA/C,EAAmEC,UAAnE,EAA+EvK,OAA/E,CAAjB;AACA,QAAM4O,OAAO,GAAG,IAAIb,eAAJ,CAAYC,MAAZ,EAAoBC,MAApB,EAA4BC,KAA5B,EAAmCxD,QAAnC,EAA6C9E,MAA7C,EAAqDuI,QAArD,EAA+DC,MAA/D,CAAhB;;AAEA,QAAI9D,kBAAJ,EAAwB;AACtBA,wBAAkB,CAACsE,OAAnB,GAA6BA,OAA7B;AACD;;AAED,QAAMgF,iBAAiB,GAAG,SAApBA,iBAAoB;AAAA,aACxB/N,MAAM,CAACjJ,SAAP,CAAiBiX,QAAjB,CAA0B1W,IAA1B,CAA+BmW,UAA/B,MAA+C,iBAA/C,IAAoE,OAAOA,UAAU,CAAC1P,GAAlB,KAA0B,UADtE;AAAA,KAA1B;;AAGA0P,cAAU,GAAGrF,MAAM,CAACuF,cAAD,CAAN,CAAuBxF,MAAvB,CAAb,CAvDyD,CAuDZ;;AAC7C,QAAI,CAAC4F,iBAAiB,EAAtB,EAA0B;AACxBN,gBAAU,GAAG9P,SAAS,CAACI,GAAV,CAAc4P,cAAd,CAAb,CADwB,CACoB;;AAC5C,UAAI,CAACI,iBAAiB,EAAtB,EAA0B;AACxB,cAAM,IAAIvS,KAAJ,CAAUmS,cAAc,GAAG,4BAA3B,CAAN;AACD;AACF;;AAED,QAAIM,gBAAgB,GAAG,EAAvB;;AACA,aAASC,sBAAT,GAAkC;AAChCD,sBAAgB,CAACrT,OAAjB,CAAyB,UAAAuT,OAAO;AAAA,eAAIA,OAAO,CAAChD,GAAR,EAAJ;AAAA,OAAhC;AACA8C,sBAAgB,GAAG,EAAnB;AACD;;AACD,aAASG,sBAAT,CAAgCX,UAAhC,EAA4CY,QAA5C,EAAsD;AACpD,UAAIC,MAAJ,CADoD,CAEpD;;AACA,UAAGxX,OAAO,CAAC4E,QAAR,CAAiB+R,UAAU,CAACY,QAAD,CAA3B,CAAH,EAA2C;AACzCC,cAAM,GAAGb,UAAU,CAACY,QAAD,CAAnB;;AACA,YAAGvX,OAAO,CAAC4E,QAAR,CAAiB4S,MAAjB,CAAH,EAA6B;AAC3BL,0BAAgB,GAAGA,gBAAgB,CAACpL,MAAjB,CAAwB,UAAAsL,OAAO;AAAA,mBAAIA,OAAO,CAACI,EAAR,KAAeF,QAAnB;AAAA,WAA/B,CAAnB;AACAJ,0BAAgB,CAACtM,IAAjB,CAAsB;AACpB4M,cAAE,EAAEF,QADgB;AAEpBlD,eAAG,EAAE;AAAA,qBAAMsC,UAAU,CAACY,QAAD,CAAV,GAAuBC,MAA7B;AAAA;AAFe,WAAtB;AAID;AACF;AACF;;AAED,aAASE,qBAAT,CAA+Bf,UAA/B,EAA2CY,QAA3C,EAAqDI,YAArD,EAAmE;AACjE,UAAMC,UAAU,GAAG1O,MAAM,CAAC2O,wBAAP,CAAgClB,UAAhC,EAA4CY,QAA5C,CAAnB;;AACA,UAAIK,UAAU,KAAKA,UAAU,CAAC7E,GAAX,IAAkB6E,UAAU,CAAC3Q,GAAlC,CAAd,EAAsD;AACpD;AACD;;AACD,UAAIuQ,MAAJ;AACAF,4BAAsB,CAACX,UAAD,EAAaY,QAAb,CAAtB;AACArO,YAAM,CAAC4J,cAAP,CAAsB6D,UAAtB,EAAkCY,QAAlC,EAA4C;AAC1CxE,WAAG,EAAE,aAAC5S,KAAD,EAAW;AACdqX,gBAAM,GAAGrX,KAAT;;AACA,cAAG6W,OAAO,CAACxS,MAAR,IAAkB,CAACyE,MAAM,CAACzE,MAA7B,EAAqC;AACnC8S,kCAAsB,CAACX,UAAD,EAAaY,QAAb,CAAtB;AACA;AACD;;AACDtO,gBAAM,CAAC0O,YAAD,CAAN,GAAuBxX,KAAvB;AACA,cAAMkQ,mBAAmB,GAAGtC,QAAQ,CAACQ,UAAT,EAA5B;AACAR,kBAAQ,CAACqB,cAAT;;AACA,cAAImI,QAAQ,KAAK,UAAjB,EAA6B;AAC3BxJ,oBAAQ,CAACqC,kBAAT,CAA4BC,mBAA5B;AACD;AACF,SAbyC;AAc1CpJ,WAAG,EAAE;AAAA,iBAAMuQ,MAAN;AAAA;AAdqC,OAA5C;AAgBD;;AAEDE,yBAAqB,CAACf,UAAD,EAAa,UAAb,EAAyB,cAAzB,CAArB;AACAe,yBAAqB,CAACf,UAAD,EAAa,UAAb,EAAyB,cAAzB,CAArB;AAEA,QAAMmB,SAAS,GAAInB,UAAU,CAAC1P,GAAX,CAAezC,MAAf,KAA0B,CAA3B,GAChB,UAACuT,OAAD;AAAA,aAAapB,UAAU,CAAC1P,GAAX,CAAegC,MAAM,CAACU,IAAtB,EAA4BZ,UAA5B,EAAwCgP,OAAxC,CAAb;AAAA,KADgB,GAEhB,UAACA,OAAD,EAAa;AACXpB,gBAAU,CAAC1P,GAAX,CAAe;AACbT,aAAK,EAAEyC,MAAM,CAACU,IADD;AAEbK,cAAM,EAAEf,MAAM,CAACzE,MAAP,GAAgByE,MAAM,CAACA,MAAM,CAACzE,MAAP,GAAgB,CAAjB,CAAN,CAA0B0F,IAA1C,GAAiD,KAAK,CAFjD;AAGb8N,aAAK,EAAEjP;AAHM,OAAf,EAIGgP,OAJH;AAKD,KARH;AAUA,QAAME,aAAa,GAAItB,UAAU,CAAC1P,GAAX,CAAezC,MAAf,KAA0B,CAA3B,GACpB,UAACuT,OAAD;AAAA,aAAapB,UAAU,CAAC1P,GAAX,CAAegC,MAAM,CAACS,KAAP,GAAeX,UAA9B,EAA0CA,UAA1C,EAAsDgP,OAAtD,CAAb;AAAA,KADoB,GAEpB,UAACA,OAAD,EAAa;AACXpB,gBAAU,CAAC1P,GAAX,CAAe;AACbT,aAAK,EAAEyC,MAAM,CAACS,KAAP,GAAeX,UADT;AAEbxE,eAAO,EAAE0E,MAAM,CAACzE,MAAP,GAAgByE,MAAM,CAAC,CAAD,CAAN,CAAUiB,IAA1B,GAAiC,KAAK,CAFlC;AAGb8N,aAAK,EAAEjP;AAHM,OAAf,EAIGgP,OAJH;AAKD,KARH;;AAUA,QAAMG,UAAU,GAAG,SAAbA,UAAa,GAAM;AACvB,UAAIC,QAAQ,GAAG,CAAf;;AACA,UAAG,CAACpK,QAAQ,CAACK,mBAAT,EAAJ,EAAoC;AAClC,YAAMgK,KAAK,GAAGlD,SAAS,CAAC,YAAM;AAC5BiD,kBAAQ;;AACR,cAAGpK,QAAQ,CAACK,mBAAT,EAAH,EAAmC;AACjC8G,qBAAS,CAACmD,MAAV,CAAiBD,KAAjB;AACA5G,oBAAQ;AACT;;AACD,cAAG2G,QAAQ,GAAGzB,yBAAX,IAAwCD,kBAA3C,EAA+D;AAC7DvB,qBAAS,CAACmD,MAAV,CAAiBD,KAAjB;AACA,kBAAM1T,KAAK,2EAAoE+R,kBAApE,QAAX;AACD;AACF,SAVsB,EAUpBC,yBAVoB,CAAvB;AAWD,OAZD,MAaK;AACHlF,gBAAQ;AACT;AACF,KAlBD;AAoBA;;;;;;;;;AAOAiE,UAAM,CAAC,UAAC6C,KAAD,EAAQ1Q,KAAR,EAAkB;AACvBmG,cAAQ,CAACI,qBAAT,CAA+BmK,KAAK,CAAC,CAAD,CAApC,EADuB,CAEvB;AACA;AACA;;AACA1Q,WAAK,CAACC,QAAN;AACAyQ,WAAK,CAAC3Q,MAAN;AACD,KAPK,CAAN;AASA0J,UAAM,CAACkH,GAAP,CAAW,UAAX,EAAuB,YAAM;AAC3BC,kBAAY;AACZzK,cAAQ,CAAC0K,GAAT,CAAa,YAAb,EAA2BC,YAA3B;AACD,KAHD;AAKA3K,YAAQ,CAAC4K,EAAT,CAAY,YAAZ,EAA0BD,YAA1B;AAEAR,cAAU;AAEV;;AAEA,aAASU,SAAT,CAAmBC,GAAnB,EAAwB;AACtB,aAAQA,GAAG,IAAIA,GAAG,KAAK9B,SAAhB,IAA8B1F,MAAM,CAACyH,WAA5C;AACD;;AAED,aAASC,UAAT,GAAsB;AACpBhL,cAAQ,CAAC4K,EAAT,CAAY,QAAZ,EAAsBK,sBAAtB;AACAjL,cAAQ,CAAC4K,EAAT,CAAY,QAAZ,EAAsBK,sBAAtB;AACD;;AAED,aAASR,YAAT,GAAwB;AACtBzK,cAAQ,CAAC0K,GAAT,CAAa,QAAb,EAAuBO,sBAAvB;AACAjL,cAAQ,CAAC0K,GAAT,CAAa,QAAb,EAAuBO,sBAAvB;AACD;;AAED,aAASvH,MAAT,GAAkB;AAChB+G,kBAAY;AACZzK,cAAQ,CAACgD,eAAT;AACAhD,cAAQ,CAACkD,kBAAT;;AACA,UAAI3L,SAAS,CAACd,MAAd,EAAsB;AACpBwE,kBAAU,GAAG4M,WAAW,CAACtQ,SAAS,CAAC,CAAD,CAAV,EAAekR,mBAAf,EAAoC,KAApC,CAAxB;AACD;;AACDvN,YAAM,CAACM,KAAP,CAAaP,UAAb;AACAsO,4BAAsB,CAACX,UAAD,EAAa,UAAb,CAAtB;AACAW,4BAAsB,CAACX,UAAD,EAAa,UAAb,CAAtB;AACAnF,cAAQ;AACT;;AAED,aAASyH,gBAAT,CAA0B3R,OAA1B,EAAmC;AACjC,aAAOA,OAAO,CAAC3H,OAAR,CAAgBwD,MAAhB,MAA4BmE,OAAO,CAAC3H,OAAR,CAAgB,CAAhB,EAAmBkM,YAAtD;AACD;;AAED,aAASqN,iBAAT,CAA2B5R,OAA3B,EAAoC;AAClC,UAAI2R,gBAAgB,CAAC3R,OAAD,CAApB,EAA+B;AAC7B2B,cAAM,CAACnF,OAAP,CAAe,UAACoG,IAAD,EAAU;AACvB,cAAI,OAAOA,IAAI,CAACiP,2BAAZ,KAA4C,UAAhD,EAA4D;AAC1DjP,gBAAI,CAACiP,2BAAL;AACA,mBAAOjP,IAAI,CAACiP,2BAAZ;AACD;AACF,SALD;;AAMA,YAAI,CAACnC,OAAO,CAACxS,MAAb,EAAqB;AACnByQ,kBAAQ,CAAC;AAAA,mBAAMzD,QAAQ,EAAd;AAAA,WAAD,CAAR;AACD;AACF;AACF;;AAED,aAAS4H,oBAAT,CAA8B9R,OAA9B,EAAuC+R,WAAvC,EAAoD;AAClDC,mBAAa,CAAChS,OAAD,EAAU+R,WAAV,EAAuBtL,QAAQ,CAACjG,aAAhC,CAAb;;AACA,UAAI,CAACmR,gBAAgB,CAAC3R,OAAD,CAArB,EAAgC;AAC9BA,eAAO,CAAC6R,2BAAR,GAAsC7R,OAAO,CAACM,KAAR,CAAc2R,MAAd,CAAqB;AAAA,iBAAML,iBAAiB,CAAC5R,OAAD,CAAvB;AAAA,SAArB,CAAtC;AACD;;AACDwB,qBAAe,CAAC0Q,WAAhB,CAA4BlS,OAA5B,EALkD,CAKZ;AACvC;;AAED,aAASgS,aAAT,CAAuBhS,OAAvB,EAAgC+R,WAAhC,EAA6CvR,aAA7C,EAA4D;AAC1D,UAAI2R,QAAQ,GAAG,IAAf;AACA,UAAM9K,OAAO,GAAI0K,WAAW,GAAG,CAAf,GAAoBpQ,MAAM,CAACoQ,WAAW,GAAG,CAAf,CAAN,CAAwB1Z,OAA5C,GAAsD4F,SAAtE;AACAkQ,YAAM,CAAC,UAAC6C,KAAD,EAAQ1Q,KAAR,EAAkB;AACvB6R,gBAAQ,GAAG3R,aAAa,CAACwQ,KAAD,EAAQ3J,OAAR,CAAxB;AACArH,eAAO,CAAC3H,OAAR,GAAkB2Y,KAAlB;AACAhR,eAAO,CAACM,KAAR,GAAgBA,KAAhB;AACAA,aAAK,CAACgP,QAAD,CAAL,GAAkBtP,OAAO,CAAC4C,IAA1B;AACD,OALK,CAAN,CAH0D,CAS1D;;AACA,UAAI+H,OAAO,CAACyH,SAAZ,EAAuB;AACrB,YAAMC,aAAa,GAAGrS,OAAO,CAACM,KAAR,CAAcgS,qBAApC;;AACA,YAAID,aAAa,IAAIA,aAAa,CAACE,OAAnC,EAA4C;AAC1C5H,iBAAO,CAACyH,SAAR,CAAkBpS,OAAO,CAACM,KAA1B,EAAiCN,OAAO,CAAC3H,OAAzC;AACD,SAFD,MAEO;AACL2H,iBAAO,CAACM,KAAR,CAAcgS,qBAAd,GAAsC;AACpCE,kBAAM,EAAE;AAAA,qBAAM7H,OAAO,CAACyH,SAAR,CAAkBpS,OAAO,CAACM,KAA1B,EAAiCN,OAAO,CAAC3H,OAAzC,CAAN;AAAA,aAD4B;AAEpCiI,iBAAK,EAAEN,OAAO,CAACM;AAFqB,WAAtC;AAID;AACF;;AACD,aAAO6R,QAAP;AACD;;AAED,aAASM,SAAT,GAAqB;AACnB,UAAIN,QAAQ,GAAG,EAAf;AACA,UAAMO,aAAa,GAAG,EAAtB;AACA,UAAMC,WAAW,GAAG,EAApB;AACA,UAAMC,QAAQ,GAAG,EAAjB;AAEAjR,YAAM,CAACnF,OAAP,CAAe,UAACwD,OAAD,EAAUpD,CAAV,EAAgB;AAC7B,gBAAQoD,OAAO,CAACqD,EAAhB;AACE,eAAKpC,UAAU,CAACC,OAAhB;AACEwR,yBAAa,CAAClP,OAAd,CAAsBxD,OAAtB;AACA;;AACF,eAAKiB,UAAU,CAACE,MAAhB;AACE2Q,gCAAoB,CAAC9R,OAAD,EAAUpD,CAAV,CAApB;AACAoD,mBAAO,CAACqD,EAAR,GAAapC,UAAU,CAACK,IAAxB;AACAsR,oBAAQ,CAACrP,IAAT,CAAcvD,OAAd;AACA;;AACF,eAAKiB,UAAU,CAACG,MAAhB;AACE+Q,oBAAQ,GAAGA,QAAQ,CAACU,MAAT,CAAgBb,aAAa,CAAChS,OAAD,EAAUpD,CAAV,EAAa6J,QAAQ,CAACa,qBAAtB,CAA7B,CAAX;AACAtH,mBAAO,CAACqD,EAAR,GAAapC,UAAU,CAACK,IAAxB;AACAsR,oBAAQ,CAACrP,IAAT,CAAcvD,OAAd;AACA;;AACF,eAAKiB,UAAU,CAACI,MAAhB;AACEsR,uBAAW,CAACpP,IAAZ,CAAiBvD,OAAjB;AAfJ;AAiBD,OAlBD;AAoBA2S,iBAAW,CAACnW,OAAZ,CAAoB,UAACwD,OAAD;AAAA,eAAamS,QAAQ,GAAGA,QAAQ,CAACU,MAAT,CAAgBpM,QAAQ,CAACoD,UAAT,CAAoB7J,OAApB,CAAhB,CAAxB;AAAA,OAApB;AAEA,UAAI0S,aAAa,CAACxV,MAAlB,EACEwV,aAAa,CAAClW,OAAd,CAAsB,UAACwD,OAAD,EAAa;AACjC8R,4BAAoB,CAAC9R,OAAD,CAApB;AACAA,eAAO,CAACqD,EAAR,GAAapC,UAAU,CAACK,IAAxB;AACD,OAHD;AAKFK,YAAM,CAACnF,OAAP,CAAe,UAACoG,IAAD,EAAOhG,CAAP;AAAA,eAAagG,IAAI,CAACtC,KAAL,CAAWwE,MAAX,GAAoBnD,MAAM,CAACS,KAAP,GAAexF,CAAhD;AAAA,OAAf;AAEA,aAAO;AACLuM,iBAAS,EAAEuJ,aADN;AAELI,eAAO,EAAEH,WAFJ;AAGLC,gBAAQ,EAAEA,QAHL;AAILG,gBAAQ,EAAEZ;AAJL,OAAP;AAOD;;AAED,aAASa,cAAT,CAAwBzB,GAAxB,EAA6BrI,OAA7B,EAAsC;AACpC;AACA,UAAIA,OAAO,CAAC6J,QAAR,CAAiB7V,MAArB,EAA6B;AAC3BsC,UAAE,CAACyT,GAAH,CAAO/J,OAAO,CAAC6J,QAAf,EAAyB/R,IAAzB,CAA8B,YAAM;AAClCyF,kBAAQ,CAACqB,cAAT;AACAoC,kBAAQ,CAACqH,GAAD,CAAR;AACD,SAHD;AAID,OALD,MAKO;AACL9K,gBAAQ,CAACqB,cAAT;AACD;AACF;;AAED,aAASoL,YAAT,CAAsB3B,GAAtB,EAA2BrI,OAA3B,EAAoC;AAClC,UAAIzC,QAAQ,CAACc,gBAAT,EAAJ,EAAiC;AAC/B,YAAI,CAAC2B,OAAD,IAAYvH,MAAM,CAACsC,eAAP,CAAuBiF,OAAO,CAAC0J,QAA/B,IAA2C,CAA3D,EAA8D;AAC5D;AACA,cAAIlD,OAAO,CAACnM,IAAR,CAAa,IAAb,MAAuB,CAA3B,EAA8B;AAC5BoH,mBAAO,CAACwI,OAAR,CAAgB,IAAhB;AACAC,iBAAK,CAAC7B,GAAD,CAAL;AACD;AACF;AACF,OARD,MAQO,IAAI9K,QAAQ,CAACsB,aAAT,EAAJ,EAA8B;AACnC,YAAK,CAACmB,OAAD,IAAYvH,MAAM,CAACsC,eAAP,CAAuBiF,OAAO,CAACC,SAA/B,IAA4C,CAAzD,IAA+DuG,OAAO,CAAC,CAAD,CAA1E,EAA+E;AAC7E;AACA;AACA;AACA,cAAIA,OAAO,CAACnM,IAAR,CAAa,KAAb,MAAwB,CAA5B,EAA+B;AAC7BoH,mBAAO,CAACwI,OAAR,CAAgB,IAAhB;AACAC,iBAAK,CAAC7B,GAAD,CAAL;AACD;AACF;AACF;AACF;;AAED,aAAS8B,cAAT,GAA0B;AACxB,UAAMnK,OAAO,GAAGuJ,SAAS,EAAzB,CADwB,CAGxB;;AACA,OAAC1I,MAAM,CAACuJ,OAAR,IAAmB,CAAChN,UAAU,CAACgN,OAA/B,IAA0CvJ,MAAM,CAACwJ,OAAP,EAA1C;AAEArK,aAAO,CAAC0J,QAAR,CAAiBpW,OAAjB,CAAyB,UAAAgX,CAAC;AAAA,eAAIhS,eAAe,CAACiS,WAAhB,CAA4BD,CAA5B,CAAJ;AAAA,OAA1B;AACAtK,aAAO,CAACC,SAAR,CAAkB3M,OAAlB,CAA0B,UAAAgX,CAAC;AAAA,eAAIhS,eAAe,CAACiS,WAAhB,CAA4BD,CAA5B,CAAJ;AAAA,OAA3B;AACA,aAAOtK,OAAP;AACD;;AAED,aAASgB,QAAT,CAAkBqH,GAAlB,EAAuB;AACrB,UAAI,CAACA,GAAL,EAAU;AAAE;AACV7B,eAAO,GAAG,EAAV;AACA6B,WAAG,GAAG,EAAE9B,SAAR;AACD;;AAED,UAAMvG,OAAO,GAAGmK,cAAc,EAA9B;;AAEA,UAAI/B,SAAS,CAACC,GAAD,CAAb,EAAoB;AAClB;AACD;;AAEDyB,oBAAc,CAACzB,GAAD,EAAMrI,OAAN,CAAd;AACAgK,kBAAY,CAAC3B,GAAD,CAAZ;;AAEA,UAAI,CAAC7B,OAAO,CAACxS,MAAb,EAAqB;AACnByN,eAAO,CAAC+I,mBAAR;AACD;AACF;;AAED,aAASC,kBAAT,CAA4BpC,GAA5B,EAAiC;AAC/B,UAAMrI,OAAO,GAAGmK,cAAc,EAA9B;AAEA5M,cAAQ,CAACwC,cAAT,CAAwBC,OAAxB;;AAEA,UAAIoI,SAAS,CAACC,GAAD,CAAb,EAAoB;AAClB;AACD;;AAEDyB,oBAAc,CAACzB,GAAD,EAAMrI,OAAN,CAAd;AACA4G,4BAAsB;AACtBoD,kBAAY,CAAC3B,GAAD,EAAMrI,OAAN,CAAZ;AACAwG,aAAO,CAACkE,KAAR;AAEA,UAAIlE,OAAO,CAACxS,MAAZ,EACEkW,KAAK,CAAC7B,GAAD,CAAL,CADF,KAEK;AACH5G,eAAO,CAACwI,OAAR,CAAgB,KAAhB;AACA1B,kBAAU;AACV9G,eAAO,CAAC+I,mBAAR;AACD;AACF;;AAED,aAASN,KAAT,CAAe7B,GAAf,EAAoB;AAClB,UAAI7B,OAAO,CAAC,CAAD,CAAX,EAAgB;AAAC;AACf,YAAI/N,MAAM,CAACzE,MAAP,IAAiB,CAACuJ,QAAQ,CAACc,gBAAT,EAAtB,EAAmD;AACjDoM,4BAAkB,CAACpC,GAAD,CAAlB;AACD,SAFD,MAEO;AACLf,mBAAS,CAAC,UAACnW,MAAD,EAAY;AACpB,gBAAIiX,SAAS,CAACC,GAAD,CAAb,EAAoB;AAClB;AACD;;AAED,gBAAIlX,MAAM,CAAC6C,MAAP,GAAgBuE,UAApB,EAAgC;AAC9BE,oBAAM,CAACO,GAAP,GAAa,IAAb;AACD;;AAED,gBAAI7H,MAAM,CAAC6C,MAAP,GAAgB,CAApB,EAAuB;AACrBuJ,sBAAQ,CAACuB,OAAT;AACArG,oBAAM,CAACe,MAAP,CAAcrI,MAAd;AACD;;AAEDsZ,8BAAkB,CAACpC,GAAD,CAAlB;AACD,WAfQ,CAAT;AAgBD;AACF,OArBD,MAqBO;AAAG;AACR,YAAI5P,MAAM,CAACzE,MAAP,IAAiB,CAACuJ,QAAQ,CAACsB,aAAT,EAAtB,EAAgD;AAC9C4L,4BAAkB,CAACpC,GAAD,CAAlB;AACD,SAFD,MAEO;AACLZ,uBAAa,CAAC,UAACtW,MAAD,EAAY;AACxB,gBAAIiX,SAAS,CAACC,GAAD,CAAb,EAAoB;AAClB;AACD;;AAED,gBAAIlX,MAAM,CAAC6C,MAAP,GAAgBuE,UAApB,EAAgC;AAC9BE,oBAAM,CAACQ,GAAP,GAAa,IAAb,CAD8B,CAE9B;AACD;;AAED,gBAAI9H,MAAM,CAAC6C,MAAP,GAAgB,CAApB,EAAuB;AACrB,kBAAIyE,MAAM,CAACzE,MAAX,EAAmB;AACjBuJ,wBAAQ,CAACe,UAAT;AACD;;AACD7F,oBAAM,CAAC1E,OAAP,CAAe5C,MAAf;AACD;;AAEDsZ,8BAAkB,CAACpC,GAAD,CAAlB;AACD,WAlBY,CAAb;AAmBD;AACF;AACF;;AAED,aAASsC,UAAT,GAAsB;AACpB,UAAI,CAACpN,QAAQ,CAAC8C,SAAd,EAAyB;AACvB;AACD;;AACD,UAAMuK,WAAW,GAAGrN,QAAQ,CAAC8C,SAAT,CAAmBC,QAAvC;AACA,UAAMF,WAAW,GAAG7C,QAAQ,CAAC8C,SAAT,CAAmBlH,IAAvC;;AACA,UAAIoE,QAAQ,CAACnI,SAAT,OAAyBgL,WAA7B,EAA0C;AACxCyK,6BAAqB,CAAC,YAAM;AAC1B,cAAM1K,QAAQ,GAAG5C,QAAQ,CAACnI,SAAT,EAAjB;AACA,cAAM0K,IAAI,GAAG8K,WAAW,GAAGzK,QAA3B;;AACA,cAAIL,IAAI,GAAG,CAAX,EAAc;AAAE;AACdvC,oBAAQ,CAACnI,SAAT,CAAmBgL,WAAW,GAAGN,IAAjC;AACD,WAFD,MAEO;AACLvC,oBAAQ,CAACnI,SAAT,CAAmBgL,WAAnB;AACD;;AACD7C,kBAAQ,CAAC8C,SAAT,GAAqB,IAArB;AACD,SAToB,CAArB;AAUA,eAAO,IAAP;AACD;;AACD9C,cAAQ,CAAC8C,SAAT,GAAqB,IAArB;AACD;;AAED,aAASmI,sBAAT,GAAkC;AAChC,UAAIlC,aAAa,IAAIqE,UAAU,EAA/B,EAAmC;AACjC;AACD;;AACD,UAAI,CAACvN,UAAU,CAACgN,OAAZ,IAAuB,CAAC3I,OAAO,CAACP,SAAhC,IAA6C,CAACO,OAAO,CAACN,QAA1D,EAAoE;AAElE6I,oBAAY,CAACzD,SAAD,CAAZ;;AAEA,YAAIC,OAAO,CAACxS,MAAZ,EAAoB;AAClBgU,sBAAY;AACb,SAFD,MAEO;AACLvG,iBAAO,CAAC+I,mBAAR;AACA,WAAC3J,MAAM,CAACuJ,OAAR,IAAmBvJ,MAAM,CAACwJ,OAAP,EAAnB;AACD;AACF;AACF;;AAED,aAASnC,YAAT,CAAsB4C,KAAtB,EAA6B;AAC3B,UAAI,CAACrJ,OAAO,CAACN,QAAb,EAAuB;AACrB,YAAM/L,SAAS,GAAGmI,QAAQ,CAAC,CAAD,CAAR,CAAYnI,SAA9B;AACA,YAAM2V,IAAI,GAAGxN,QAAQ,CAAC,CAAD,CAAR,CAAYO,YAAZ,GAA2BP,QAAQ,CAAC,CAAD,CAAR,CAAYyN,YAApD;;AAEA,YAAK5V,SAAS,KAAK,CAAd,IAAmB,CAACqD,MAAM,CAACQ,GAA5B,IAAqC7D,SAAS,KAAK2V,IAAd,IAAsB,CAACtS,MAAM,CAACO,GAAvE,EAA6E;AAC3E8R,eAAK,CAACG,cAAN;AACD;AACF;AACF;AACF;AAEF,CA3foB,CAhCzB,E","file":"ui-scroll.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 1);\n","/*!\r\n globals: angular, window\r\n List of used element methods available in JQuery but not in JQuery Lite\r\n element.before(elem)\r\n element.height()\r\n element.outerHeight(true)\r\n element.height(value) = only for Top/Bottom padding elements\r\n element.scrollTop()\r\n element.scrollTop(value)\r\n */\r\n\r\nexport default class JQLiteExtras {\r\n\r\n registerFor(element) {\r\n let convertToPx, css, getStyle, isWindow;\r\n // angular implementation blows up if elem is the window\r\n css = angular.element.prototype.css;\r\n\r\n element.prototype.css = function (name, value) {\r\n let self = this;\r\n let elem = self[0];\r\n if (!(!elem || elem.nodeType === 3 || elem.nodeType === 8 || !elem.style)) {\r\n return css.call(self, name, value);\r\n }\r\n };\r\n\r\n // as defined in angularjs v1.0.5\r\n isWindow = (obj) => obj && obj.document && obj.location && obj.alert && obj.setInterval;\r\n\r\n function scrollTo(self, direction, value) {\r\n let elem = self[0];\r\n let [method, prop, preserve] = {\r\n top: [\r\n 'scrollTop',\r\n 'pageYOffset',\r\n 'scrollLeft'\r\n ],\r\n left: [\r\n 'scrollLeft',\r\n 'pageXOffset',\r\n 'scrollTop'\r\n ]\r\n }[direction];\r\n\r\n const isValueDefined = typeof value !== 'undefined';\r\n if (isWindow(elem)) {\r\n if (isValueDefined) {\r\n return elem.scrollTo(self[preserve].call(self), value);\r\n }\r\n return (prop in elem) ? elem[prop] : elem.document.documentElement[method];\r\n } else {\r\n if (isValueDefined) {\r\n elem[method] = value;\r\n }\r\n return elem[method];\r\n }\r\n }\r\n\r\n if (window.getComputedStyle) {\r\n getStyle = (elem) => window.getComputedStyle(elem, null);\r\n convertToPx = (elem, value) => parseFloat(value);\r\n } else {\r\n getStyle = (elem) => elem.currentStyle;\r\n convertToPx = (elem, value) => {\r\n let left, result, rs, rsLeft, style;\r\n let core_pnum = /[+-]?(?:\\d*\\.|)\\d+(?:[eE][+-]?\\d+|)/.source;\r\n let rnumnonpx = new RegExp('^(' + core_pnum + ')(?!px)[a-z%]+$', 'i');\r\n\r\n if (!rnumnonpx.test(value)) {\r\n return parseFloat(value);\r\n }\r\n\r\n // ported from JQuery\r\n style = elem.style;\r\n left = style.left;\r\n rs = elem.runtimeStyle;\r\n rsLeft = rs && rs.left;\r\n if (rs) {\r\n rs.left = style.left;\r\n }\r\n // put in the new values to get a computed style out\r\n style.left = value;\r\n result = style.pixelLeft;\r\n style.left = left;\r\n if (rsLeft) {\r\n rs.left = rsLeft;\r\n }\r\n return result;\r\n };\r\n }\r\n\r\n function getMeasurements(elem, measure) {\r\n let base, borderA, borderB, computedMarginA, computedMarginB, computedStyle, dirA, dirB, marginA, marginB, paddingA, paddingB;\r\n\r\n if (isWindow(elem)) {\r\n base = document.documentElement[{height: 'clientHeight', width: 'clientWidth'}[measure]];\r\n\r\n return {\r\n base: base,\r\n padding: 0,\r\n border: 0,\r\n margin: 0\r\n };\r\n }\r\n\r\n // Start with offset property\r\n [\r\n base,\r\n dirA,\r\n dirB\r\n ] = {\r\n width: [\r\n elem.offsetWidth,\r\n 'Left',\r\n 'Right'\r\n ],\r\n height: [\r\n elem.offsetHeight,\r\n 'Top',\r\n 'Bottom'\r\n ]\r\n }[measure];\r\n\r\n computedStyle = getStyle(elem);\r\n paddingA = convertToPx(elem, computedStyle['padding' + dirA]) || 0;\r\n paddingB = convertToPx(elem, computedStyle['padding' + dirB]) || 0;\r\n borderA = convertToPx(elem, computedStyle['border' + dirA + 'Width']) || 0;\r\n borderB = convertToPx(elem, computedStyle['border' + dirB + 'Width']) || 0;\r\n computedMarginA = computedStyle['margin' + dirA];\r\n computedMarginB = computedStyle['margin' + dirB];\r\n\r\n // I do not care for width for now, so this hack is irrelevant\r\n // if ( !supportsPercentMargin )\r\n // computedMarginA = hackPercentMargin( elem, computedStyle, computedMarginA )\r\n // computedMarginB = hackPercentMargin( elem, computedStyle, computedMarginB )\r\n marginA = convertToPx(elem, computedMarginA) || 0;\r\n marginB = convertToPx(elem, computedMarginB) || 0;\r\n\r\n return {\r\n base: base,\r\n padding: paddingA + paddingB,\r\n border: borderA + borderB,\r\n margin: marginA + marginB\r\n };\r\n }\r\n\r\n function getWidthHeight(elem, direction, measure) {\r\n let computedStyle, result;\r\n\r\n let measurements = getMeasurements(elem, direction);\r\n\r\n if (measurements.base > 0) {\r\n return {\r\n base: measurements.base - measurements.padding - measurements.border,\r\n outer: measurements.base,\r\n outerfull: measurements.base + measurements.margin\r\n }[measure];\r\n }\r\n\r\n // Fall back to computed then uncomputed css if necessary\r\n computedStyle = getStyle(elem);\r\n result = computedStyle[direction];\r\n\r\n if (result < 0 || result === null) {\r\n result = elem.style[direction] || 0;\r\n }\r\n\r\n // Normalize \"\", auto, and prepare for extra\r\n result = parseFloat(result) || 0;\r\n\r\n return {\r\n base: result - measurements.padding - measurements.border,\r\n outer: result,\r\n outerfull: result + measurements.padding + measurements.border + measurements.margin\r\n }[measure];\r\n }\r\n\r\n // define missing methods\r\n return angular.forEach({\r\n before(newElem) {\r\n var children, elem, i, j, parent, ref, self;\r\n self = this;\r\n elem = self[0];\r\n parent = self.parent();\r\n children = parent.contents();\r\n if (children[0] === elem) {\r\n return parent.prepend(newElem);\r\n } else {\r\n for (i = j = 1, ref = children.length - 1; 1 <= ref ? j <= ref : j >= ref; i = 1 <= ref ? ++j : --j) {\r\n if (children[i] === elem) {\r\n angular.element(children[i - 1]).after(newElem);\r\n return;\r\n }\r\n }\r\n throw new Error('invalid DOM structure ' + elem.outerHTML);\r\n }\r\n },\r\n height (value){\r\n var self;\r\n self = this;\r\n if (typeof value !== 'undefined') {\r\n if (angular.isNumber(value)) {\r\n value = value + 'px';\r\n }\r\n return css.call(self, 'height', value);\r\n } else {\r\n return getWidthHeight(this[0], 'height', 'base');\r\n }\r\n },\r\n outerHeight(option) {\r\n return getWidthHeight(this[0], 'height', option ? 'outerfull' : 'outer');\r\n },\r\n outerWidth(option) {\r\n return getWidthHeight(this[0], 'width', option ? 'outerfull' : 'outer');\r\n },\r\n\r\n /*\r\n The offset setter method is not implemented\r\n */\r\n offset(value) {\r\n let docElem, win;\r\n let self = this;\r\n let box = {\r\n top: 0,\r\n left: 0\r\n };\r\n let elem = self[0];\r\n let doc = elem && elem.ownerDocument;\r\n\r\n if (arguments.length) {\r\n if (value === undefined) {\r\n return self;\r\n }\r\n // TODO: implement setter\r\n throw new Error('offset setter method is not implemented');\r\n }\r\n\r\n if (!doc) {\r\n return;\r\n }\r\n\r\n docElem = doc.documentElement;\r\n\r\n // TODO: Make sure it's not a disconnected DOM node\r\n\r\n if (elem.getBoundingClientRect != null) {\r\n box = elem.getBoundingClientRect();\r\n }\r\n\r\n win = doc.defaultView || doc.parentWindow;\r\n\r\n return {\r\n top: box.top + (win.pageYOffset || docElem.scrollTop) - (docElem.clientTop || 0),\r\n left: box.left + (win.pageXOffset || docElem.scrollLeft) - (docElem.clientLeft || 0)\r\n };\r\n },\r\n scrollTop(value) {\r\n return scrollTo(this, 'top', value);\r\n },\r\n scrollLeft(value) {\r\n return scrollTo(this, 'left', value);\r\n }\r\n }, (value, key) => {\r\n if (!element.prototype[key]) {\r\n return element.prototype[key] = value;\r\n }\r\n });\r\n }\r\n\r\n}\r\n","const hideClassToken = 'ng-ui-scroll-hide';\r\n\r\nexport default class ElementRoutines {\r\n\r\n static addCSSRules() {\r\n const selector = '.' + hideClassToken;\r\n const rules = 'display: none';\r\n const sheet = document.styleSheets[0];\r\n let index;\r\n try {\r\n index = sheet.cssRules.length;\r\n } catch (err) {\r\n index = 0;\r\n }\r\n if('insertRule' in sheet) {\r\n sheet.insertRule(selector + '{' + rules + '}', index);\r\n }\r\n else if('addRule' in sheet) {\r\n sheet.addRule(selector, rules, index);\r\n }\r\n }\r\n\r\n constructor($injector, $q) {\r\n this.$animate = ($injector.has && $injector.has('$animate')) ? $injector.get('$animate') : null;\r\n this.isAngularVersionLessThen1_3 = angular.version.major === 1 && angular.version.minor < 3;\r\n this.$q = $q;\r\n }\r\n\r\n hideElement(wrapper) {\r\n wrapper.element.addClass(hideClassToken);\r\n }\r\n\r\n showElement(wrapper) {\r\n wrapper.element.removeClass(hideClassToken);\r\n }\r\n\r\n insertElement(newElement, previousElement) {\r\n previousElement.after(newElement);\r\n return [];\r\n }\r\n\r\n removeElement(wrapper) {\r\n wrapper.element.remove();\r\n wrapper.scope.$destroy();\r\n return [];\r\n }\r\n\r\n insertElementAnimated(newElement, previousElement) {\r\n if (!this.$animate) {\r\n return this.insertElement(newElement, previousElement);\r\n }\r\n\r\n if (this.isAngularVersionLessThen1_3) {\r\n const deferred = this.$q.defer();\r\n // no need for parent - previous element is never null\r\n this.$animate.enter(newElement, null, previousElement, () => deferred.resolve());\r\n\r\n return [deferred.promise];\r\n }\r\n\r\n // no need for parent - previous element is never null\r\n return [this.$animate.enter(newElement, null, previousElement)];\r\n }\r\n\r\n removeElementAnimated(wrapper) {\r\n if (!this.$animate) {\r\n return this.removeElement(wrapper);\r\n }\r\n\r\n if (this.isAngularVersionLessThen1_3) {\r\n const deferred = this.$q.defer();\r\n this.$animate.leave(wrapper.element, () => {\r\n wrapper.scope.$destroy();\r\n return deferred.resolve();\r\n });\r\n\r\n return [deferred.promise];\r\n }\r\n\r\n return [(this.$animate.leave(wrapper.element)).then(() => wrapper.scope.$destroy())];\r\n }\r\n}","export const OPERATIONS = {\r\n PREPEND: 'prepend',\r\n APPEND: 'append',\r\n INSERT: 'insert',\r\n REMOVE: 'remove',\r\n NONE: 'none'\r\n};\r\n","import { OPERATIONS } from './utils';\r\n\r\nexport default function ScrollBuffer(elementRoutines, bufferSize, startIndex) {\r\n const buffer = Object.create(Array.prototype);\r\n\r\n angular.extend(buffer, {\r\n size: bufferSize,\r\n\r\n reset(startIndex) {\r\n buffer.remove(0, buffer.length);\r\n buffer.eof = false;\r\n buffer.bof = false;\r\n buffer.first = startIndex;\r\n buffer.next = startIndex;\r\n buffer.minIndex = startIndex;\r\n buffer.maxIndex = startIndex;\r\n buffer.minIndexUser = null;\r\n buffer.maxIndexUser = null;\r\n },\r\n\r\n append(items) {\r\n items.forEach((item) => {\r\n ++buffer.next;\r\n buffer.insert(OPERATIONS.APPEND, item);\r\n });\r\n buffer.maxIndex = buffer.eof ? buffer.next - 1 : Math.max(buffer.next - 1, buffer.maxIndex);\r\n },\r\n\r\n prepend(items, immutableTop) {\r\n items.reverse().forEach((item) => {\r\n if (immutableTop) {\r\n ++buffer.next;\r\n }\r\n else {\r\n --buffer.first;\r\n }\r\n buffer.insert(OPERATIONS.PREPEND, item);\r\n });\r\n buffer.minIndex = buffer.bof ? buffer.minIndex = buffer.first : Math.min(buffer.first, buffer.minIndex);\r\n },\r\n\r\n /**\r\n * inserts wrapped element in the buffer\r\n * the first argument is either operation keyword (see below) or a number for operation 'insert'\r\n * for insert the number is the index for the buffer element the new one have to be inserted after\r\n * operations: 'append', 'prepend', 'insert', 'remove', 'none'\r\n */\r\n insert(operation, item, shiftTop) {\r\n const wrapper = {\r\n item: item\r\n };\r\n\r\n if (operation % 1 === 0) { // it is an insert\r\n wrapper.op = OPERATIONS.INSERT;\r\n buffer.splice(operation, 0, wrapper);\r\n if (shiftTop) {\r\n buffer.first--;\r\n }\r\n else {\r\n buffer.next++;\r\n }\r\n } else {\r\n wrapper.op = operation;\r\n switch (operation) {\r\n case OPERATIONS.APPEND:\r\n buffer.push(wrapper);\r\n break;\r\n case OPERATIONS.PREPEND:\r\n buffer.unshift(wrapper);\r\n break;\r\n }\r\n }\r\n },\r\n\r\n // removes elements from buffer\r\n remove(arg1, arg2) {\r\n if (angular.isNumber(arg1)) {\r\n // removes items from arg1 (including) through arg2 (excluding)\r\n for (let i = arg1; i < arg2; i++) {\r\n elementRoutines.removeElement(buffer[i]);\r\n }\r\n return buffer.splice(arg1, arg2 - arg1);\r\n }\r\n // removes single item (wrapper) from the buffer\r\n buffer.splice(buffer.indexOf(arg1), 1);\r\n if (arg1.shiftTop && buffer.first === this.getAbsMinIndex()) {\r\n this.incrementMinIndex();\r\n }\r\n else {\r\n this.decrementMaxIndex();\r\n }\r\n if (arg1.shiftTop) {\r\n buffer.first++;\r\n }\r\n else {\r\n buffer.next--;\r\n }\r\n if (!buffer.length) {\r\n buffer.minIndex = Math.min(buffer.maxIndex, buffer.minIndex);\r\n }\r\n\r\n return elementRoutines.removeElementAnimated(arg1);\r\n },\r\n\r\n incrementMinIndex() {\r\n if (buffer.minIndexUser !== null) {\r\n if (buffer.minIndex > buffer.minIndexUser) {\r\n buffer.minIndexUser++;\r\n return;\r\n }\r\n if (buffer.minIndex === buffer.minIndexUser) {\r\n buffer.minIndexUser++;\r\n }\r\n }\r\n buffer.minIndex++;\r\n },\r\n\r\n decrementMaxIndex() {\r\n if (buffer.maxIndexUser !== null && buffer.maxIndex <= buffer.maxIndexUser) {\r\n buffer.maxIndexUser--;\r\n }\r\n buffer.maxIndex--;\r\n },\r\n\r\n getAbsMinIndex() {\r\n if (buffer.minIndexUser !== null) {\r\n return Math.min(buffer.minIndexUser, buffer.minIndex);\r\n }\r\n return buffer.minIndex;\r\n },\r\n\r\n getAbsMaxIndex() {\r\n if (buffer.maxIndexUser !== null) {\r\n return Math.max(buffer.maxIndexUser, buffer.maxIndex);\r\n }\r\n return buffer.maxIndex;\r\n },\r\n\r\n effectiveHeight(elements) {\r\n if (!elements.length) {\r\n return 0;\r\n }\r\n let top = Number.MAX_VALUE;\r\n let bottom = Number.NEGATIVE_INFINITY;\r\n elements.forEach((wrapper) => {\r\n if (wrapper.element[0].offsetParent) {\r\n // element style is not display:none\r\n top = Math.min(top, wrapper.element.offset().top);\r\n bottom = Math.max(bottom, wrapper.element.offset().top + wrapper.element.outerHeight(true));\r\n }\r\n });\r\n return Math.max(0, bottom - top);\r\n },\r\n\r\n getItems() {\r\n return buffer.filter(item => item.op === OPERATIONS.NONE);\r\n },\r\n\r\n getFirstItem() {\r\n const list = buffer.getItems();\r\n if (!list.length) {\r\n return null;\r\n }\r\n return list[0].item;\r\n },\r\n\r\n getLastItem() {\r\n const list = buffer.getItems();\r\n if (!list.length) {\r\n return null;\r\n }\r\n return list[list.length - 1].item;\r\n }\r\n\r\n });\r\n\r\n buffer.reset(startIndex);\r\n\r\n return buffer;\r\n}\r\n","// Can't just extend the Array, due to Babel does not support built-in classes extending\r\n// This solution was taken from https://stackoverflow.com/questions/46897414/es6-class-extends-array-workaround-for-es5-babel-transpile\r\nclass CacheProto {\r\n add(item) {\r\n for (let i = this.length - 1; i >= 0; i--) {\r\n if (this[i].index === item.scope.$index) {\r\n this[i].height = item.element.outerHeight();\r\n return;\r\n }\r\n }\r\n this.push({\r\n index: item.scope.$index,\r\n height: item.element.outerHeight()\r\n });\r\n this.sort((a, b) => ((a.index < b.index) ? -1 : ((a.index > b.index) ? 1 : 0)));\r\n }\r\n\r\n remove(argument, _shiftTop) {\r\n const index = argument % 1 === 0 ? argument : argument.scope.$index;\r\n const shiftTop = argument % 1 === 0 ? _shiftTop : argument.shiftTop;\r\n for (let i = this.length - 1; i >= 0; i--) {\r\n if (this[i].index === index) {\r\n this.splice(i, 1);\r\n break;\r\n }\r\n }\r\n if (!shiftTop) {\r\n for (let i = this.length - 1; i >= 0; i--) {\r\n if (this[i].index > index) {\r\n this[i].index--;\r\n }\r\n }\r\n }\r\n }\r\n\r\n clear() {\r\n this.length = 0;\r\n }\r\n}\r\n\r\nfunction Cache() {\r\n const instance = [];\r\n instance.push.apply(instance, arguments);\r\n Object.setPrototypeOf(instance, Cache.prototype);\r\n return instance;\r\n}\r\nCache.prototype = Object.create(Array.prototype);\r\nObject.getOwnPropertyNames(CacheProto.prototype).forEach(methodName =>\r\n Cache.prototype[methodName] = CacheProto.prototype[methodName]\r\n);\r\n\r\nfunction generateElement(template) {\r\n if (template.nodeType !== Node.ELEMENT_NODE) {\r\n throw new Error('ui-scroll directive requires an Element node for templating the view');\r\n }\r\n let element;\r\n switch (template.tagName.toLowerCase()) {\r\n case 'dl':\r\n throw new Error(`ui-scroll directive does not support <${template.tagName}> as a repeating tag: ${template.outerHTML}`);\r\n case 'tr':\r\n let table = angular.element('
    ');\r\n element = table.find('tr');\r\n break;\r\n case 'li':\r\n element = angular.element('
  • ');\r\n break;\r\n default:\r\n element = angular.element('
    ');\r\n }\r\n return element;\r\n}\r\n\r\nclass Padding {\r\n constructor(template) {\r\n this.element = generateElement(template);\r\n this.cache = new Cache();\r\n }\r\n\r\n height() {\r\n return this.element.height.apply(this.element, arguments);\r\n }\r\n}\r\n\r\nexport default Padding;","import Padding from './padding';\r\n\r\nexport default function Viewport(elementRoutines, buffer, element, viewportController, $rootScope, padding) {\r\n let topPadding = null;\r\n let bottomPadding = null;\r\n const viewport = viewportController && viewportController.viewport ? viewportController.viewport : angular.element(window);\r\n const container = viewportController && viewportController.container ? viewportController.container : undefined;\r\n const scope = viewportController && viewportController.scope ? viewportController.scope : $rootScope;\r\n\r\n viewport.css({\r\n 'overflow-anchor': 'none',\r\n 'overflow-y': 'auto',\r\n 'display': 'block'\r\n });\r\n\r\n function bufferPadding() {\r\n return viewport.outerHeight() * padding; // some extra space to initiate preload\r\n }\r\n\r\n angular.extend(viewport, {\r\n getScope() {\r\n return scope;\r\n },\r\n\r\n createPaddingElements(template) {\r\n topPadding = new Padding(template);\r\n bottomPadding = new Padding(template);\r\n element.before(topPadding.element);\r\n element.after(bottomPadding.element);\r\n topPadding.height(0);\r\n bottomPadding.height(0);\r\n },\r\n\r\n applyContainerStyle() {\r\n if (!container) {\r\n return true;\r\n }\r\n if (container !== viewport) {\r\n viewport.css('height', window.getComputedStyle(container[0]).height);\r\n }\r\n return viewport.height() > 0;\r\n },\r\n\r\n bottomDataPos() {\r\n let scrollHeight = viewport[0].scrollHeight;\r\n scrollHeight = scrollHeight != null ? scrollHeight : viewport[0].document.documentElement.scrollHeight;\r\n return scrollHeight - bottomPadding.height();\r\n },\r\n\r\n topDataPos() {\r\n return topPadding.height();\r\n },\r\n\r\n bottomVisiblePos() {\r\n return viewport.scrollTop() + viewport.outerHeight();\r\n },\r\n\r\n topVisiblePos() {\r\n return viewport.scrollTop();\r\n },\r\n\r\n insertElement(e, sibling) {\r\n return elementRoutines.insertElement(e, sibling || topPadding.element);\r\n },\r\n\r\n insertElementAnimated(e, sibling) {\r\n return elementRoutines.insertElementAnimated(e, sibling || topPadding.element);\r\n },\r\n\r\n shouldLoadBottom() {\r\n return !buffer.eof && viewport.bottomDataPos() < viewport.bottomVisiblePos() + bufferPadding();\r\n },\r\n\r\n clipBottom() {\r\n // clip the invisible items off the bottom\r\n let overage = 0;\r\n let overageHeight = 0;\r\n let itemHeight = 0;\r\n let emptySpaceHeight = viewport.bottomDataPos() - viewport.bottomVisiblePos() - bufferPadding();\r\n\r\n for (let i = buffer.length - 1; i >= 0; i--) {\r\n itemHeight = buffer[i].element.outerHeight(true);\r\n if (overageHeight + itemHeight > emptySpaceHeight) {\r\n break;\r\n }\r\n bottomPadding.cache.add(buffer[i]);\r\n overageHeight += itemHeight;\r\n overage++;\r\n }\r\n\r\n if (overage > 0) {\r\n buffer.eof = false;\r\n buffer.remove(buffer.length - overage, buffer.length);\r\n buffer.next -= overage;\r\n viewport.adjustPaddings();\r\n }\r\n },\r\n\r\n shouldLoadTop() {\r\n return !buffer.bof && (viewport.topDataPos() > viewport.topVisiblePos() - bufferPadding());\r\n },\r\n\r\n clipTop() {\r\n // clip the invisible items off the top\r\n let overage = 0;\r\n let overageHeight = 0;\r\n let itemHeight = 0;\r\n let emptySpaceHeight = viewport.topVisiblePos() - viewport.topDataPos() - bufferPadding();\r\n\r\n for (let i = 0; i < buffer.length; i++) {\r\n itemHeight = buffer[i].element.outerHeight(true);\r\n if (overageHeight + itemHeight > emptySpaceHeight) {\r\n break;\r\n }\r\n topPadding.cache.add(buffer[i]);\r\n overageHeight += itemHeight;\r\n overage++;\r\n }\r\n\r\n if (overage > 0) {\r\n // we need to adjust top padding element before items are removed from top\r\n // to avoid strange behaviour of scroll bar during remove top items when we are at the very bottom\r\n topPadding.height(topPadding.height() + overageHeight);\r\n buffer.bof = false;\r\n buffer.remove(0, overage);\r\n buffer.first += overage;\r\n }\r\n },\r\n\r\n adjustPaddings() {\r\n if (!buffer.length) {\r\n return;\r\n }\r\n\r\n // precise heights calculation based on items that are in buffer or that were in buffer once\r\n const visibleItemsHeight = buffer.reduce((summ, item) => summ + item.element.outerHeight(true), 0);\r\n\r\n let topPaddingHeight = 0, topCount = 0;\r\n topPadding.cache.forEach(item => {\r\n if (item.index < buffer.first) {\r\n topPaddingHeight += item.height;\r\n topCount++;\r\n }\r\n });\r\n\r\n let bottomPaddingHeight = 0, bottomCount = 0;\r\n bottomPadding.cache.forEach(item => {\r\n if (item.index >= buffer.next) {\r\n bottomPaddingHeight += item.height;\r\n bottomCount++;\r\n }\r\n });\r\n\r\n const totalHeight = visibleItemsHeight + topPaddingHeight + bottomPaddingHeight;\r\n const averageItemHeight = totalHeight / (topCount + bottomCount + buffer.length);\r\n\r\n // average heights calculation, items that have never been reached\r\n let adjustTopPadding = buffer.minIndexUser !== null && buffer.minIndex > buffer.minIndexUser;\r\n let adjustBottomPadding = buffer.maxIndexUser !== null && buffer.maxIndex < buffer.maxIndexUser;\r\n let topPaddingHeightAdd = adjustTopPadding ? (buffer.minIndex - buffer.minIndexUser) * averageItemHeight : 0;\r\n let bottomPaddingHeightAdd = adjustBottomPadding ? (buffer.maxIndexUser - buffer.maxIndex) * averageItemHeight : 0;\r\n\r\n // paddings combine adjustment\r\n topPadding.height(topPaddingHeight + topPaddingHeightAdd);\r\n bottomPadding.height(bottomPaddingHeight + bottomPaddingHeightAdd);\r\n },\r\n\r\n onAfterMinIndexSet(topPaddingHeightOld) {\r\n // additional scrollTop adjustment in case of datasource.minIndex external set\r\n if (buffer.minIndexUser !== null && buffer.minIndex > buffer.minIndexUser) {\r\n let diff = topPadding.height() - topPaddingHeightOld;\r\n viewport.scrollTop(viewport.scrollTop() + diff);\r\n while((diff -= viewport.scrollTop()) > 0) {\r\n bottomPadding.height(bottomPadding.height() + diff);\r\n viewport.scrollTop(viewport.scrollTop() + diff);\r\n }\r\n }\r\n },\r\n\r\n onAfterPrepend(updates) {\r\n if (!updates.prepended.length) {\r\n return;\r\n }\r\n const height = buffer.effectiveHeight(updates.prepended);\r\n const paddingHeight = topPadding.height() - height;\r\n if (paddingHeight >= 0) {\r\n topPadding.height(paddingHeight);\r\n return;\r\n }\r\n const position = viewport.scrollTop();\r\n const newPosition = position - paddingHeight;\r\n viewport.synthetic = { previous: position, next: newPosition };\r\n topPadding.height(0);\r\n viewport.scrollTop(newPosition);\r\n },\r\n\r\n resetTopPadding() {\r\n topPadding.height(0);\r\n topPadding.cache.clear();\r\n },\r\n\r\n resetBottomPadding() {\r\n bottomPadding.height(0);\r\n bottomPadding.cache.clear();\r\n },\r\n\r\n removeCacheItem(item, shiftTop) {\r\n topPadding.cache.remove(item, shiftTop);\r\n bottomPadding.cache.remove(item, shiftTop);\r\n },\r\n\r\n removeItem(item) {\r\n this.removeCacheItem(item);\r\n return buffer.remove(item);\r\n }\r\n });\r\n\r\n return viewport;\r\n}\r\n","import { OPERATIONS } from './utils';\r\n\r\nclass Adapter {\r\n\r\n constructor($scope, $parse, $attr, viewport, buffer, doAdjust, reload) {\r\n this.$parse = $parse;\r\n this.$attr = $attr;\r\n this.viewport = viewport;\r\n this.buffer = buffer;\r\n\r\n this.doAdjust = doAdjust;\r\n this.reload = reload;\r\n\r\n this.isLoading = false;\r\n this.disabled = false;\r\n\r\n const viewportScope = viewport.getScope();\r\n this.startScope = viewportScope.$parent ? viewportScope : $scope;\r\n\r\n this.publicContext = {};\r\n this.assignAdapter($attr.adapter);\r\n this.generatePublicContext();\r\n }\r\n\r\n assignAdapter(adapterAttr) {\r\n if (!adapterAttr || !(adapterAttr = adapterAttr.replace(/^\\s+|\\s+$/gm, ''))) {\r\n return;\r\n }\r\n let adapterOnScope;\r\n\r\n try {\r\n this.$parse(adapterAttr).assign(this.startScope, {});\r\n adapterOnScope = this.$parse(adapterAttr)(this.startScope);\r\n }\r\n catch (error) {\r\n error.message = `Angular ui-scroll Adapter assignment exception.\\n` +\r\n `Can't parse \"${adapterAttr}\" expression.\\n` +\r\n error.message;\r\n throw error;\r\n }\r\n\r\n angular.extend(adapterOnScope, this.publicContext);\r\n this.publicContext = adapterOnScope;\r\n }\r\n\r\n generatePublicContext() {\r\n // these methods will be accessible out of ui-scroll via user defined adapter\r\n const publicMethods = ['reload', 'applyUpdates', 'append', 'prepend', 'isBOF', 'isEOF', 'isEmpty'];\r\n for (let i = publicMethods.length - 1; i >= 0; i--) {\r\n this.publicContext[publicMethods[i]] = this[publicMethods[i]].bind(this);\r\n }\r\n\r\n // these read-only props will be accessible out of ui-scroll via user defined adapter\r\n const publicProps = ['isLoading', 'topVisible', 'topVisibleElement', 'topVisibleScope', 'bottomVisible', 'bottomVisibleElement', 'bottomVisibleScope'];\r\n for (let i = publicProps.length - 1; i >= 0; i--) {\r\n let property, attr = this.$attr[publicProps[i]];\r\n Object.defineProperty(this, publicProps[i], {\r\n get: () => property,\r\n set: (value) => {\r\n property = value;\r\n this.publicContext[publicProps[i]] = value;\r\n if (attr) {\r\n this.$parse(attr).assign(this.startScope, value);\r\n }\r\n }\r\n });\r\n }\r\n\r\n // read-only immediately calculated public properties\r\n const publicPropsImmediate = ['bufferFirst', 'bufferLast', 'bufferLength'];\r\n for (let i = publicPropsImmediate.length - 1; i >= 0; i--) {\r\n Object.defineProperty(this.publicContext, publicPropsImmediate[i], {\r\n get: () => this[publicPropsImmediate[i]]\r\n });\r\n }\r\n\r\n // non-read-only public property\r\n Object.defineProperty(this.publicContext, 'disabled', {\r\n get: () => this.disabled,\r\n set: (value) => (!(this.disabled = value)) ? this.doAdjust() : null\r\n });\r\n }\r\n\r\n loading(value) {\r\n this.isLoading = value;\r\n }\r\n\r\n isBOF() {\r\n return this.buffer.bof;\r\n }\r\n\r\n isEOF() {\r\n return this.buffer.eof;\r\n }\r\n\r\n isEmpty() {\r\n return !this.buffer.length;\r\n }\r\n\r\n get bufferLength() {\r\n return this.buffer.getItems().length;\r\n }\r\n\r\n get bufferFirst() {\r\n return this.buffer.getFirstItem();\r\n }\r\n\r\n get bufferLast() {\r\n return this.buffer.getLastItem();\r\n }\r\n\r\n append(newItems) {\r\n this.buffer.append(newItems);\r\n this.doAdjust();\r\n this.viewport.clipTop();\r\n this.viewport.clipBottom();\r\n }\r\n\r\n prepend(newItems, options = {}) {\r\n this.buffer.prepend(newItems, options.immutableTop);\r\n this.doAdjust();\r\n this.viewport.clipTop();\r\n this.viewport.clipBottom();\r\n }\r\n\r\n applyUpdates(arg1, arg2, arg3) {\r\n if (typeof arg1 === 'function') {\r\n this.applyUpdatesFunc(arg1, arg2);\r\n } else {\r\n this.applyUpdatesIndex(arg1, arg2, arg3);\r\n }\r\n this.doAdjust();\r\n }\r\n\r\n applyUpdatesFunc(cb, options = {}) {\r\n this.buffer.slice(0).forEach((wrapper) => {\r\n // we need to do it on the buffer clone, because buffer content\r\n // may change as we iterate through\r\n this.applyUpdate(wrapper, cb(wrapper.item, wrapper.scope, wrapper.element), options);\r\n });\r\n }\r\n\r\n applyUpdatesIndex(index, newItems, options = {}) {\r\n if (index % 1 !== 0) {\r\n throw new Error('applyUpdates - ' + index + ' is not a valid index (should be an integer)');\r\n }\r\n const _index = index - this.buffer.first;\r\n\r\n // apply updates only within buffer\r\n if (_index >= 0 && _index < this.buffer.length) {\r\n this.applyUpdate(this.buffer[_index], newItems, options);\r\n }\r\n // out-of-buffer case: deletion may affect Paddings\r\n else if(index >= this.buffer.getAbsMinIndex() && index <= this.buffer.getAbsMaxIndex()) {\r\n if(angular.isArray(newItems) && !newItems.length) {\r\n this.viewport.removeCacheItem(index, !options.immutableTop && index === this.buffer.minIndex);\r\n if (!options.immutableTop && index === this.buffer.getAbsMinIndex()) {\r\n this.buffer.incrementMinIndex();\r\n }\r\n else {\r\n this.buffer.decrementMaxIndex();\r\n }\r\n }\r\n }\r\n }\r\n\r\n applyUpdate(wrapper, newItems, options = {}) {\r\n if (!angular.isArray(newItems)) {\r\n return;\r\n }\r\n let position = this.buffer.indexOf(wrapper);\r\n if (!newItems.reverse().some(newItem => newItem === wrapper.item)) {\r\n wrapper.op = OPERATIONS.REMOVE;\r\n // try to catch \"first\" edge case on remove\r\n if (!options.immutableTop && !newItems.length) {\r\n // this is the first item, or the previous one's part of the \"shift-top\" group\r\n if (\r\n (position === 0 && this.buffer.bof) ||\r\n (position !== 0 && this.buffer[position - 1].shiftTop)\r\n ) {\r\n wrapper.shiftTop = true;\r\n }\r\n }\r\n }\r\n newItems.forEach((newItem) => {\r\n if (newItem === wrapper.item) {\r\n position--;\r\n } else {\r\n // 3 parameter (shiftTop) is to catch \"first\" edge case on insert\r\n this.buffer.insert(position + 1, newItem, !options.immutableTop && position === -1);\r\n }\r\n });\r\n }\r\n\r\n calculateProperties() {\r\n let rowTop = null, topHeight = 0;\r\n let topDone = false, bottomDone = false;\r\n const length = this.buffer.length;\r\n\r\n for (let i = 0; i < length; i++) {\r\n const item = this.buffer[i];\r\n const itemTop = item.element.offset().top;\r\n\r\n if (rowTop !== itemTop) { // a new row condition\r\n const itemHeight = item.element.outerHeight(true);\r\n const top = this.viewport.topDataPos() + topHeight + itemHeight;\r\n\r\n if (!topDone && top > this.viewport.topVisiblePos()) {\r\n topDone = true;\r\n this['topVisible'] = item.item;\r\n this['topVisibleElement'] = item.element;\r\n this['topVisibleScope'] = item.scope;\r\n }\r\n if (!bottomDone && (top >= this.viewport.bottomVisiblePos() || (i === length - 1 && this.isEOF()))) {\r\n bottomDone = true;\r\n this['bottomVisible'] = item.item;\r\n this['bottomVisibleElement'] = item.element;\r\n this['bottomVisibleScope'] = item.scope;\r\n }\r\n topHeight += itemHeight;\r\n }\r\n rowTop = itemTop;\r\n\r\n if (topDone && bottomDone) {\r\n break;\r\n }\r\n }\r\n }\r\n\r\n}\r\n\r\nexport default Adapter;\r\n","import JQLiteExtras from './modules/jqLiteExtras';\r\nimport ElementRoutines from './modules/elementRoutines.js';\r\nimport ScrollBuffer from './modules/buffer.js';\r\nimport Viewport from './modules/viewport.js';\r\nimport Adapter from './modules/adapter.js';\r\nimport { OPERATIONS } from './modules/utils';\r\n\r\nangular.module('ui.scroll', [])\r\n\r\n .constant('JQLiteExtras', JQLiteExtras)\r\n .run(['JQLiteExtras', (JQLiteExtras) => {\r\n const elt = angular.element;\r\n !(window.jQuery && elt.fn && elt.fn.jquery) ? (new JQLiteExtras()).registerFor(elt) : null;\r\n ElementRoutines.addCSSRules();\r\n }])\r\n\r\n .directive('uiScrollViewport', function () {\r\n return {\r\n restrict: 'A',\r\n controller: [\r\n '$scope',\r\n '$element',\r\n function (scope, element) {\r\n this.container = element;\r\n this.viewport = element;\r\n this.scope = scope;\r\n\r\n angular.forEach(element.children(), child => {\r\n if (child.tagName.toLowerCase() === 'tbody') {\r\n this.viewport = angular.element(child);\r\n }\r\n });\r\n\r\n return this;\r\n }\r\n ]\r\n };\r\n })\r\n\r\n .directive('uiScroll', [\r\n '$log',\r\n '$injector',\r\n '$rootScope',\r\n '$timeout',\r\n '$interval',\r\n '$q',\r\n '$parse',\r\n function (console, $injector, $rootScope, $timeout, $interval, $q, $parse) {\r\n\r\n return {\r\n require: ['?^uiScrollViewport'],\r\n restrict: 'A',\r\n transclude: 'element',\r\n priority: 1000,\r\n terminal: true,\r\n link: link\r\n };\r\n\r\n function link($scope, element, $attr, controllers, linker) {\r\n const match = $attr.uiScroll.match(/^\\s*(\\w+)\\s+in\\s+([(\\w|\\$)\\.]+)\\s*$/);\r\n if (!match) {\r\n throw new Error('Expected uiScroll in form of \\'_item_ in _datasource_\\' but got \\'' + $attr.uiScroll + '\\'');\r\n }\r\n\r\n function parseNumber(value, defaultValue, isFloat) {\r\n if (!isFloat) {\r\n value = value === null ? defaultValue : Math.floor(value);\r\n }\r\n return isNaN(value) ? defaultValue : value;\r\n }\r\n\r\n function parseNumericAttr(value, defaultValue, isFloat) {\r\n const result = $parse(value)($scope);\r\n return parseNumber(result, defaultValue, isFloat);\r\n }\r\n\r\n function parseBooleanAttr(value, defaultValue) {\r\n const result = $parse(value)($scope);\r\n return typeof result === 'boolean' ? result : defaultValue;\r\n }\r\n\r\n const BUFFER_MIN = 3;\r\n const BUFFER_DEFAULT = 10;\r\n const PADDING_MIN = 0.3;\r\n const PADDING_DEFAULT = 0.5;\r\n const HANDLE_INERTIA_DEFAULT = true;\r\n const START_INDEX_DEFAULT = 1;\r\n const MAX_VIEWPORT_DELAY = 500;\r\n const VIEWPORT_POLLING_INTERVAL = 50;\r\n\r\n let datasource = null;\r\n const itemName = match[1];\r\n const datasourceName = match[2];\r\n const viewportController = controllers[0];\r\n const bufferSize = Math.max(BUFFER_MIN, parseNumericAttr($attr.bufferSize, BUFFER_DEFAULT));\r\n const padding = Math.max(PADDING_MIN, parseNumericAttr($attr.padding, PADDING_DEFAULT, true));\r\n const handleInertia = parseBooleanAttr($attr.handleInertia, HANDLE_INERTIA_DEFAULT);\r\n let startIndex = parseNumericAttr($attr.startIndex, START_INDEX_DEFAULT);\r\n let ridActual = 0; // current data revision id\r\n let pending = [];\r\n\r\n const elementRoutines = new ElementRoutines($injector, $q);\r\n const buffer = new ScrollBuffer(elementRoutines, bufferSize, startIndex);\r\n const viewport = new Viewport(elementRoutines, buffer, element, viewportController, $rootScope, padding);\r\n const adapter = new Adapter($scope, $parse, $attr, viewport, buffer, doAdjust, reload);\r\n\r\n if (viewportController) {\r\n viewportController.adapter = adapter;\r\n }\r\n\r\n const isDatasourceValid = () =>\r\n Object.prototype.toString.call(datasource) === '[object Object]' && typeof datasource.get === 'function';\r\n\r\n datasource = $parse(datasourceName)($scope); // try to get datasource on scope\r\n if (!isDatasourceValid()) {\r\n datasource = $injector.get(datasourceName); // try to inject datasource as service\r\n if (!isDatasourceValid()) {\r\n throw new Error(datasourceName + ' is not a valid datasource');\r\n }\r\n }\r\n\r\n let onRenderHandlers = [];\r\n function onRenderHandlersRunner() {\r\n onRenderHandlers.forEach(handler => handler.run());\r\n onRenderHandlers = [];\r\n }\r\n function persistDatasourceIndex(datasource, propName) {\r\n let getter;\r\n // need to postpone min/maxIndexUser processing if the view is empty\r\n if(angular.isNumber(datasource[propName])) {\r\n getter = datasource[propName];\r\n if(angular.isNumber(getter)) {\r\n onRenderHandlers = onRenderHandlers.filter(handler => handler.id !== propName);\r\n onRenderHandlers.push({\r\n id: propName,\r\n run: () => datasource[propName] = getter\r\n });\r\n }\r\n }\r\n }\r\n\r\n function defineDatasourceIndex(datasource, propName, propUserName) {\r\n const descriptor = Object.getOwnPropertyDescriptor(datasource, propName);\r\n if (descriptor && (descriptor.set || descriptor.get)) {\r\n return;\r\n }\r\n let getter;\r\n persistDatasourceIndex(datasource, propName);\r\n Object.defineProperty(datasource, propName, {\r\n set: (value) => {\r\n getter = value;\r\n if(pending.length && !buffer.length) {\r\n persistDatasourceIndex(datasource, propName);\r\n return;\r\n }\r\n buffer[propUserName] = value;\r\n const topPaddingHeightOld = viewport.topDataPos();\r\n viewport.adjustPaddings();\r\n if (propName === 'minIndex') {\r\n viewport.onAfterMinIndexSet(topPaddingHeightOld);\r\n }\r\n },\r\n get: () => getter\r\n });\r\n }\r\n\r\n defineDatasourceIndex(datasource, 'minIndex', 'minIndexUser');\r\n defineDatasourceIndex(datasource, 'maxIndex', 'maxIndexUser');\r\n\r\n const fetchNext = (datasource.get.length !== 2) ?\r\n (success) => datasource.get(buffer.next, bufferSize, success) :\r\n (success) => {\r\n datasource.get({\r\n index: buffer.next,\r\n append: buffer.length ? buffer[buffer.length - 1].item : void 0,\r\n count: bufferSize\r\n }, success);\r\n };\r\n\r\n const fetchPrevious = (datasource.get.length !== 2) ?\r\n (success) => datasource.get(buffer.first - bufferSize, bufferSize, success) :\r\n (success) => {\r\n datasource.get({\r\n index: buffer.first - bufferSize,\r\n prepend: buffer.length ? buffer[0].item : void 0,\r\n count: bufferSize\r\n }, success);\r\n };\r\n\r\n const initialize = () => {\r\n let tryCount = 0;\r\n if(!viewport.applyContainerStyle()) {\r\n const timer = $interval(() => {\r\n tryCount++;\r\n if(viewport.applyContainerStyle()) {\r\n $interval.cancel(timer);\r\n doAdjust();\r\n }\r\n if(tryCount * VIEWPORT_POLLING_INTERVAL >= MAX_VIEWPORT_DELAY) {\r\n $interval.cancel(timer);\r\n throw Error(`ui-scroll directive requires a viewport with non-zero height in ${MAX_VIEWPORT_DELAY}ms`);\r\n }\r\n }, VIEWPORT_POLLING_INTERVAL);\r\n }\r\n else {\r\n doAdjust();\r\n }\r\n };\r\n\r\n /**\r\n * Build padding elements\r\n *\r\n * Calling linker is the only way I found to get access to the tag name of the template\r\n * to prevent the directive scope from pollution a new scope is created and destroyed\r\n * right after the builder creation is completed\r\n */\r\n linker((clone, scope) => {\r\n viewport.createPaddingElements(clone[0]);\r\n // we do not include the clone in the DOM. It means that the nested directives will not\r\n // be able to reach the parent directives, but in this case it is intentional because we\r\n // created the clone to access the template tag name\r\n scope.$destroy();\r\n clone.remove();\r\n });\r\n\r\n $scope.$on('$destroy', () => {\r\n unbindEvents();\r\n viewport.off('mousewheel', wheelHandler);\r\n });\r\n\r\n viewport.on('mousewheel', wheelHandler);\r\n\r\n initialize();\r\n\r\n /* Private function definitions */\r\n\r\n function isInvalid(rid) {\r\n return (rid && rid !== ridActual) || $scope.$$destroyed;\r\n }\r\n\r\n function bindEvents() {\r\n viewport.on('resize', resizeAndScrollHandler);\r\n viewport.on('scroll', resizeAndScrollHandler);\r\n }\r\n\r\n function unbindEvents() {\r\n viewport.off('resize', resizeAndScrollHandler);\r\n viewport.off('scroll', resizeAndScrollHandler);\r\n }\r\n\r\n function reload() {\r\n unbindEvents();\r\n viewport.resetTopPadding();\r\n viewport.resetBottomPadding();\r\n if (arguments.length) {\r\n startIndex = parseNumber(arguments[0], START_INDEX_DEFAULT, false);\r\n }\r\n buffer.reset(startIndex);\r\n persistDatasourceIndex(datasource, 'minIndex');\r\n persistDatasourceIndex(datasource, 'maxIndex');\r\n doAdjust();\r\n }\r\n\r\n function isElementVisible(wrapper) {\r\n return wrapper.element.height() && wrapper.element[0].offsetParent;\r\n }\r\n\r\n function visibilityWatcher(wrapper) {\r\n if (isElementVisible(wrapper)) {\r\n buffer.forEach((item) => {\r\n if (typeof item.unregisterVisibilityWatcher === 'function') {\r\n item.unregisterVisibilityWatcher();\r\n delete item.unregisterVisibilityWatcher;\r\n }\r\n });\r\n if (!pending.length) {\r\n $timeout(() => doAdjust());\r\n }\r\n }\r\n }\r\n\r\n function insertWrapperContent(wrapper, insertAfter) {\r\n createElement(wrapper, insertAfter, viewport.insertElement);\r\n if (!isElementVisible(wrapper)) {\r\n wrapper.unregisterVisibilityWatcher = wrapper.scope.$watch(() => visibilityWatcher(wrapper));\r\n }\r\n elementRoutines.hideElement(wrapper); // hide inserted elements before data binding\r\n }\r\n\r\n function createElement(wrapper, insertAfter, insertElement) {\r\n let promises = null;\r\n const sibling = (insertAfter > 0) ? buffer[insertAfter - 1].element : undefined;\r\n linker((clone, scope) => {\r\n promises = insertElement(clone, sibling);\r\n wrapper.element = clone;\r\n wrapper.scope = scope;\r\n scope[itemName] = wrapper.item;\r\n });\r\n // ui-scroll-grid apply\r\n if (adapter.transform) {\r\n const tdInitializer = wrapper.scope.uiScrollTdInitializer;\r\n if (tdInitializer && tdInitializer.linking) {\r\n adapter.transform(wrapper.scope, wrapper.element);\r\n } else {\r\n wrapper.scope.uiScrollTdInitializer = {\r\n onLink: () => adapter.transform(wrapper.scope, wrapper.element),\r\n scope: wrapper.scope\r\n };\r\n }\r\n }\r\n return promises;\r\n }\r\n\r\n function updateDOM() {\r\n let promises = [];\r\n const toBePrepended = [];\r\n const toBeRemoved = [];\r\n const inserted = [];\r\n\r\n buffer.forEach((wrapper, i) => {\r\n switch (wrapper.op) {\r\n case OPERATIONS.PREPEND:\r\n toBePrepended.unshift(wrapper);\r\n break;\r\n case OPERATIONS.APPEND:\r\n insertWrapperContent(wrapper, i);\r\n wrapper.op = OPERATIONS.NONE;\r\n inserted.push(wrapper);\r\n break;\r\n case OPERATIONS.INSERT:\r\n promises = promises.concat(createElement(wrapper, i, viewport.insertElementAnimated));\r\n wrapper.op = OPERATIONS.NONE;\r\n inserted.push(wrapper);\r\n break;\r\n case OPERATIONS.REMOVE:\r\n toBeRemoved.push(wrapper);\r\n }\r\n });\r\n\r\n toBeRemoved.forEach((wrapper) => promises = promises.concat(viewport.removeItem(wrapper)));\r\n\r\n if (toBePrepended.length)\r\n toBePrepended.forEach((wrapper) => {\r\n insertWrapperContent(wrapper);\r\n wrapper.op = OPERATIONS.NONE;\r\n });\r\n\r\n buffer.forEach((item, i) => item.scope.$index = buffer.first + i);\r\n\r\n return {\r\n prepended: toBePrepended,\r\n removed: toBeRemoved,\r\n inserted: inserted,\r\n animated: promises\r\n };\r\n\r\n }\r\n\r\n function updatePaddings(rid, updates) {\r\n // schedule another doAdjust after animation completion\r\n if (updates.animated.length) {\r\n $q.all(updates.animated).then(() => {\r\n viewport.adjustPaddings();\r\n doAdjust(rid);\r\n });\r\n } else {\r\n viewport.adjustPaddings();\r\n }\r\n }\r\n\r\n function enqueueFetch(rid, updates) {\r\n if (viewport.shouldLoadBottom()) {\r\n if (!updates || buffer.effectiveHeight(updates.inserted) > 0) {\r\n // this means that at least one item appended in the last batch has height > 0\r\n if (pending.push(true) === 1) {\r\n adapter.loading(true);\r\n fetch(rid);\r\n }\r\n }\r\n } else if (viewport.shouldLoadTop()) {\r\n if ((!updates || buffer.effectiveHeight(updates.prepended) > 0) || pending[0]) {\r\n // this means that at least one item appended in the last batch has height > 0\r\n // pending[0] = true means that previous fetch was appending. We need to force at least one prepend\r\n // BTW there will always be at least 1 element in the pending array because bottom is fetched first\r\n if (pending.push(false) === 1) {\r\n adapter.loading(true);\r\n fetch(rid);\r\n }\r\n }\r\n }\r\n }\r\n\r\n function processUpdates() {\r\n const updates = updateDOM();\r\n\r\n // We need the item bindings to be processed before we can do adjustments\r\n !$scope.$$phase && !$rootScope.$$phase && $scope.$digest();\r\n\r\n updates.inserted.forEach(w => elementRoutines.showElement(w));\r\n updates.prepended.forEach(w => elementRoutines.showElement(w));\r\n return updates;\r\n }\r\n\r\n function doAdjust(rid) {\r\n if (!rid) { // dismiss pending requests\r\n pending = [];\r\n rid = ++ridActual;\r\n }\r\n\r\n const updates = processUpdates();\r\n\r\n if (isInvalid(rid)) {\r\n return;\r\n }\r\n\r\n updatePaddings(rid, updates);\r\n enqueueFetch(rid);\r\n\r\n if (!pending.length) {\r\n adapter.calculateProperties();\r\n }\r\n }\r\n\r\n function doAdjustAfterFetch(rid) {\r\n const updates = processUpdates();\r\n\r\n viewport.onAfterPrepend(updates);\r\n\r\n if (isInvalid(rid)) {\r\n return;\r\n }\r\n\r\n updatePaddings(rid, updates);\r\n onRenderHandlersRunner();\r\n enqueueFetch(rid, updates);\r\n pending.shift();\r\n\r\n if (pending.length)\r\n fetch(rid);\r\n else {\r\n adapter.loading(false);\r\n bindEvents();\r\n adapter.calculateProperties();\r\n }\r\n }\r\n\r\n function fetch(rid) {\r\n if (pending[0]) {// scrolling down\r\n if (buffer.length && !viewport.shouldLoadBottom()) {\r\n doAdjustAfterFetch(rid);\r\n } else {\r\n fetchNext((result) => {\r\n if (isInvalid(rid)) {\r\n return;\r\n }\r\n\r\n if (result.length < bufferSize) {\r\n buffer.eof = true;\r\n }\r\n\r\n if (result.length > 0) {\r\n viewport.clipTop();\r\n buffer.append(result);\r\n }\r\n\r\n doAdjustAfterFetch(rid);\r\n });\r\n }\r\n } else { // scrolling up\r\n if (buffer.length && !viewport.shouldLoadTop()) {\r\n doAdjustAfterFetch(rid);\r\n } else {\r\n fetchPrevious((result) => {\r\n if (isInvalid(rid)) {\r\n return;\r\n }\r\n\r\n if (result.length < bufferSize) {\r\n buffer.bof = true;\r\n // log 'bof is reached'\r\n }\r\n\r\n if (result.length > 0) {\r\n if (buffer.length) {\r\n viewport.clipBottom();\r\n }\r\n buffer.prepend(result);\r\n }\r\n\r\n doAdjustAfterFetch(rid);\r\n });\r\n }\r\n }\r\n }\r\n\r\n function fixInertia() {\r\n if (!viewport.synthetic) {\r\n return;\r\n }\r\n const oldPosition = viewport.synthetic.previous;\r\n const newPosition = viewport.synthetic.next;\r\n if (viewport.scrollTop() !== newPosition) {\r\n requestAnimationFrame(() => {\r\n const position = viewport.scrollTop();\r\n const diff = oldPosition - position;\r\n if (diff > 0) { // inertia over synthetic\r\n viewport.scrollTop(newPosition - diff);\r\n } else {\r\n viewport.scrollTop(newPosition);\r\n }\r\n viewport.synthetic = null;\r\n });\r\n return true;\r\n }\r\n viewport.synthetic = null;\r\n }\r\n\r\n function resizeAndScrollHandler() {\r\n if (handleInertia && fixInertia()) {\r\n return;\r\n }\r\n if (!$rootScope.$$phase && !adapter.isLoading && !adapter.disabled) {\r\n\r\n enqueueFetch(ridActual);\r\n\r\n if (pending.length) {\r\n unbindEvents();\r\n } else {\r\n adapter.calculateProperties();\r\n !$scope.$$phase && $scope.$digest();\r\n }\r\n }\r\n }\r\n\r\n function wheelHandler(event) {\r\n if (!adapter.disabled) {\r\n const scrollTop = viewport[0].scrollTop;\r\n const yMax = viewport[0].scrollHeight - viewport[0].clientHeight;\r\n\r\n if ((scrollTop === 0 && !buffer.bof) || (scrollTop === yMax && !buffer.eof)) {\r\n event.preventDefault();\r\n }\r\n }\r\n }\r\n }\r\n\r\n }\r\n ]);\r\n"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"ui-scroll.js","mappings":"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","sources":["webpack://angular-ui-scroll/./src/modules/jqLiteExtras.js","webpack://angular-ui-scroll/./src/modules/elementRoutines.js","webpack://angular-ui-scroll/./src/modules/utils.js","webpack://angular-ui-scroll/./src/modules/buffer.js","webpack://angular-ui-scroll/./src/modules/padding.js","webpack://angular-ui-scroll/./src/modules/viewport.js","webpack://angular-ui-scroll/./src/modules/adapter.js","webpack://angular-ui-scroll/./src/ui-scroll.js"],"sourcesContent":["/*!\r\n globals: angular, window\r\n List of used element methods available in JQuery but not in JQuery Lite\r\n element.before(elem)\r\n element.height()\r\n element.outerHeight(true)\r\n element.height(value) = only for Top/Bottom padding elements\r\n element.scrollTop()\r\n element.scrollTop(value)\r\n */\r\n\r\nexport default class JQLiteExtras {\r\n\r\n registerFor(element) {\r\n let convertToPx, css, getStyle, isWindow;\r\n // angular implementation blows up if elem is the window\r\n css = angular.element.prototype.css;\r\n\r\n element.prototype.css = function (name, value) {\r\n let self = this;\r\n let elem = self[0];\r\n if (!(!elem || elem.nodeType === 3 || elem.nodeType === 8 || !elem.style)) {\r\n return css.call(self, name, value);\r\n }\r\n };\r\n\r\n // as defined in angularjs v1.0.5\r\n isWindow = (obj) => obj && obj.document && obj.location && obj.alert && obj.setInterval;\r\n\r\n function scrollTo(self, direction, value) {\r\n let elem = self[0];\r\n let [method, prop, preserve] = {\r\n top: [\r\n 'scrollTop',\r\n 'pageYOffset',\r\n 'scrollLeft'\r\n ],\r\n left: [\r\n 'scrollLeft',\r\n 'pageXOffset',\r\n 'scrollTop'\r\n ]\r\n }[direction];\r\n\r\n const isValueDefined = typeof value !== 'undefined';\r\n if (isWindow(elem)) {\r\n if (isValueDefined) {\r\n return elem.scrollTo(self[preserve].call(self), value);\r\n }\r\n return (prop in elem) ? elem[prop] : elem.document.documentElement[method];\r\n } else {\r\n if (isValueDefined) {\r\n elem[method] = value;\r\n }\r\n return elem[method];\r\n }\r\n }\r\n\r\n if (window.getComputedStyle) {\r\n getStyle = (elem) => window.getComputedStyle(elem, null);\r\n convertToPx = (elem, value) => parseFloat(value);\r\n } else {\r\n getStyle = (elem) => elem.currentStyle;\r\n convertToPx = (elem, value) => {\r\n let left, result, rs, rsLeft, style;\r\n let core_pnum = /[+-]?(?:\\d*\\.|)\\d+(?:[eE][+-]?\\d+|)/.source;\r\n let rnumnonpx = new RegExp('^(' + core_pnum + ')(?!px)[a-z%]+$', 'i');\r\n\r\n if (!rnumnonpx.test(value)) {\r\n return parseFloat(value);\r\n }\r\n\r\n // ported from JQuery\r\n style = elem.style;\r\n left = style.left;\r\n rs = elem.runtimeStyle;\r\n rsLeft = rs && rs.left;\r\n if (rs) {\r\n rs.left = style.left;\r\n }\r\n // put in the new values to get a computed style out\r\n style.left = value;\r\n result = style.pixelLeft;\r\n style.left = left;\r\n if (rsLeft) {\r\n rs.left = rsLeft;\r\n }\r\n return result;\r\n };\r\n }\r\n\r\n function getMeasurements(elem, measure) {\r\n let base, borderA, borderB, computedMarginA, computedMarginB, computedStyle, dirA, dirB, marginA, marginB, paddingA, paddingB;\r\n\r\n if (isWindow(elem)) {\r\n base = document.documentElement[{height: 'clientHeight', width: 'clientWidth'}[measure]];\r\n\r\n return {\r\n base: base,\r\n padding: 0,\r\n border: 0,\r\n margin: 0\r\n };\r\n }\r\n\r\n // Start with offset property\r\n [\r\n base,\r\n dirA,\r\n dirB\r\n ] = {\r\n width: [\r\n elem.offsetWidth,\r\n 'Left',\r\n 'Right'\r\n ],\r\n height: [\r\n elem.offsetHeight,\r\n 'Top',\r\n 'Bottom'\r\n ]\r\n }[measure];\r\n\r\n computedStyle = getStyle(elem);\r\n paddingA = convertToPx(elem, computedStyle['padding' + dirA]) || 0;\r\n paddingB = convertToPx(elem, computedStyle['padding' + dirB]) || 0;\r\n borderA = convertToPx(elem, computedStyle['border' + dirA + 'Width']) || 0;\r\n borderB = convertToPx(elem, computedStyle['border' + dirB + 'Width']) || 0;\r\n computedMarginA = computedStyle['margin' + dirA];\r\n computedMarginB = computedStyle['margin' + dirB];\r\n\r\n // I do not care for width for now, so this hack is irrelevant\r\n // if ( !supportsPercentMargin )\r\n // computedMarginA = hackPercentMargin( elem, computedStyle, computedMarginA )\r\n // computedMarginB = hackPercentMargin( elem, computedStyle, computedMarginB )\r\n marginA = convertToPx(elem, computedMarginA) || 0;\r\n marginB = convertToPx(elem, computedMarginB) || 0;\r\n\r\n return {\r\n base: base,\r\n padding: paddingA + paddingB,\r\n border: borderA + borderB,\r\n margin: marginA + marginB\r\n };\r\n }\r\n\r\n function getWidthHeight(elem, direction, measure) {\r\n let computedStyle, result;\r\n\r\n let measurements = getMeasurements(elem, direction);\r\n\r\n if (measurements.base > 0) {\r\n return {\r\n base: measurements.base - measurements.padding - measurements.border,\r\n outer: measurements.base,\r\n outerfull: measurements.base + measurements.margin\r\n }[measure];\r\n }\r\n\r\n // Fall back to computed then uncomputed css if necessary\r\n computedStyle = getStyle(elem);\r\n result = computedStyle[direction];\r\n\r\n if (result < 0 || result === null) {\r\n result = elem.style[direction] || 0;\r\n }\r\n\r\n // Normalize \"\", auto, and prepare for extra\r\n result = parseFloat(result) || 0;\r\n\r\n return {\r\n base: result - measurements.padding - measurements.border,\r\n outer: result,\r\n outerfull: result + measurements.padding + measurements.border + measurements.margin\r\n }[measure];\r\n }\r\n\r\n // define missing methods\r\n return angular.forEach({\r\n before(newElem) {\r\n var children, elem, i, j, parent, ref, self;\r\n self = this;\r\n elem = self[0];\r\n parent = self.parent();\r\n children = parent.contents();\r\n if (children[0] === elem) {\r\n return parent.prepend(newElem);\r\n } else {\r\n for (i = j = 1, ref = children.length - 1; 1 <= ref ? j <= ref : j >= ref; i = 1 <= ref ? ++j : --j) {\r\n if (children[i] === elem) {\r\n angular.element(children[i - 1]).after(newElem);\r\n return;\r\n }\r\n }\r\n throw new Error('invalid DOM structure ' + elem.outerHTML);\r\n }\r\n },\r\n height (value){\r\n var self;\r\n self = this;\r\n if (typeof value !== 'undefined') {\r\n if (angular.isNumber(value)) {\r\n value = value + 'px';\r\n }\r\n return css.call(self, 'height', value);\r\n } else {\r\n return getWidthHeight(this[0], 'height', 'base');\r\n }\r\n },\r\n outerHeight(option) {\r\n return getWidthHeight(this[0], 'height', option ? 'outerfull' : 'outer');\r\n },\r\n outerWidth(option) {\r\n return getWidthHeight(this[0], 'width', option ? 'outerfull' : 'outer');\r\n },\r\n\r\n /*\r\n The offset setter method is not implemented\r\n */\r\n offset(value) {\r\n let docElem, win;\r\n let self = this;\r\n let box = {\r\n top: 0,\r\n left: 0\r\n };\r\n let elem = self[0];\r\n let doc = elem && elem.ownerDocument;\r\n\r\n if (arguments.length) {\r\n if (value === undefined) {\r\n return self;\r\n }\r\n // TODO: implement setter\r\n throw new Error('offset setter method is not implemented');\r\n }\r\n\r\n if (!doc) {\r\n return;\r\n }\r\n\r\n docElem = doc.documentElement;\r\n\r\n // TODO: Make sure it's not a disconnected DOM node\r\n\r\n if (elem.getBoundingClientRect != null) {\r\n box = elem.getBoundingClientRect();\r\n }\r\n\r\n win = doc.defaultView || doc.parentWindow;\r\n\r\n return {\r\n top: box.top + (win.pageYOffset || docElem.scrollTop) - (docElem.clientTop || 0),\r\n left: box.left + (win.pageXOffset || docElem.scrollLeft) - (docElem.clientLeft || 0)\r\n };\r\n },\r\n scrollTop(value) {\r\n return scrollTo(this, 'top', value);\r\n },\r\n scrollLeft(value) {\r\n return scrollTo(this, 'left', value);\r\n }\r\n }, (value, key) => {\r\n if (!element.prototype[key]) {\r\n return element.prototype[key] = value;\r\n }\r\n });\r\n }\r\n\r\n}\r\n","const hideClassToken = 'ng-ui-scroll-hide';\r\n\r\nexport default class ElementRoutines {\r\n\r\n static addCSSRules() {\r\n const selector = '.' + hideClassToken;\r\n const rules = 'display: none';\r\n const sheet = document.styleSheets[0];\r\n let index;\r\n try {\r\n index = sheet.cssRules.length;\r\n } catch (err) {\r\n index = 0;\r\n }\r\n if('insertRule' in sheet) {\r\n sheet.insertRule(selector + '{' + rules + '}', index);\r\n }\r\n else if('addRule' in sheet) {\r\n sheet.addRule(selector, rules, index);\r\n }\r\n }\r\n\r\n constructor($injector, $q) {\r\n this.$animate = ($injector.has && $injector.has('$animate')) ? $injector.get('$animate') : null;\r\n this.isAngularVersionLessThen1_3 = angular.version.major === 1 && angular.version.minor < 3;\r\n this.$q = $q;\r\n }\r\n\r\n hideElement(wrapper) {\r\n wrapper.element.addClass(hideClassToken);\r\n }\r\n\r\n showElement(wrapper) {\r\n wrapper.element.removeClass(hideClassToken);\r\n }\r\n\r\n insertElement(newElement, previousElement) {\r\n previousElement.after(newElement);\r\n return [];\r\n }\r\n\r\n removeElement(wrapper) {\r\n wrapper.element.remove();\r\n wrapper.scope.$destroy();\r\n return [];\r\n }\r\n\r\n insertElementAnimated(newElement, previousElement) {\r\n if (!this.$animate) {\r\n return this.insertElement(newElement, previousElement);\r\n }\r\n\r\n if (this.isAngularVersionLessThen1_3) {\r\n const deferred = this.$q.defer();\r\n // no need for parent - previous element is never null\r\n this.$animate.enter(newElement, null, previousElement, () => deferred.resolve());\r\n\r\n return [deferred.promise];\r\n }\r\n\r\n // no need for parent - previous element is never null\r\n return [this.$animate.enter(newElement, null, previousElement)];\r\n }\r\n\r\n removeElementAnimated(wrapper) {\r\n if (!this.$animate) {\r\n return this.removeElement(wrapper);\r\n }\r\n\r\n if (this.isAngularVersionLessThen1_3) {\r\n const deferred = this.$q.defer();\r\n this.$animate.leave(wrapper.element, () => {\r\n wrapper.scope.$destroy();\r\n return deferred.resolve();\r\n });\r\n\r\n return [deferred.promise];\r\n }\r\n\r\n return [(this.$animate.leave(wrapper.element)).then(() => wrapper.scope.$destroy())];\r\n }\r\n}","export const OPERATIONS = {\r\n PREPEND: 'prepend',\r\n APPEND: 'append',\r\n INSERT: 'insert',\r\n REMOVE: 'remove',\r\n NONE: 'none'\r\n};\r\n","import { OPERATIONS } from './utils';\r\n\r\nexport default function ScrollBuffer(elementRoutines, bufferSize, startIndex) {\r\n const buffer = Object.create(Array.prototype);\r\n\r\n angular.extend(buffer, {\r\n size: bufferSize,\r\n\r\n reset(startIndex) {\r\n buffer.remove(0, buffer.length);\r\n buffer.eof = false;\r\n buffer.bof = false;\r\n buffer.first = startIndex;\r\n buffer.next = startIndex;\r\n buffer.minIndex = startIndex;\r\n buffer.maxIndex = startIndex;\r\n buffer.minIndexUser = null;\r\n buffer.maxIndexUser = null;\r\n },\r\n\r\n append(items) {\r\n items.forEach((item) => {\r\n ++buffer.next;\r\n buffer.insert(OPERATIONS.APPEND, item);\r\n });\r\n buffer.maxIndex = buffer.eof ? buffer.next - 1 : Math.max(buffer.next - 1, buffer.maxIndex);\r\n },\r\n\r\n prepend(items, immutableTop) {\r\n items.reverse().forEach((item) => {\r\n if (immutableTop) {\r\n ++buffer.next;\r\n }\r\n else {\r\n --buffer.first;\r\n }\r\n buffer.insert(OPERATIONS.PREPEND, item);\r\n });\r\n buffer.minIndex = buffer.bof ? buffer.minIndex = buffer.first : Math.min(buffer.first, buffer.minIndex);\r\n },\r\n\r\n /**\r\n * inserts wrapped element in the buffer\r\n * the first argument is either operation keyword (see below) or a number for operation 'insert'\r\n * for insert the number is the index for the buffer element the new one have to be inserted after\r\n * operations: 'append', 'prepend', 'insert', 'remove', 'none'\r\n */\r\n insert(operation, item, shiftTop) {\r\n const wrapper = {\r\n item: item\r\n };\r\n\r\n if (operation % 1 === 0) { // it is an insert\r\n wrapper.op = OPERATIONS.INSERT;\r\n buffer.splice(operation, 0, wrapper);\r\n if (shiftTop) {\r\n buffer.first--;\r\n }\r\n else {\r\n buffer.next++;\r\n }\r\n } else {\r\n wrapper.op = operation;\r\n switch (operation) {\r\n case OPERATIONS.APPEND:\r\n buffer.push(wrapper);\r\n break;\r\n case OPERATIONS.PREPEND:\r\n buffer.unshift(wrapper);\r\n break;\r\n }\r\n }\r\n },\r\n\r\n // removes elements from buffer\r\n remove(arg1, arg2) {\r\n if (angular.isNumber(arg1)) {\r\n // removes items from arg1 (including) through arg2 (excluding)\r\n for (let i = arg1; i < arg2; i++) {\r\n elementRoutines.removeElement(buffer[i]);\r\n }\r\n return buffer.splice(arg1, arg2 - arg1);\r\n }\r\n // removes single item (wrapper) from the buffer\r\n buffer.splice(buffer.indexOf(arg1), 1);\r\n if (arg1.shiftTop && buffer.first === this.getAbsMinIndex()) {\r\n this.incrementMinIndex();\r\n }\r\n else {\r\n this.decrementMaxIndex();\r\n }\r\n if (arg1.shiftTop) {\r\n buffer.first++;\r\n }\r\n else {\r\n buffer.next--;\r\n }\r\n if (!buffer.length) {\r\n buffer.minIndex = Math.min(buffer.maxIndex, buffer.minIndex);\r\n }\r\n\r\n return elementRoutines.removeElementAnimated(arg1);\r\n },\r\n\r\n incrementMinIndex() {\r\n if (buffer.minIndexUser !== null) {\r\n if (buffer.minIndex > buffer.minIndexUser) {\r\n buffer.minIndexUser++;\r\n return;\r\n }\r\n if (buffer.minIndex === buffer.minIndexUser) {\r\n buffer.minIndexUser++;\r\n }\r\n }\r\n buffer.minIndex++;\r\n },\r\n\r\n decrementMaxIndex() {\r\n if (buffer.maxIndexUser !== null && buffer.maxIndex <= buffer.maxIndexUser) {\r\n buffer.maxIndexUser--;\r\n }\r\n buffer.maxIndex--;\r\n },\r\n\r\n getAbsMinIndex() {\r\n if (buffer.minIndexUser !== null) {\r\n return Math.min(buffer.minIndexUser, buffer.minIndex);\r\n }\r\n return buffer.minIndex;\r\n },\r\n\r\n getAbsMaxIndex() {\r\n if (buffer.maxIndexUser !== null) {\r\n return Math.max(buffer.maxIndexUser, buffer.maxIndex);\r\n }\r\n return buffer.maxIndex;\r\n },\r\n\r\n effectiveHeight(elements) {\r\n if (!elements.length) {\r\n return 0;\r\n }\r\n let top = Number.MAX_VALUE;\r\n let bottom = Number.NEGATIVE_INFINITY;\r\n elements.forEach((wrapper) => {\r\n if (wrapper.element[0].offsetParent) {\r\n // element style is not display:none\r\n top = Math.min(top, wrapper.element.offset().top);\r\n bottom = Math.max(bottom, wrapper.element.offset().top + wrapper.element.outerHeight(true));\r\n }\r\n });\r\n return Math.max(0, bottom - top);\r\n },\r\n\r\n getItems() {\r\n return buffer.filter(item => item.op === OPERATIONS.NONE);\r\n },\r\n\r\n getFirstItem() {\r\n const list = buffer.getItems();\r\n if (!list.length) {\r\n return null;\r\n }\r\n return list[0].item;\r\n },\r\n\r\n getLastItem() {\r\n const list = buffer.getItems();\r\n if (!list.length) {\r\n return null;\r\n }\r\n return list[list.length - 1].item;\r\n }\r\n\r\n });\r\n\r\n buffer.reset(startIndex);\r\n\r\n return buffer;\r\n}\r\n","// Can't just extend the Array, due to Babel does not support built-in classes extending\r\n// This solution was taken from https://stackoverflow.com/questions/46897414/es6-class-extends-array-workaround-for-es5-babel-transpile\r\nclass CacheProto {\r\n add(item) {\r\n for (let i = this.length - 1; i >= 0; i--) {\r\n if (this[i].index === item.scope.$index) {\r\n this[i].height = item.element.outerHeight();\r\n return;\r\n }\r\n }\r\n this.push({\r\n index: item.scope.$index,\r\n height: item.element.outerHeight()\r\n });\r\n this.sort((a, b) => ((a.index < b.index) ? -1 : ((a.index > b.index) ? 1 : 0)));\r\n }\r\n\r\n remove(argument, _shiftTop) {\r\n const index = argument % 1 === 0 ? argument : argument.scope.$index;\r\n const shiftTop = argument % 1 === 0 ? _shiftTop : argument.shiftTop;\r\n for (let i = this.length - 1; i >= 0; i--) {\r\n if (this[i].index === index) {\r\n this.splice(i, 1);\r\n break;\r\n }\r\n }\r\n if (!shiftTop) {\r\n for (let i = this.length - 1; i >= 0; i--) {\r\n if (this[i].index > index) {\r\n this[i].index--;\r\n }\r\n }\r\n }\r\n }\r\n\r\n clear() {\r\n this.length = 0;\r\n }\r\n}\r\n\r\nfunction Cache() {\r\n const instance = [];\r\n instance.push.apply(instance, arguments);\r\n Object.setPrototypeOf(instance, Cache.prototype);\r\n return instance;\r\n}\r\nCache.prototype = Object.create(Array.prototype);\r\nObject.getOwnPropertyNames(CacheProto.prototype).forEach(methodName =>\r\n Cache.prototype[methodName] = CacheProto.prototype[methodName]\r\n);\r\n\r\nfunction generateElement(template) {\r\n if (template.nodeType !== Node.ELEMENT_NODE) {\r\n throw new Error('ui-scroll directive requires an Element node for templating the view');\r\n }\r\n let element;\r\n switch (template.tagName.toLowerCase()) {\r\n case 'dl':\r\n throw new Error(`ui-scroll directive does not support <${template.tagName}> as a repeating tag: ${template.outerHTML}`);\r\n case 'tr':\r\n let table = angular.element('
    ');\r\n element = table.find('tr');\r\n break;\r\n case 'li':\r\n element = angular.element('
  • ');\r\n break;\r\n default:\r\n element = angular.element('
    ');\r\n }\r\n return element;\r\n}\r\n\r\nclass Padding {\r\n constructor(template) {\r\n this.element = generateElement(template);\r\n this.cache = new Cache();\r\n }\r\n\r\n height() {\r\n return this.element.height.apply(this.element, arguments);\r\n }\r\n}\r\n\r\nexport default Padding;","import Padding from './padding';\r\n\r\nexport default function Viewport(elementRoutines, buffer, element, viewportController, $rootScope, padding) {\r\n let topPadding = null;\r\n let bottomPadding = null;\r\n const viewport = viewportController && viewportController.viewport ? viewportController.viewport : angular.element(window);\r\n const container = viewportController && viewportController.container ? viewportController.container : undefined;\r\n const scope = viewportController && viewportController.scope ? viewportController.scope : $rootScope;\r\n\r\n viewport.css({\r\n 'overflow-anchor': 'none',\r\n 'overflow-y': 'auto',\r\n 'display': 'block'\r\n });\r\n\r\n function bufferPadding() {\r\n return viewport.outerHeight() * padding; // some extra space to initiate preload\r\n }\r\n\r\n angular.extend(viewport, {\r\n getScope() {\r\n return scope;\r\n },\r\n\r\n createPaddingElements(template) {\r\n topPadding = new Padding(template);\r\n bottomPadding = new Padding(template);\r\n element.before(topPadding.element);\r\n element.after(bottomPadding.element);\r\n topPadding.height(0);\r\n bottomPadding.height(0);\r\n },\r\n\r\n applyContainerStyle() {\r\n if (!container) {\r\n return true;\r\n }\r\n if (container !== viewport) {\r\n viewport.css('height', window.getComputedStyle(container[0]).height);\r\n }\r\n return viewport.height() > 0;\r\n },\r\n\r\n bottomDataPos() {\r\n let scrollHeight = viewport[0].scrollHeight;\r\n scrollHeight = scrollHeight != null ? scrollHeight : viewport[0].document.documentElement.scrollHeight;\r\n return scrollHeight - bottomPadding.height();\r\n },\r\n\r\n topDataPos() {\r\n return topPadding.height();\r\n },\r\n\r\n bottomVisiblePos() {\r\n return viewport.scrollTop() + viewport.outerHeight();\r\n },\r\n\r\n topVisiblePos() {\r\n return viewport.scrollTop();\r\n },\r\n\r\n insertElement(e, sibling) {\r\n return elementRoutines.insertElement(e, sibling || topPadding.element);\r\n },\r\n\r\n insertElementAnimated(e, sibling) {\r\n return elementRoutines.insertElementAnimated(e, sibling || topPadding.element);\r\n },\r\n\r\n shouldLoadBottom() {\r\n return !buffer.eof && viewport.bottomDataPos() < viewport.bottomVisiblePos() + bufferPadding();\r\n },\r\n\r\n clipBottom() {\r\n // clip the invisible items off the bottom\r\n let overage = 0;\r\n let overageHeight = 0;\r\n let itemHeight = 0;\r\n let emptySpaceHeight = viewport.bottomDataPos() - viewport.bottomVisiblePos() - bufferPadding();\r\n\r\n for (let i = buffer.length - 1; i >= 0; i--) {\r\n itemHeight = buffer[i].element.outerHeight(true);\r\n if (overageHeight + itemHeight > emptySpaceHeight) {\r\n break;\r\n }\r\n bottomPadding.cache.add(buffer[i]);\r\n overageHeight += itemHeight;\r\n overage++;\r\n }\r\n\r\n if (overage > 0) {\r\n buffer.eof = false;\r\n buffer.remove(buffer.length - overage, buffer.length);\r\n buffer.next -= overage;\r\n viewport.adjustPaddings();\r\n }\r\n },\r\n\r\n shouldLoadTop() {\r\n return !buffer.bof && (viewport.topDataPos() > viewport.topVisiblePos() - bufferPadding());\r\n },\r\n\r\n clipTop() {\r\n // clip the invisible items off the top\r\n let overage = 0;\r\n let overageHeight = 0;\r\n let itemHeight = 0;\r\n let emptySpaceHeight = viewport.topVisiblePos() - viewport.topDataPos() - bufferPadding();\r\n\r\n for (let i = 0; i < buffer.length; i++) {\r\n itemHeight = buffer[i].element.outerHeight(true);\r\n if (overageHeight + itemHeight > emptySpaceHeight) {\r\n break;\r\n }\r\n topPadding.cache.add(buffer[i]);\r\n overageHeight += itemHeight;\r\n overage++;\r\n }\r\n\r\n if (overage > 0) {\r\n // we need to adjust top padding element before items are removed from top\r\n // to avoid strange behaviour of scroll bar during remove top items when we are at the very bottom\r\n topPadding.height(topPadding.height() + overageHeight);\r\n buffer.bof = false;\r\n buffer.remove(0, overage);\r\n buffer.first += overage;\r\n }\r\n },\r\n\r\n adjustPaddings() {\r\n if (!buffer.length) {\r\n return;\r\n }\r\n\r\n // precise heights calculation based on items that are in buffer or that were in buffer once\r\n const visibleItemsHeight = buffer.reduce((summ, item) => summ + item.element.outerHeight(true), 0);\r\n\r\n let topPaddingHeight = 0, topCount = 0;\r\n topPadding.cache.forEach(item => {\r\n if (item.index < buffer.first) {\r\n topPaddingHeight += item.height;\r\n topCount++;\r\n }\r\n });\r\n\r\n let bottomPaddingHeight = 0, bottomCount = 0;\r\n bottomPadding.cache.forEach(item => {\r\n if (item.index >= buffer.next) {\r\n bottomPaddingHeight += item.height;\r\n bottomCount++;\r\n }\r\n });\r\n\r\n const totalHeight = visibleItemsHeight + topPaddingHeight + bottomPaddingHeight;\r\n const averageItemHeight = totalHeight / (topCount + bottomCount + buffer.length);\r\n\r\n // average heights calculation, items that have never been reached\r\n let adjustTopPadding = buffer.minIndexUser !== null && buffer.minIndex > buffer.minIndexUser;\r\n let adjustBottomPadding = buffer.maxIndexUser !== null && buffer.maxIndex < buffer.maxIndexUser;\r\n let topPaddingHeightAdd = adjustTopPadding ? (buffer.minIndex - buffer.minIndexUser) * averageItemHeight : 0;\r\n let bottomPaddingHeightAdd = adjustBottomPadding ? (buffer.maxIndexUser - buffer.maxIndex) * averageItemHeight : 0;\r\n\r\n // paddings combine adjustment\r\n topPadding.height(topPaddingHeight + topPaddingHeightAdd);\r\n bottomPadding.height(bottomPaddingHeight + bottomPaddingHeightAdd);\r\n },\r\n\r\n onAfterMinIndexSet(topPaddingHeightOld) {\r\n // additional scrollTop adjustment in case of datasource.minIndex external set\r\n if (buffer.minIndexUser !== null && buffer.minIndex > buffer.minIndexUser) {\r\n let diff = topPadding.height() - topPaddingHeightOld;\r\n viewport.scrollTop(viewport.scrollTop() + diff);\r\n while((diff -= viewport.scrollTop()) > 0) {\r\n bottomPadding.height(bottomPadding.height() + diff);\r\n viewport.scrollTop(viewport.scrollTop() + diff);\r\n }\r\n }\r\n },\r\n\r\n onAfterPrepend(updates) {\r\n if (!updates.prepended.length) {\r\n return;\r\n }\r\n const height = buffer.effectiveHeight(updates.prepended);\r\n const paddingHeight = topPadding.height() - height;\r\n if (paddingHeight >= 0) {\r\n topPadding.height(paddingHeight);\r\n return;\r\n }\r\n const position = viewport.scrollTop();\r\n const newPosition = position - paddingHeight;\r\n viewport.synthetic = { previous: position, next: newPosition };\r\n topPadding.height(0);\r\n viewport.scrollTop(newPosition);\r\n },\r\n\r\n resetTopPadding() {\r\n topPadding.height(0);\r\n topPadding.cache.clear();\r\n },\r\n\r\n resetBottomPadding() {\r\n bottomPadding.height(0);\r\n bottomPadding.cache.clear();\r\n },\r\n\r\n removeCacheItem(item, shiftTop) {\r\n topPadding.cache.remove(item, shiftTop);\r\n bottomPadding.cache.remove(item, shiftTop);\r\n },\r\n\r\n removeItem(item) {\r\n this.removeCacheItem(item);\r\n return buffer.remove(item);\r\n }\r\n });\r\n\r\n return viewport;\r\n}\r\n","import { OPERATIONS } from './utils';\r\n\r\nclass Adapter {\r\n\r\n constructor($scope, $parse, $attr, viewport, buffer, doAdjust, reload) {\r\n this.$parse = $parse;\r\n this.$attr = $attr;\r\n this.viewport = viewport;\r\n this.buffer = buffer;\r\n\r\n this.doAdjust = doAdjust;\r\n this.reload = reload;\r\n\r\n this.isLoading = false;\r\n this.disabled = false;\r\n\r\n const viewportScope = viewport.getScope();\r\n this.startScope = viewportScope.$parent ? viewportScope : $scope;\r\n\r\n this.publicContext = {};\r\n this.assignAdapter($attr.adapter);\r\n this.generatePublicContext();\r\n }\r\n\r\n assignAdapter(adapterAttr) {\r\n if (!adapterAttr || !(adapterAttr = adapterAttr.replace(/^\\s+|\\s+$/gm, ''))) {\r\n return;\r\n }\r\n let adapterOnScope;\r\n\r\n try {\r\n this.$parse(adapterAttr).assign(this.startScope, {});\r\n adapterOnScope = this.$parse(adapterAttr)(this.startScope);\r\n }\r\n catch (error) {\r\n error.message = `Angular ui-scroll Adapter assignment exception.\\n` +\r\n `Can't parse \"${adapterAttr}\" expression.\\n` +\r\n error.message;\r\n throw error;\r\n }\r\n\r\n angular.extend(adapterOnScope, this.publicContext);\r\n this.publicContext = adapterOnScope;\r\n }\r\n\r\n generatePublicContext() {\r\n // these methods will be accessible out of ui-scroll via user defined adapter\r\n const publicMethods = ['reload', 'applyUpdates', 'append', 'prepend', 'isBOF', 'isEOF', 'isEmpty'];\r\n for (let i = publicMethods.length - 1; i >= 0; i--) {\r\n this.publicContext[publicMethods[i]] = this[publicMethods[i]].bind(this);\r\n }\r\n\r\n // these read-only props will be accessible out of ui-scroll via user defined adapter\r\n const publicProps = ['isLoading', 'topVisible', 'topVisibleElement', 'topVisibleScope', 'bottomVisible', 'bottomVisibleElement', 'bottomVisibleScope'];\r\n for (let i = publicProps.length - 1; i >= 0; i--) {\r\n let property, attr = this.$attr[publicProps[i]];\r\n Object.defineProperty(this, publicProps[i], {\r\n get: () => property,\r\n set: (value) => {\r\n property = value;\r\n this.publicContext[publicProps[i]] = value;\r\n if (attr) {\r\n this.$parse(attr).assign(this.startScope, value);\r\n }\r\n }\r\n });\r\n }\r\n\r\n // read-only immediately calculated public properties\r\n const publicPropsImmediate = ['bufferFirst', 'bufferLast', 'bufferLength'];\r\n for (let i = publicPropsImmediate.length - 1; i >= 0; i--) {\r\n Object.defineProperty(this.publicContext, publicPropsImmediate[i], {\r\n get: () => this[publicPropsImmediate[i]]\r\n });\r\n }\r\n\r\n // non-read-only public property\r\n Object.defineProperty(this.publicContext, 'disabled', {\r\n get: () => this.disabled,\r\n set: (value) => (!(this.disabled = value)) ? this.doAdjust() : null\r\n });\r\n }\r\n\r\n loading(value) {\r\n this.isLoading = value;\r\n }\r\n\r\n isBOF() {\r\n return this.buffer.bof;\r\n }\r\n\r\n isEOF() {\r\n return this.buffer.eof;\r\n }\r\n\r\n isEmpty() {\r\n return !this.buffer.length;\r\n }\r\n\r\n get bufferLength() {\r\n return this.buffer.getItems().length;\r\n }\r\n\r\n get bufferFirst() {\r\n return this.buffer.getFirstItem();\r\n }\r\n\r\n get bufferLast() {\r\n return this.buffer.getLastItem();\r\n }\r\n\r\n append(newItems) {\r\n this.buffer.append(newItems);\r\n this.doAdjust();\r\n this.viewport.clipTop();\r\n this.viewport.clipBottom();\r\n }\r\n\r\n prepend(newItems, options = {}) {\r\n this.buffer.prepend(newItems, options.immutableTop);\r\n this.doAdjust();\r\n this.viewport.clipTop();\r\n this.viewport.clipBottom();\r\n }\r\n\r\n applyUpdates(arg1, arg2, arg3) {\r\n if (typeof arg1 === 'function') {\r\n this.applyUpdatesFunc(arg1, arg2);\r\n } else {\r\n this.applyUpdatesIndex(arg1, arg2, arg3);\r\n }\r\n this.doAdjust();\r\n }\r\n\r\n applyUpdatesFunc(cb, options = {}) {\r\n this.buffer.slice(0).forEach((wrapper) => {\r\n // we need to do it on the buffer clone, because buffer content\r\n // may change as we iterate through\r\n this.applyUpdate(wrapper, cb(wrapper.item, wrapper.scope, wrapper.element), options);\r\n });\r\n }\r\n\r\n applyUpdatesIndex(index, newItems, options = {}) {\r\n if (index % 1 !== 0) {\r\n throw new Error('applyUpdates - ' + index + ' is not a valid index (should be an integer)');\r\n }\r\n const _index = index - this.buffer.first;\r\n\r\n // apply updates only within buffer\r\n if (_index >= 0 && _index < this.buffer.length) {\r\n this.applyUpdate(this.buffer[_index], newItems, options);\r\n }\r\n // out-of-buffer case: deletion may affect Paddings\r\n else if(index >= this.buffer.getAbsMinIndex() && index <= this.buffer.getAbsMaxIndex()) {\r\n if(angular.isArray(newItems) && !newItems.length) {\r\n this.viewport.removeCacheItem(index, !options.immutableTop && index === this.buffer.minIndex);\r\n if (!options.immutableTop && index === this.buffer.getAbsMinIndex()) {\r\n this.buffer.incrementMinIndex();\r\n }\r\n else {\r\n this.buffer.decrementMaxIndex();\r\n }\r\n }\r\n }\r\n }\r\n\r\n applyUpdate(wrapper, newItems, options = {}) {\r\n if (!angular.isArray(newItems)) {\r\n return;\r\n }\r\n let position = this.buffer.indexOf(wrapper);\r\n if (!newItems.reverse().some(newItem => newItem === wrapper.item)) {\r\n wrapper.op = OPERATIONS.REMOVE;\r\n // try to catch \"first\" edge case on remove\r\n if (!options.immutableTop && !newItems.length) {\r\n // this is the first item, or the previous one's part of the \"shift-top\" group\r\n if (\r\n (position === 0 && this.buffer.bof) ||\r\n (position !== 0 && this.buffer[position - 1].shiftTop)\r\n ) {\r\n wrapper.shiftTop = true;\r\n }\r\n }\r\n }\r\n newItems.forEach((newItem) => {\r\n if (newItem === wrapper.item) {\r\n position--;\r\n } else {\r\n // 3 parameter (shiftTop) is to catch \"first\" edge case on insert\r\n this.buffer.insert(position + 1, newItem, !options.immutableTop && position === -1);\r\n }\r\n });\r\n }\r\n\r\n calculateProperties() {\r\n let rowTop = null, topHeight = 0;\r\n let topDone = false, bottomDone = false;\r\n const length = this.buffer.length;\r\n\r\n for (let i = 0; i < length; i++) {\r\n const item = this.buffer[i];\r\n const itemTop = item.element.offset().top;\r\n\r\n if (rowTop !== itemTop) { // a new row condition\r\n const itemHeight = item.element.outerHeight(true);\r\n const top = this.viewport.topDataPos() + topHeight + itemHeight;\r\n\r\n if (!topDone && top > this.viewport.topVisiblePos()) {\r\n topDone = true;\r\n this['topVisible'] = item.item;\r\n this['topVisibleElement'] = item.element;\r\n this['topVisibleScope'] = item.scope;\r\n }\r\n if (!bottomDone && (top >= this.viewport.bottomVisiblePos() || (i === length - 1 && this.isEOF()))) {\r\n bottomDone = true;\r\n this['bottomVisible'] = item.item;\r\n this['bottomVisibleElement'] = item.element;\r\n this['bottomVisibleScope'] = item.scope;\r\n }\r\n topHeight += itemHeight;\r\n }\r\n rowTop = itemTop;\r\n\r\n if (topDone && bottomDone) {\r\n break;\r\n }\r\n }\r\n }\r\n\r\n}\r\n\r\nexport default Adapter;\r\n","import JQLiteExtras from './modules/jqLiteExtras';\r\nimport ElementRoutines from './modules/elementRoutines.js';\r\nimport ScrollBuffer from './modules/buffer.js';\r\nimport Viewport from './modules/viewport.js';\r\nimport Adapter from './modules/adapter.js';\r\nimport { OPERATIONS } from './modules/utils';\r\n\r\nangular.module('ui.scroll', [])\r\n\r\n .constant('JQLiteExtras', JQLiteExtras)\r\n .run(['JQLiteExtras', (JQLiteExtras) => {\r\n const elt = angular.element;\r\n !(window.jQuery && elt.fn && elt.fn.jquery) ? (new JQLiteExtras()).registerFor(elt) : null;\r\n ElementRoutines.addCSSRules();\r\n }])\r\n\r\n .directive('uiScrollViewport', function () {\r\n return {\r\n restrict: 'A',\r\n controller: [\r\n '$scope',\r\n '$element',\r\n function (scope, element) {\r\n this.container = element;\r\n this.viewport = element;\r\n this.scope = scope;\r\n\r\n angular.forEach(element.children(), child => {\r\n if (child.tagName.toLowerCase() === 'tbody') {\r\n this.viewport = angular.element(child);\r\n }\r\n });\r\n\r\n return this;\r\n }\r\n ]\r\n };\r\n })\r\n\r\n .directive('uiScroll', [\r\n '$log',\r\n '$injector',\r\n '$rootScope',\r\n '$timeout',\r\n '$interval',\r\n '$q',\r\n '$parse',\r\n function (console, $injector, $rootScope, $timeout, $interval, $q, $parse) {\r\n\r\n return {\r\n require: ['?^uiScrollViewport'],\r\n restrict: 'A',\r\n transclude: 'element',\r\n priority: 1000,\r\n terminal: true,\r\n link: link\r\n };\r\n\r\n function link($scope, element, $attr, controllers, linker) {\r\n const match = $attr.uiScroll.match(/^\\s*(\\w+)\\s+in\\s+([(\\w|\\$)\\.]+)\\s*$/);\r\n if (!match) {\r\n throw new Error('Expected uiScroll in form of \\'_item_ in _datasource_\\' but got \\'' + $attr.uiScroll + '\\'');\r\n }\r\n\r\n function parseNumber(value, defaultValue, isFloat) {\r\n if (!isFloat) {\r\n value = value === null ? defaultValue : Math.floor(value);\r\n }\r\n return isNaN(value) ? defaultValue : value;\r\n }\r\n\r\n function parseNumericAttr(value, defaultValue, isFloat) {\r\n const result = $parse(value)($scope);\r\n return parseNumber(result, defaultValue, isFloat);\r\n }\r\n\r\n function parseBooleanAttr(value, defaultValue) {\r\n const result = $parse(value)($scope);\r\n return typeof result === 'boolean' ? result : defaultValue;\r\n }\r\n\r\n const BUFFER_MIN = 3;\r\n const BUFFER_DEFAULT = 10;\r\n const PADDING_MIN = 0.3;\r\n const PADDING_DEFAULT = 0.5;\r\n const HANDLE_INERTIA_DEFAULT = true;\r\n const START_INDEX_DEFAULT = 1;\r\n const MAX_VIEWPORT_DELAY = 500;\r\n const VIEWPORT_POLLING_INTERVAL = 50;\r\n\r\n let datasource = null;\r\n const itemName = match[1];\r\n const datasourceName = match[2];\r\n const viewportController = controllers[0];\r\n const bufferSize = Math.max(BUFFER_MIN, parseNumericAttr($attr.bufferSize, BUFFER_DEFAULT));\r\n const padding = Math.max(PADDING_MIN, parseNumericAttr($attr.padding, PADDING_DEFAULT, true));\r\n const handleInertia = parseBooleanAttr($attr.handleInertia, HANDLE_INERTIA_DEFAULT);\r\n let startIndex = parseNumericAttr($attr.startIndex, START_INDEX_DEFAULT);\r\n let ridActual = 0; // current data revision id\r\n let pending = [];\r\n\r\n const elementRoutines = new ElementRoutines($injector, $q);\r\n const buffer = new ScrollBuffer(elementRoutines, bufferSize, startIndex);\r\n const viewport = new Viewport(elementRoutines, buffer, element, viewportController, $rootScope, padding);\r\n const adapter = new Adapter($scope, $parse, $attr, viewport, buffer, doAdjust, reload);\r\n\r\n if (viewportController) {\r\n viewportController.adapter = adapter;\r\n }\r\n\r\n const isDatasourceValid = () =>\r\n Object.prototype.toString.call(datasource) === '[object Object]' && typeof datasource.get === 'function';\r\n\r\n datasource = $parse(datasourceName)($scope); // try to get datasource on scope\r\n if (!isDatasourceValid()) {\r\n datasource = $injector.get(datasourceName); // try to inject datasource as service\r\n if (!isDatasourceValid()) {\r\n throw new Error(datasourceName + ' is not a valid datasource');\r\n }\r\n }\r\n\r\n let onRenderHandlers = [];\r\n function onRenderHandlersRunner() {\r\n onRenderHandlers.forEach(handler => handler.run());\r\n onRenderHandlers = [];\r\n }\r\n function persistDatasourceIndex(datasource, propName) {\r\n let getter;\r\n // need to postpone min/maxIndexUser processing if the view is empty\r\n if(angular.isNumber(datasource[propName])) {\r\n getter = datasource[propName];\r\n if(angular.isNumber(getter)) {\r\n onRenderHandlers = onRenderHandlers.filter(handler => handler.id !== propName);\r\n onRenderHandlers.push({\r\n id: propName,\r\n run: () => datasource[propName] = getter\r\n });\r\n }\r\n }\r\n }\r\n\r\n function defineDatasourceIndex(datasource, propName, propUserName) {\r\n const descriptor = Object.getOwnPropertyDescriptor(datasource, propName);\r\n if (descriptor && (descriptor.set || descriptor.get)) {\r\n return;\r\n }\r\n let getter;\r\n persistDatasourceIndex(datasource, propName);\r\n Object.defineProperty(datasource, propName, {\r\n set: (value) => {\r\n getter = value;\r\n if(pending.length && !buffer.length) {\r\n persistDatasourceIndex(datasource, propName);\r\n return;\r\n }\r\n buffer[propUserName] = value;\r\n const topPaddingHeightOld = viewport.topDataPos();\r\n viewport.adjustPaddings();\r\n if (propName === 'minIndex') {\r\n viewport.onAfterMinIndexSet(topPaddingHeightOld);\r\n }\r\n },\r\n get: () => getter\r\n });\r\n }\r\n\r\n defineDatasourceIndex(datasource, 'minIndex', 'minIndexUser');\r\n defineDatasourceIndex(datasource, 'maxIndex', 'maxIndexUser');\r\n\r\n const fetchNext = (datasource.get.length !== 2) ?\r\n (success) => datasource.get(buffer.next, bufferSize, success) :\r\n (success) => {\r\n datasource.get({\r\n index: buffer.next,\r\n append: buffer.length ? buffer[buffer.length - 1].item : void 0,\r\n count: bufferSize\r\n }, success);\r\n };\r\n\r\n const fetchPrevious = (datasource.get.length !== 2) ?\r\n (success) => datasource.get(buffer.first - bufferSize, bufferSize, success) :\r\n (success) => {\r\n datasource.get({\r\n index: buffer.first - bufferSize,\r\n prepend: buffer.length ? buffer[0].item : void 0,\r\n count: bufferSize\r\n }, success);\r\n };\r\n\r\n const initialize = () => {\r\n let tryCount = 0;\r\n if(!viewport.applyContainerStyle()) {\r\n const timer = $interval(() => {\r\n tryCount++;\r\n if(viewport.applyContainerStyle()) {\r\n $interval.cancel(timer);\r\n doAdjust();\r\n }\r\n if(tryCount * VIEWPORT_POLLING_INTERVAL >= MAX_VIEWPORT_DELAY) {\r\n $interval.cancel(timer);\r\n throw Error(`ui-scroll directive requires a viewport with non-zero height in ${MAX_VIEWPORT_DELAY}ms`);\r\n }\r\n }, VIEWPORT_POLLING_INTERVAL);\r\n }\r\n else {\r\n doAdjust();\r\n }\r\n };\r\n\r\n /**\r\n * Build padding elements\r\n *\r\n * Calling linker is the only way I found to get access to the tag name of the template\r\n * to prevent the directive scope from pollution a new scope is created and destroyed\r\n * right after the builder creation is completed\r\n */\r\n linker((clone, scope) => {\r\n viewport.createPaddingElements(clone[0]);\r\n // we do not include the clone in the DOM. It means that the nested directives will not\r\n // be able to reach the parent directives, but in this case it is intentional because we\r\n // created the clone to access the template tag name\r\n scope.$destroy();\r\n clone.remove();\r\n });\r\n\r\n $scope.$on('$destroy', () => {\r\n unbindEvents();\r\n viewport.off('mousewheel', wheelHandler);\r\n });\r\n\r\n viewport.on('mousewheel', wheelHandler);\r\n\r\n initialize();\r\n\r\n /* Private function definitions */\r\n\r\n function isInvalid(rid) {\r\n return (rid && rid !== ridActual) || $scope.$$destroyed;\r\n }\r\n\r\n function bindEvents() {\r\n viewport.on('resize', resizeAndScrollHandler);\r\n viewport.on('scroll', resizeAndScrollHandler);\r\n }\r\n\r\n function unbindEvents() {\r\n viewport.off('resize', resizeAndScrollHandler);\r\n viewport.off('scroll', resizeAndScrollHandler);\r\n }\r\n\r\n function reload() {\r\n unbindEvents();\r\n viewport.resetTopPadding();\r\n viewport.resetBottomPadding();\r\n if (arguments.length) {\r\n startIndex = parseNumber(arguments[0], START_INDEX_DEFAULT, false);\r\n }\r\n buffer.reset(startIndex);\r\n persistDatasourceIndex(datasource, 'minIndex');\r\n persistDatasourceIndex(datasource, 'maxIndex');\r\n doAdjust();\r\n }\r\n\r\n function isElementVisible(wrapper) {\r\n return wrapper.element.height() && wrapper.element[0].offsetParent;\r\n }\r\n\r\n function visibilityWatcher(wrapper) {\r\n if (isElementVisible(wrapper)) {\r\n buffer.forEach((item) => {\r\n if (typeof item.unregisterVisibilityWatcher === 'function') {\r\n item.unregisterVisibilityWatcher();\r\n delete item.unregisterVisibilityWatcher;\r\n }\r\n });\r\n if (!pending.length) {\r\n $timeout(() => doAdjust());\r\n }\r\n }\r\n }\r\n\r\n function insertWrapperContent(wrapper, insertAfter) {\r\n createElement(wrapper, insertAfter, viewport.insertElement);\r\n if (!isElementVisible(wrapper)) {\r\n wrapper.unregisterVisibilityWatcher = wrapper.scope.$watch(() => visibilityWatcher(wrapper));\r\n }\r\n elementRoutines.hideElement(wrapper); // hide inserted elements before data binding\r\n }\r\n\r\n function createElement(wrapper, insertAfter, insertElement) {\r\n let promises = null;\r\n const sibling = (insertAfter > 0) ? buffer[insertAfter - 1].element : undefined;\r\n linker((clone, scope) => {\r\n promises = insertElement(clone, sibling);\r\n wrapper.element = clone;\r\n wrapper.scope = scope;\r\n scope[itemName] = wrapper.item;\r\n });\r\n // ui-scroll-grid apply\r\n if (adapter.transform) {\r\n const tdInitializer = wrapper.scope.uiScrollTdInitializer;\r\n if (tdInitializer && tdInitializer.linking) {\r\n adapter.transform(wrapper.scope, wrapper.element);\r\n } else {\r\n wrapper.scope.uiScrollTdInitializer = {\r\n onLink: () => adapter.transform(wrapper.scope, wrapper.element),\r\n scope: wrapper.scope\r\n };\r\n }\r\n }\r\n return promises;\r\n }\r\n\r\n function updateDOM() {\r\n let promises = [];\r\n const toBePrepended = [];\r\n const toBeRemoved = [];\r\n const inserted = [];\r\n\r\n buffer.forEach((wrapper, i) => {\r\n switch (wrapper.op) {\r\n case OPERATIONS.PREPEND:\r\n toBePrepended.unshift(wrapper);\r\n break;\r\n case OPERATIONS.APPEND:\r\n insertWrapperContent(wrapper, i);\r\n wrapper.op = OPERATIONS.NONE;\r\n inserted.push(wrapper);\r\n break;\r\n case OPERATIONS.INSERT:\r\n promises = promises.concat(createElement(wrapper, i, viewport.insertElementAnimated));\r\n wrapper.op = OPERATIONS.NONE;\r\n inserted.push(wrapper);\r\n break;\r\n case OPERATIONS.REMOVE:\r\n toBeRemoved.push(wrapper);\r\n }\r\n });\r\n\r\n toBeRemoved.forEach((wrapper) => promises = promises.concat(viewport.removeItem(wrapper)));\r\n\r\n if (toBePrepended.length)\r\n toBePrepended.forEach((wrapper) => {\r\n insertWrapperContent(wrapper);\r\n wrapper.op = OPERATIONS.NONE;\r\n });\r\n\r\n buffer.forEach((item, i) => item.scope.$index = buffer.first + i);\r\n\r\n return {\r\n prepended: toBePrepended,\r\n removed: toBeRemoved,\r\n inserted: inserted,\r\n animated: promises\r\n };\r\n\r\n }\r\n\r\n function updatePaddings(rid, updates) {\r\n // schedule another doAdjust after animation completion\r\n if (updates.animated.length) {\r\n $q.all(updates.animated).then(() => {\r\n viewport.adjustPaddings();\r\n doAdjust(rid);\r\n });\r\n } else {\r\n viewport.adjustPaddings();\r\n }\r\n }\r\n\r\n function enqueueFetch(rid, updates) {\r\n if (viewport.shouldLoadBottom()) {\r\n if (!updates || buffer.effectiveHeight(updates.inserted) > 0) {\r\n // this means that at least one item appended in the last batch has height > 0\r\n if (pending.push(true) === 1) {\r\n adapter.loading(true);\r\n fetch(rid);\r\n }\r\n }\r\n } else if (viewport.shouldLoadTop()) {\r\n if ((!updates || buffer.effectiveHeight(updates.prepended) > 0) || pending[0]) {\r\n // this means that at least one item appended in the last batch has height > 0\r\n // pending[0] = true means that previous fetch was appending. We need to force at least one prepend\r\n // BTW there will always be at least 1 element in the pending array because bottom is fetched first\r\n if (pending.push(false) === 1) {\r\n adapter.loading(true);\r\n fetch(rid);\r\n }\r\n }\r\n }\r\n }\r\n\r\n function processUpdates() {\r\n const updates = updateDOM();\r\n\r\n // We need the item bindings to be processed before we can do adjustments\r\n !$scope.$$phase && !$rootScope.$$phase && $scope.$digest();\r\n\r\n updates.inserted.forEach(w => elementRoutines.showElement(w));\r\n updates.prepended.forEach(w => elementRoutines.showElement(w));\r\n return updates;\r\n }\r\n\r\n function doAdjust(rid) {\r\n if (!rid) { // dismiss pending requests\r\n pending = [];\r\n rid = ++ridActual;\r\n }\r\n\r\n const updates = processUpdates();\r\n\r\n if (isInvalid(rid)) {\r\n return;\r\n }\r\n\r\n updatePaddings(rid, updates);\r\n enqueueFetch(rid);\r\n\r\n if (!pending.length) {\r\n adapter.calculateProperties();\r\n }\r\n }\r\n\r\n function doAdjustAfterFetch(rid) {\r\n const updates = processUpdates();\r\n\r\n viewport.onAfterPrepend(updates);\r\n\r\n if (isInvalid(rid)) {\r\n return;\r\n }\r\n\r\n updatePaddings(rid, updates);\r\n onRenderHandlersRunner();\r\n enqueueFetch(rid, updates);\r\n pending.shift();\r\n\r\n if (pending.length)\r\n fetch(rid);\r\n else {\r\n adapter.loading(false);\r\n bindEvents();\r\n adapter.calculateProperties();\r\n }\r\n }\r\n\r\n function fetch(rid) {\r\n if (pending[0]) {// scrolling down\r\n if (buffer.length && !viewport.shouldLoadBottom()) {\r\n doAdjustAfterFetch(rid);\r\n } else {\r\n fetchNext((result) => {\r\n if (isInvalid(rid)) {\r\n return;\r\n }\r\n\r\n if (result.length < bufferSize) {\r\n buffer.eof = true;\r\n }\r\n\r\n if (result.length > 0) {\r\n viewport.clipTop();\r\n buffer.append(result);\r\n }\r\n\r\n doAdjustAfterFetch(rid);\r\n });\r\n }\r\n } else { // scrolling up\r\n if (buffer.length && !viewport.shouldLoadTop()) {\r\n doAdjustAfterFetch(rid);\r\n } else {\r\n fetchPrevious((result) => {\r\n if (isInvalid(rid)) {\r\n return;\r\n }\r\n\r\n if (result.length < bufferSize) {\r\n buffer.bof = true;\r\n // log 'bof is reached'\r\n }\r\n\r\n if (result.length > 0) {\r\n if (buffer.length) {\r\n viewport.clipBottom();\r\n }\r\n buffer.prepend(result);\r\n }\r\n\r\n doAdjustAfterFetch(rid);\r\n });\r\n }\r\n }\r\n }\r\n\r\n function fixInertia() {\r\n if (!viewport.synthetic) {\r\n return;\r\n }\r\n const oldPosition = viewport.synthetic.previous;\r\n const newPosition = viewport.synthetic.next;\r\n if (viewport.scrollTop() !== newPosition) {\r\n requestAnimationFrame(() => {\r\n const position = viewport.scrollTop();\r\n const diff = oldPosition - position;\r\n if (diff > 0) { // inertia over synthetic\r\n viewport.scrollTop(newPosition - diff);\r\n } else {\r\n viewport.scrollTop(newPosition);\r\n }\r\n viewport.synthetic = null;\r\n });\r\n return true;\r\n }\r\n viewport.synthetic = null;\r\n }\r\n\r\n function resizeAndScrollHandler() {\r\n if (handleInertia && fixInertia()) {\r\n return;\r\n }\r\n if (!$rootScope.$$phase && !adapter.isLoading && !adapter.disabled) {\r\n\r\n enqueueFetch(ridActual);\r\n\r\n if (pending.length) {\r\n unbindEvents();\r\n } else {\r\n adapter.calculateProperties();\r\n !$scope.$$phase && $scope.$digest();\r\n }\r\n }\r\n }\r\n\r\n function wheelHandler(event) {\r\n if (!adapter.disabled) {\r\n const scrollTop = viewport[0].scrollTop;\r\n const yMax = viewport[0].scrollHeight - viewport[0].clientHeight;\r\n\r\n if ((scrollTop === 0 && !buffer.bof) || (scrollTop === yMax && !buffer.eof)) {\r\n event.preventDefault();\r\n }\r\n }\r\n }\r\n }\r\n\r\n }\r\n ]);\r\n"],"names":["JQLiteExtras","_classCallCheck","_createClass","key","value","registerFor","element","convertToPx","css","getStyle","isWindow","angular","prototype","name","self","elem","nodeType","style","call","obj","document","location","alert","setInterval","scrollTo","direction","_top$left$direction","_slicedToArray","top","left","method","prop","preserve","isValueDefined","documentElement","window","getComputedStyle","parseFloat","currentStyle","result","rs","rsLeft","core_pnum","source","rnumnonpx","RegExp","test","runtimeStyle","pixelLeft","getMeasurements","measure","base","borderA","borderB","computedMarginA","computedMarginB","computedStyle","dirA","dirB","marginA","marginB","paddingA","paddingB","height","width","padding","border","margin","_width$height$measure","offsetWidth","offsetHeight","getWidthHeight","measurements","outer","outerfull","forEach","before","newElem","children","i","j","parent","ref","contents","prepend","length","after","Error","outerHTML","isNumber","outerHeight","option","outerWidth","offset","docElem","win","box","doc","ownerDocument","arguments","undefined","getBoundingClientRect","defaultView","parentWindow","pageYOffset","scrollTop","clientTop","pageXOffset","scrollLeft","clientLeft","default","hideClassToken","ElementRoutines","$injector","$q","$animate","has","get","isAngularVersionLessThen1_3","version","major","minor","hideElement","wrapper","addClass","showElement","removeClass","insertElement","newElement","previousElement","removeElement","remove","scope","$destroy","insertElementAnimated","deferred","defer","enter","resolve","promise","removeElementAnimated","leave","then","addCSSRules","selector","rules","sheet","styleSheets","index","cssRules","err","insertRule","addRule","OPERATIONS","PREPEND","APPEND","INSERT","REMOVE","NONE","ScrollBuffer","elementRoutines","bufferSize","startIndex","buffer","Object","create","Array","extend","size","reset","eof","bof","first","next","minIndex","maxIndex","minIndexUser","maxIndexUser","append","items","item","insert","Math","max","immutableTop","reverse","min","operation","shiftTop","op","splice","push","unshift","arg1","arg2","indexOf","getAbsMinIndex","incrementMinIndex","decrementMaxIndex","getAbsMaxIndex","effectiveHeight","elements","Number","MAX_VALUE","bottom","NEGATIVE_INFINITY","offsetParent","getItems","filter","getFirstItem","list","getLastItem","CacheProto","add","$index","sort","a","b","argument","_shiftTop","clear","Cache","instance","apply","setPrototypeOf","getOwnPropertyNames","methodName","generateElement","template","Node","ELEMENT_NODE","tagName","toLowerCase","concat","table","find","Padding","cache","Viewport","viewportController","$rootScope","topPadding","bottomPadding","viewport","container","bufferPadding","getScope","createPaddingElements","applyContainerStyle","bottomDataPos","scrollHeight","topDataPos","bottomVisiblePos","topVisiblePos","e","sibling","shouldLoadBottom","clipBottom","overage","overageHeight","itemHeight","emptySpaceHeight","adjustPaddings","shouldLoadTop","clipTop","visibleItemsHeight","reduce","summ","topPaddingHeight","topCount","bottomPaddingHeight","bottomCount","totalHeight","averageItemHeight","adjustTopPadding","adjustBottomPadding","topPaddingHeightAdd","bottomPaddingHeightAdd","onAfterMinIndexSet","topPaddingHeightOld","diff","onAfterPrepend","updates","prepended","paddingHeight","position","newPosition","synthetic","previous","resetTopPadding","resetBottomPadding","removeCacheItem","removeItem","Adapter","$scope","$parse","$attr","doAdjust","reload","isLoading","disabled","viewportScope","startScope","$parent","publicContext","assignAdapter","adapter","generatePublicContext","adapterAttr","replace","adapterOnScope","assign","error","message","_this","publicMethods","bind","publicProps","_loop","_i","property","attr","defineProperty","set","publicPropsImmediate","_loop2","_i2","loading","isBOF","isEOF","isEmpty","newItems","options","applyUpdates","arg3","applyUpdatesFunc","applyUpdatesIndex","cb","_this2","slice","applyUpdate","_index","isArray","_this3","some","newItem","calculateProperties","rowTop","topHeight","topDone","bottomDone","itemTop","module","constant","run","elt","jQuery","fn","jquery","directive","restrict","controller","child","console","$timeout","$interval","require","transclude","priority","terminal","link","controllers","linker","match","uiScroll","parseNumber","defaultValue","isFloat","floor","isNaN","parseNumericAttr","parseBooleanAttr","BUFFER_MIN","BUFFER_DEFAULT","PADDING_MIN","PADDING_DEFAULT","HANDLE_INERTIA_DEFAULT","START_INDEX_DEFAULT","MAX_VIEWPORT_DELAY","VIEWPORT_POLLING_INTERVAL","datasource","itemName","datasourceName","handleInertia","ridActual","pending","isDatasourceValid","toString","onRenderHandlers","onRenderHandlersRunner","handler","persistDatasourceIndex","propName","getter","id","defineDatasourceIndex","propUserName","descriptor","getOwnPropertyDescriptor","fetchNext","success","count","fetchPrevious","initialize","tryCount","timer","cancel","clone","$on","unbindEvents","off","wheelHandler","on","isInvalid","rid","$$destroyed","bindEvents","resizeAndScrollHandler","isElementVisible","visibilityWatcher","unregisterVisibilityWatcher","insertWrapperContent","insertAfter","createElement","$watch","promises","transform","tdInitializer","uiScrollTdInitializer","linking","onLink","updateDOM","toBePrepended","toBeRemoved","inserted","removed","animated","updatePaddings","all","enqueueFetch","fetch","processUpdates","$$phase","$digest","w","doAdjustAfterFetch","shift","fixInertia","oldPosition","requestAnimationFrame","event","yMax","clientHeight","preventDefault"],"sourceRoot":""} \ No newline at end of file diff --git a/dist/ui-scroll.min.js b/dist/ui-scroll.min.js index 1c721cf..2853092 100644 --- a/dist/ui-scroll.min.js +++ b/dist/ui-scroll.min.js @@ -1,2 +1,2 @@ -!function(e){var t={};function n(r){if(t[r])return t[r].exports;var i=t[r]={i:r,l:!1,exports:{}};return e[r].call(i.exports,i,i.exports,n),i.l=!0,i.exports}n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var i in e)n.d(r,i,function(t){return e[t]}.bind(null,i));return r},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=1)}([,function(e,t,n){"use strict";function r(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=[],r=!0,i=!1,o=void 0;try{for(var a,u=e[Symbol.iterator]();!(r=(a=u.next()).done)&&(n.push(a.value),!t||n.length!==t);r=!0);}catch(e){i=!0,o=e}finally{try{r||null==u.return||u.return()}finally{if(i)throw o}}return n}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance")}()}function i(e,t){for(var n=0;n0?{base:s.base-s.padding-s.border,outer:s.base,outerfull:s.base+s.margin}[a]:(((u=i(e)[n])<0||null===u)&&(u=e.style[n]||0),{base:(u=parseFloat(u)||0)-s.padding-s.border,outer:u,outerfull:u+s.padding+s.border+s.margin}[a])}return n=angular.element.prototype.css,e.prototype.css=function(e,t){var r=this[0];if(r&&3!==r.nodeType&&8!==r.nodeType&&r.style)return n.call(this,e,t)},o=function(e){return e&&e.document&&e.location&&e.alert&&e.setInterval},window.getComputedStyle?(i=function(e){return window.getComputedStyle(e,null)},t=function(e,t){return parseFloat(t)}):(i=function(e){return e.currentStyle},t=function(e,t){var n,r,i,o,a;return new RegExp("^("+/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source+")(?!px)[a-z%]+$","i").test(t)?(n=(a=e.style).left,o=(i=e.runtimeStyle)&&i.left,i&&(i.left=a.left),a.left=t,r=a.pixelLeft,a.left=n,o&&(i.left=o),r):parseFloat(t)}),angular.forEach({before:function(e){var t,n,r,i,o,a;if(n=this[0],(t=(o=this.parent()).contents())[0]===n)return o.prepend(e);for(r=i=1,a=t.length-1;1<=a?i<=a:i>=a;r=1<=a?++i:--i)if(t[r]===n)return void angular.element(t[r-1]).after(e);throw new Error("invalid DOM structure "+n.outerHTML)},height:function(e){return void 0!==e?(angular.isNumber(e)&&(e+="px"),n.call(this,"height",e)):u(this[0],"height","base")},outerHeight:function(e){return u(this[0],"height",e?"outerfull":"outer")},outerWidth:function(e){return u(this[0],"width",e?"outerfull":"outer")},offset:function(e){var t,n,r=this,i={top:0,left:0},o=r[0],a=o&&o.ownerDocument;if(arguments.length){if(void 0===e)return r;throw new Error("offset setter method is not implemented")}if(a)return t=a.documentElement,null!=o.getBoundingClientRect&&(i=o.getBoundingClientRect()),n=a.defaultView||a.parentWindow,{top:i.top+(n.pageYOffset||t.scrollTop)-(t.clientTop||0),left:i.left+(n.pageXOffset||t.scrollLeft)-(t.clientLeft||0)}},scrollTop:function(e){return a(this,"top",e)},scrollLeft:function(e){return a(this,"left",e)}},(function(t,n){if(!e.prototype[n])return e.prototype[n]=t}))}}])&&i(t.prototype,n),o&&i(t,o),e}();function a(e,t){for(var n=0;nr.minIndexUser)return void r.minIndexUser++;r.minIndex===r.minIndexUser&&r.minIndexUser++}r.minIndex++},decrementMaxIndex:function(){null!==r.maxIndexUser&&r.maxIndex<=r.maxIndexUser&&r.maxIndexUser--,r.maxIndex--},getAbsMinIndex:function(){return null!==r.minIndexUser?Math.min(r.minIndexUser,r.minIndex):r.minIndex},getAbsMaxIndex:function(){return null!==r.maxIndexUser?Math.max(r.maxIndexUser,r.maxIndex):r.maxIndex},effectiveHeight:function(e){if(!e.length)return 0;var t=Number.MAX_VALUE,n=Number.NEGATIVE_INFINITY;return e.forEach((function(e){e.element[0].offsetParent&&(t=Math.min(t,e.element.offset().top),n=Math.max(n,e.element.offset().top+e.element.outerHeight(!0)))})),Math.max(0,n-t)},getItems:function(){return r.filter((function(e){return e.op===p}))},getFirstItem:function(){var e=r.getItems();return e.length?e[0].item:null},getLastItem:function(){var e=r.getItems();return e.length?e[e.length-1].item:null}}),r.reset(n),r}function g(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function v(e,t){for(var n=0;n=0;t--)if(this[t].index===e.scope.$index)return void(this[t].height=e.element.outerHeight());this.push({index:e.scope.$index,height:e.element.outerHeight()}),this.sort((function(e,t){return e.indext.index?1:0}))}},{key:"remove",value:function(e,t){for(var n=e%1==0?e:e.scope.$index,r=e%1==0?t:e.shiftTop,i=this.length-1;i>=0;i--)if(this[i].index===n){this.splice(i,1);break}if(!r)for(var o=this.length-1;o>=0;o--)this[o].index>n&&this[o].index--}},{key:"clear",value:function(){this.length=0}}]),e}();function y(){var e=[];return e.push.apply(e,arguments),Object.setPrototypeOf(e,y.prototype),e}y.prototype=Object.create(Array.prototype),Object.getOwnPropertyNames(x.prototype).forEach((function(e){return y.prototype[e]=x.prototype[e]}));var I=function(){function e(t){g(this,e),this.element=function(e){if(e.nodeType!==Node.ELEMENT_NODE)throw new Error("ui-scroll directive requires an Element node for templating the view");var t;switch(e.tagName.toLowerCase()){case"dl":throw new Error("ui-scroll directive does not support <".concat(e.tagName,"> as a repeating tag: ").concat(e.outerHTML));case"tr":t=angular.element("
    ").find("tr");break;case"li":t=angular.element("
  • ");break;default:t=angular.element("
    ")}return t}(t),this.cache=new y}return b(e,[{key:"height",value:function(){return this.element.height.apply(this.element,arguments)}}]),e}();function w(e,t,n,r,i,o){var a=null,u=null,s=r&&r.viewport?r.viewport:angular.element(window),l=r&&r.container?r.container:void 0,c=r&&r.scope?r.scope:i;function f(){return s.outerHeight()*o}return s.css({"overflow-anchor":"none","overflow-y":"auto",display:"block"}),angular.extend(s,{getScope:function(){return c},createPaddingElements:function(e){a=new I(e),u=new I(e),n.before(a.element),n.after(u.element),a.height(0),u.height(0)},applyContainerStyle:function(){return!l||(l!==s&&s.css("height",window.getComputedStyle(l[0]).height),s.height()>0)},bottomDataPos:function(){var e=s[0].scrollHeight;return(e=null!=e?e:s[0].document.documentElement.scrollHeight)-u.height()},topDataPos:function(){return a.height()},bottomVisiblePos:function(){return s.scrollTop()+s.outerHeight()},topVisiblePos:function(){return s.scrollTop()},insertElement:function(t,n){return e.insertElement(t,n||a.element)},insertElementAnimated:function(t,n){return e.insertElementAnimated(t,n||a.element)},shouldLoadBottom:function(){return!t.eof&&s.bottomDataPos()=0&&!(n+(r=t[o].element.outerHeight(!0))>i);o--)u.cache.add(t[o]),n+=r,e++;e>0&&(t.eof=!1,t.remove(t.length-e,t.length),t.next-=e,s.adjustPaddings())},shouldLoadTop:function(){return!t.bof&&s.topDataPos()>s.topVisiblePos()-f()},clipTop:function(){for(var e=0,n=0,r=0,i=s.topVisiblePos()-s.topDataPos()-f(),o=0;oi);o++)a.cache.add(t[o]),n+=r,e++;e>0&&(a.height(a.height()+n),t.bof=!1,t.remove(0,e),t.first+=e)},adjustPaddings:function(){if(t.length){var e=t.reduce((function(e,t){return e+t.element.outerHeight(!0)}),0),n=0,r=0;a.cache.forEach((function(e){e.index=t.next&&(i+=e.height,o++)}));var s=(e+n+i)/(r+o+t.length),l=null!==t.minIndexUser&&t.minIndex>t.minIndexUser,c=null!==t.maxIndexUser&&t.maxIndext.minIndexUser){var n=a.height()-e;for(s.scrollTop(s.scrollTop()+n);(n-=s.scrollTop())>0;)u.height(u.height()+n),s.scrollTop(s.scrollTop()+n)}},onAfterPrepend:function(e){if(e.prepended.length){var n=t.effectiveHeight(e.prepended),r=a.height()-n;if(r>=0)a.height(r);else{var i=s.scrollTop(),o=i-r;s.synthetic={previous:i,next:o},a.height(0),s.scrollTop(o)}}},resetTopPadding:function(){a.height(0),a.cache.clear()},resetBottomPadding:function(){u.height(0),u.cache.clear()},removeCacheItem:function(e,t){a.cache.remove(e,t),u.cache.remove(e,t)},removeItem:function(e){return this.removeCacheItem(e),t.remove(e)}}),s}function E(e,t){for(var n=0;n=0;n--)this.publicContext[t[n]]=this[t[n]].bind(this);for(var r=["isLoading","topVisible","topVisibleElement","topVisibleScope","bottomVisible","bottomVisibleElement","bottomVisibleScope"],i=function(t){var n=void 0,i=e.$attr[r[t]];Object.defineProperty(e,r[t],{get:function(){return n},set:function(o){n=o,e.publicContext[r[t]]=o,i&&e.$parse(i).assign(e.startScope,o)}})},o=r.length-1;o>=0;o--)i(o);for(var a=["bufferFirst","bufferLast","bufferLength"],u=function(t){Object.defineProperty(e.publicContext,a[t],{get:function(){return e[a[t]]}})},s=a.length-1;s>=0;s--)u(s);Object.defineProperty(this.publicContext,"disabled",{get:function(){return e.disabled},set:function(t){return(e.disabled=t)?null:e.doAdjust()}})}},{key:"loading",value:function(e){this.isLoading=e}},{key:"isBOF",value:function(){return this.buffer.bof}},{key:"isEOF",value:function(){return this.buffer.eof}},{key:"isEmpty",value:function(){return!this.buffer.length}},{key:"append",value:function(e){this.buffer.append(e),this.doAdjust(),this.viewport.clipTop(),this.viewport.clipBottom()}},{key:"prepend",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};this.buffer.prepend(e,t.immutableTop),this.doAdjust(),this.viewport.clipTop(),this.viewport.clipBottom()}},{key:"applyUpdates",value:function(e,t,n){"function"==typeof e?this.applyUpdatesFunc(e,t):this.applyUpdatesIndex(e,t,n),this.doAdjust()}},{key:"applyUpdatesFunc",value:function(e){var t=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};this.buffer.slice(0).forEach((function(r){t.applyUpdate(r,e(r.item,r.scope,r.element),n)}))}},{key:"applyUpdatesIndex",value:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(e%1!=0)throw new Error("applyUpdates - "+e+" is not a valid index (should be an integer)");var r=e-this.buffer.first;r>=0&&r=this.buffer.getAbsMinIndex()&&e<=this.buffer.getAbsMaxIndex()&&angular.isArray(t)&&!t.length&&(this.viewport.removeCacheItem(e,!n.immutableTop&&e===this.buffer.minIndex),n.immutableTop||e!==this.buffer.getAbsMinIndex()?this.buffer.decrementMaxIndex():this.buffer.incrementMinIndex())}},{key:"applyUpdate",value:function(e,t){var n=this,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(angular.isArray(t)){var i=this.buffer.indexOf(e);t.reverse().some((function(t){return t===e.item}))||(e.op=d,r.immutableTop||t.length||(0===i&&this.buffer.bof||0!==i&&this.buffer[i-1].shiftTop)&&(e.shiftTop=!0)),t.forEach((function(t){t===e.item?i--:n.buffer.insert(i+1,t,!r.immutableTop&&-1===i)}))}}},{key:"calculateProperties",value:function(){for(var e=null,t=0,n=!1,r=!1,i=this.buffer.length,o=0;othis.viewport.topVisiblePos()&&(n=!0,this.topVisible=a.item,this.topVisibleElement=a.element,this.topVisibleScope=a.scope),!r&&(l>=this.viewport.bottomVisiblePos()||o===i-1&&this.isEOF())&&(r=!0,this.bottomVisible=a.item,this.bottomVisibleElement=a.element,this.bottomVisibleScope=a.scope),t+=s}if(e=u,n&&r)break}}},{key:"bufferLength",get:function(){return this.buffer.getItems().length}},{key:"bufferFirst",get:function(){return this.buffer.getFirstItem()}},{key:"bufferLast",get:function(){return this.buffer.getLastItem()}}])&&E(t.prototype,n),r&&E(t,r),e}();angular.module("ui.scroll",[]).constant("JQLiteExtras",o).run(["JQLiteExtras",function(e){var t=angular.element;!(window.jQuery&&t.fn&&t.fn.jquery)&&(new e).registerFor(t),l.addCSSRules()}]).directive("uiScrollViewport",(function(){return{restrict:"A",controller:["$scope","$element",function(e,t){var n=this;return this.container=t,this.viewport=t,this.scope=e,angular.forEach(t.children(),(function(e){"tbody"===e.tagName.toLowerCase()&&(n.viewport=angular.element(e))})),this}]}})).directive("uiScroll",["$log","$injector","$rootScope","$timeout","$interval","$q","$parse",function(e,t,n,r,i,o,a){return{require:["?^uiScrollViewport"],restrict:"A",transclude:"element",priority:1e3,terminal:!0,link:function(e,u,s,g,v){var b=s.uiScroll.match(/^\s*(\w+)\s+in\s+([(\w|\$)\.]+)\s*$/);if(!b)throw new Error("Expected uiScroll in form of '_item_ in _datasource_' but got '"+s.uiScroll+"'");function x(e,t,n){return n||(e=null===e?t:Math.floor(e)),isNaN(e)?t:e}function y(t,n,r){return x(a(t)(e),n,r)}var I=null,E=b[1],$=b[2],P=g[0],k=Math.max(3,y(s.bufferSize,10)),S=Math.max(.3,y(s.padding,.5,!0)),A=(H=s.handleInertia,F=!0,N=a(H)(e),"boolean"==typeof N?N:F),O=y(s.startIndex,1),j=0,L=[],U=new l(t,o),M=new m(U,k,O),V=new w(U,M,u,P,n,S),C=new T(e,a,s,V,M,ee,(function(){Q(),V.resetTopPadding(),V.resetBottomPadding(),arguments.length&&(O=x(arguments[0],1,!1));M.reset(O),D(I,"minIndex"),D(I,"maxIndex"),ee()}));var H,F,N;P&&(P.adapter=C);var _=function(){return"[object Object]"===Object.prototype.toString.call(I)&&"function"==typeof I.get};if(!(I=a($)(e),_()||(I=t.get($),_())))throw new Error($+" is not a valid datasource");var B=[];function D(e,t){var n;angular.isNumber(e[t])&&(n=e[t],angular.isNumber(n)&&(B=B.filter((function(e){return e.id!==t}))).push({id:t,run:function(){return e[t]=n}}))}function R(e,t,n){var r,i=Object.getOwnPropertyDescriptor(e,t);i&&(i.set||i.get)||(D(e,t),Object.defineProperty(e,t,{set:function(i){if(r=i,!L.length||M.length){M[n]=i;var o=V.topDataPos();V.adjustPaddings(),"minIndex"===t&&V.onAfterMinIndexSet(o)}else D(e,t)},get:function(){return r}}))}R(I,"minIndex","minIndexUser"),R(I,"maxIndex","maxIndexUser");var W=2!==I.get.length?function(e){return I.get(M.next,k,e)}:function(e){I.get({index:M.next,append:M.length?M[M.length-1].item:void 0,count:k},e)},q=2!==I.get.length?function(e){return I.get(M.first-k,k,e)}:function(e){I.get({index:M.first-k,prepend:M.length?M[0].item:void 0,count:k},e)};function z(t){return t&&t!==j||e.$$destroyed}function Q(){V.off("resize",re),V.off("scroll",re)}function X(e){return e.element.height()&&e.element[0].offsetParent}function Y(e,t){J(e,t,V.insertElement),X(e)||(e.unregisterVisibilityWatcher=e.scope.$watch((function(){return function(e){X(e)&&(M.forEach((function(e){"function"==typeof e.unregisterVisibilityWatcher&&(e.unregisterVisibilityWatcher(),delete e.unregisterVisibilityWatcher)})),L.length||r((function(){return ee()})))}(e)}))),U.hideElement(e)}function J(e,t,n){var r=null,i=t>0?M[t-1].element:void 0;if(v((function(t,o){r=n(t,i),e.element=t,e.scope=o,o[E]=e.item})),C.transform){var o=e.scope.uiScrollTdInitializer;o&&o.linking?C.transform(e.scope,e.element):e.scope.uiScrollTdInitializer={onLink:function(){return C.transform(e.scope,e.element)},scope:e.scope}}return r}function G(e,t){t.animated.length?o.all(t.animated).then((function(){V.adjustPaddings(),ee(e)})):V.adjustPaddings()}function K(e,t){V.shouldLoadBottom()?(!t||M.effectiveHeight(t.inserted)>0)&&1===L.push(!0)&&(C.loading(!0),ne(e)):V.shouldLoadTop()&&(!t||M.effectiveHeight(t.prepended)>0||L[0])&&1===L.push(!1)&&(C.loading(!0),ne(e))}function Z(){var t,r,i,o,a=(t=[],r=[],i=[],o=[],M.forEach((function(e,n){switch(e.op){case c:r.unshift(e);break;case f:Y(e,n),e.op=p,o.push(e);break;case h:t=t.concat(J(e,n,V.insertElementAnimated)),e.op=p,o.push(e);break;case d:i.push(e)}})),i.forEach((function(e){return t=t.concat(V.removeItem(e))})),r.length&&r.forEach((function(e){Y(e),e.op=p})),M.forEach((function(e,t){return e.scope.$index=M.first+t})),{prepended:r,removed:i,inserted:o,animated:t});return!e.$$phase&&!n.$$phase&&e.$digest(),a.inserted.forEach((function(e){return U.showElement(e)})),a.prepended.forEach((function(e){return U.showElement(e)})),a}function ee(e){e||(L=[],e=++j);var t=Z();z(e)||(G(e,t),K(e),L.length||C.calculateProperties())}function te(e){var t=Z();V.onAfterPrepend(t),z(e)||(G(e,t),B.forEach((function(e){return e.run()})),B=[],K(e,t),L.shift(),L.length?ne(e):(C.loading(!1),V.on("resize",re),V.on("scroll",re),C.calculateProperties()))}function ne(e){L[0]?M.length&&!V.shouldLoadBottom()?te(e):W((function(t){z(e)||(t.length0&&(V.clipTop(),M.append(t)),te(e))})):M.length&&!V.shouldLoadTop()?te(e):q((function(t){z(e)||(t.length0&&(M.length&&V.clipBottom(),M.prepend(t)),te(e))}))}function re(){A&&function(){if(V.synthetic){var e=V.synthetic.previous,t=V.synthetic.next;if(V.scrollTop()!==t)return requestAnimationFrame((function(){var n=V.scrollTop(),r=e-n;r>0?V.scrollTop(t-r):V.scrollTop(t),V.synthetic=null})),!0;V.synthetic=null}}()||n.$$phase||C.isLoading||C.disabled||(K(j),L.length?Q():(C.calculateProperties(),!e.$$phase&&e.$digest()))}function ie(e){if(!C.disabled){var t=V[0].scrollTop,n=V[0].scrollHeight-V[0].clientHeight;(0===t&&!M.bof||t===n&&!M.eof)&&e.preventDefault()}}v((function(e,t){V.createPaddingElements(e[0]),t.$destroy(),e.remove()})),e.$on("$destroy",(function(){Q(),V.off("mousewheel",ie)})),V.on("mousewheel",ie),function(){var e=0;if(V.applyContainerStyle())ee();else var t=i((function(){if(e++,V.applyContainerStyle()&&(i.cancel(t),ee()),50*e>=500)throw i.cancel(t),Error("ui-scroll directive requires a viewport with non-zero height in ".concat(500,"ms"))}),50)}()}}}])}]); +(()=>{"use strict";function e(t){return e="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},e(t)}function t(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,i,o,a,u=[],l=!0,s=!1;try{if(o=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;l=!1}else for(;!(l=(r=o.call(n)).done)&&(u.push(r.value),u.length!==t);l=!0);}catch(e){s=!0,i=e}finally{try{if(!l&&null!=n.return&&(a=n.return(),Object(a)!==a))return}finally{if(s)throw i}}return u}}(e,t)||function(e,t){if(!e)return;if("string"==typeof e)return n(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);"Object"===r&&e.constructor&&(r=e.constructor.name);if("Map"===r||"Set"===r)return Array.from(e);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return n(e,t)}(e,t)||function(){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 n(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n0?{base:l.base-l.padding-l.border,outer:l.base,outerfull:l.base+l.margin}[a]:(((u=i(e)[r])<0||null===u)&&(u=e.style[r]||0),{base:(u=parseFloat(u)||0)-l.padding-l.border,outer:u,outerfull:u+l.padding+l.border+l.margin}[a])}return r=angular.element.prototype.css,e.prototype.css=function(e,t){var n=this[0];if(n&&3!==n.nodeType&&8!==n.nodeType&&n.style)return r.call(this,e,t)},o=function(e){return e&&e.document&&e.location&&e.alert&&e.setInterval},window.getComputedStyle?(i=function(e){return window.getComputedStyle(e,null)},n=function(e,t){return parseFloat(t)}):(i=function(e){return e.currentStyle},n=function(e,t){var n,r,i,o,a;return new RegExp("^("+/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source+")(?!px)[a-z%]+$","i").test(t)?(n=(a=e.style).left,o=(i=e.runtimeStyle)&&i.left,i&&(i.left=a.left),a.left=t,r=a.pixelLeft,a.left=n,o&&(i.left=o),r):parseFloat(t)}),angular.forEach({before:function(e){var t,n,r,i,o,a;if(n=this[0],(t=(o=this.parent()).contents())[0]===n)return o.prepend(e);for(r=i=1,a=t.length-1;1<=a?i<=a:i>=a;r=1<=a?++i:--i)if(t[r]===n)return void angular.element(t[r-1]).after(e);throw new Error("invalid DOM structure "+n.outerHTML)},height:function(e){return void 0!==e?(angular.isNumber(e)&&(e+="px"),r.call(this,"height",e)):u(this[0],"height","base")},outerHeight:function(e){return u(this[0],"height",e?"outerfull":"outer")},outerWidth:function(e){return u(this[0],"width",e?"outerfull":"outer")},offset:function(e){var t,n,r={top:0,left:0},i=this[0],o=i&&i.ownerDocument;if(arguments.length){if(void 0===e)return this;throw new Error("offset setter method is not implemented")}if(o)return t=o.documentElement,null!=i.getBoundingClientRect&&(r=i.getBoundingClientRect()),n=o.defaultView||o.parentWindow,{top:r.top+(n.pageYOffset||t.scrollTop)-(t.clientTop||0),left:r.left+(n.pageXOffset||t.scrollLeft)-(t.clientLeft||0)}},scrollTop:function(e){return a(this,"top",e)},scrollLeft:function(e){return a(this,"left",e)}},(function(t,n){if(!e.prototype[n])return e.prototype[n]=t}))}}],i&&r(n.prototype,i),o&&r(n,o),Object.defineProperty(n,"prototype",{writable:!1}),e}();function o(e){return o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},o(e)}function a(e,t){for(var n=0;nr.minIndexUser)return void r.minIndexUser++;r.minIndex===r.minIndexUser&&r.minIndexUser++}r.minIndex++},decrementMaxIndex:function(){null!==r.maxIndexUser&&r.maxIndex<=r.maxIndexUser&&r.maxIndexUser--,r.maxIndex--},getAbsMinIndex:function(){return null!==r.minIndexUser?Math.min(r.minIndexUser,r.minIndex):r.minIndex},getAbsMaxIndex:function(){return null!==r.maxIndexUser?Math.max(r.maxIndexUser,r.maxIndex):r.maxIndex},effectiveHeight:function(e){if(!e.length)return 0;var t=Number.MAX_VALUE,n=Number.NEGATIVE_INFINITY;return e.forEach((function(e){e.element[0].offsetParent&&(t=Math.min(t,e.element.offset().top),n=Math.max(n,e.element.offset().top+e.element.outerHeight(!0)))})),Math.max(0,n-t)},getItems:function(){return r.filter((function(e){return e.op===s.NONE}))},getFirstItem:function(){var e=r.getItems();return e.length?e[0].item:null},getLastItem:function(){var e=r.getItems();return e.length?e[e.length-1].item:null}}),r.reset(n),r}function c(e){return c="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},c(e)}function h(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function p(e,t){for(var n=0;n=0;t--)if(this[t].index===e.scope.$index)return void(this[t].height=e.element.outerHeight());this.push({index:e.scope.$index,height:e.element.outerHeight()}),this.sort((function(e,t){return e.indext.index?1:0}))}},{key:"remove",value:function(e,t){for(var n=e%1==0?e:e.scope.$index,r=e%1==0?t:e.shiftTop,i=this.length-1;i>=0;i--)if(this[i].index===n){this.splice(i,1);break}if(!r)for(var o=this.length-1;o>=0;o--)this[o].index>n&&this[o].index--}},{key:"clear",value:function(){this.length=0}}]),e}();function g(){var e=[];return e.push.apply(e,arguments),Object.setPrototypeOf(e,g.prototype),e}g.prototype=Object.create(Array.prototype),Object.getOwnPropertyNames(m.prototype).forEach((function(e){return g.prototype[e]=m.prototype[e]}));const b=function(){function e(t){h(this,e),this.element=function(e){if(e.nodeType!==Node.ELEMENT_NODE)throw new Error("ui-scroll directive requires an Element node for templating the view");var t;switch(e.tagName.toLowerCase()){case"dl":throw new Error("ui-scroll directive does not support <".concat(e.tagName,"> as a repeating tag: ").concat(e.outerHTML));case"tr":t=angular.element("
    ").find("tr");break;case"li":t=angular.element("
  • ");break;default:t=angular.element("
    ")}return t}(t),this.cache=new g}return d(e,[{key:"height",value:function(){return this.element.height.apply(this.element,arguments)}}]),e}();function v(e,t,n,r,i,o){var a=null,u=null,l=r&&r.viewport?r.viewport:angular.element(window),s=r&&r.container?r.container:void 0,f=r&&r.scope?r.scope:i;function c(){return l.outerHeight()*o}return l.css({"overflow-anchor":"none","overflow-y":"auto",display:"block"}),angular.extend(l,{getScope:function(){return f},createPaddingElements:function(e){a=new b(e),u=new b(e),n.before(a.element),n.after(u.element),a.height(0),u.height(0)},applyContainerStyle:function(){return!s||(s!==l&&l.css("height",window.getComputedStyle(s[0]).height),l.height()>0)},bottomDataPos:function(){var e=l[0].scrollHeight;return(e=null!=e?e:l[0].document.documentElement.scrollHeight)-u.height()},topDataPos:function(){return a.height()},bottomVisiblePos:function(){return l.scrollTop()+l.outerHeight()},topVisiblePos:function(){return l.scrollTop()},insertElement:function(t,n){return e.insertElement(t,n||a.element)},insertElementAnimated:function(t,n){return e.insertElementAnimated(t,n||a.element)},shouldLoadBottom:function(){return!t.eof&&l.bottomDataPos()=0&&!(n+(r=t[o].element.outerHeight(!0))>i);o--)u.cache.add(t[o]),n+=r,e++;e>0&&(t.eof=!1,t.remove(t.length-e,t.length),t.next-=e,l.adjustPaddings())},shouldLoadTop:function(){return!t.bof&&l.topDataPos()>l.topVisiblePos()-c()},clipTop:function(){for(var e=0,n=0,r=0,i=l.topVisiblePos()-l.topDataPos()-c(),o=0;oi);o++)a.cache.add(t[o]),n+=r,e++;e>0&&(a.height(a.height()+n),t.bof=!1,t.remove(0,e),t.first+=e)},adjustPaddings:function(){if(t.length){var e=t.reduce((function(e,t){return e+t.element.outerHeight(!0)}),0),n=0,r=0;a.cache.forEach((function(e){e.index=t.next&&(i+=e.height,o++)}));var l=(e+n+i)/(r+o+t.length),s=null!==t.minIndexUser&&t.minIndex>t.minIndexUser,f=null!==t.maxIndexUser&&t.maxIndext.minIndexUser){var n=a.height()-e;for(l.scrollTop(l.scrollTop()+n);(n-=l.scrollTop())>0;)u.height(u.height()+n),l.scrollTop(l.scrollTop()+n)}},onAfterPrepend:function(e){if(e.prepended.length){var n=t.effectiveHeight(e.prepended),r=a.height()-n;if(r>=0)a.height(r);else{var i=l.scrollTop(),o=i-r;l.synthetic={previous:i,next:o},a.height(0),l.scrollTop(o)}}},resetTopPadding:function(){a.height(0),a.cache.clear()},resetBottomPadding:function(){u.height(0),u.cache.clear()},removeCacheItem:function(e,t){a.cache.remove(e,t),u.cache.remove(e,t)},removeItem:function(e){return this.removeCacheItem(e),t.remove(e)}}),l}function y(e){return y="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},y(e)}function x(e,t){for(var n=0;n=0;n--)this.publicContext[t[n]]=this[t[n]].bind(this);for(var r=["isLoading","topVisible","topVisibleElement","topVisibleScope","bottomVisible","bottomVisibleElement","bottomVisibleScope"],i=function(t){var n,i=e.$attr[r[t]];Object.defineProperty(e,r[t],{get:function(){return n},set:function(o){n=o,e.publicContext[r[t]]=o,i&&e.$parse(i).assign(e.startScope,o)}})},o=6;o>=0;o--)i(o);for(var a=["bufferFirst","bufferLast","bufferLength"],u=function(t){Object.defineProperty(e.publicContext,a[t],{get:function(){return e[a[t]]}})},l=2;l>=0;l--)u(l);Object.defineProperty(this.publicContext,"disabled",{get:function(){return e.disabled},set:function(t){return(e.disabled=t)?null:e.doAdjust()}})}},{key:"loading",value:function(e){this.isLoading=e}},{key:"isBOF",value:function(){return this.buffer.bof}},{key:"isEOF",value:function(){return this.buffer.eof}},{key:"isEmpty",value:function(){return!this.buffer.length}},{key:"bufferLength",get:function(){return this.buffer.getItems().length}},{key:"bufferFirst",get:function(){return this.buffer.getFirstItem()}},{key:"bufferLast",get:function(){return this.buffer.getLastItem()}},{key:"append",value:function(e){this.buffer.append(e),this.doAdjust(),this.viewport.clipTop(),this.viewport.clipBottom()}},{key:"prepend",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};this.buffer.prepend(e,t.immutableTop),this.doAdjust(),this.viewport.clipTop(),this.viewport.clipBottom()}},{key:"applyUpdates",value:function(e,t,n){"function"==typeof e?this.applyUpdatesFunc(e,t):this.applyUpdatesIndex(e,t,n),this.doAdjust()}},{key:"applyUpdatesFunc",value:function(e){var t=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};this.buffer.slice(0).forEach((function(r){t.applyUpdate(r,e(r.item,r.scope,r.element),n)}))}},{key:"applyUpdatesIndex",value:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(e%1!=0)throw new Error("applyUpdates - "+e+" is not a valid index (should be an integer)");var r=e-this.buffer.first;r>=0&&r=this.buffer.getAbsMinIndex()&&e<=this.buffer.getAbsMaxIndex()&&angular.isArray(t)&&!t.length&&(this.viewport.removeCacheItem(e,!n.immutableTop&&e===this.buffer.minIndex),n.immutableTop||e!==this.buffer.getAbsMinIndex()?this.buffer.decrementMaxIndex():this.buffer.incrementMinIndex())}},{key:"applyUpdate",value:function(e,t){var n=this,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(angular.isArray(t)){var i=this.buffer.indexOf(e);t.reverse().some((function(t){return t===e.item}))||(e.op=s.REMOVE,r.immutableTop||t.length||(0===i&&this.buffer.bof||0!==i&&this.buffer[i-1].shiftTop)&&(e.shiftTop=!0)),t.forEach((function(t){t===e.item?i--:n.buffer.insert(i+1,t,!r.immutableTop&&-1===i)}))}}},{key:"calculateProperties",value:function(){for(var e=null,t=0,n=!1,r=!1,i=this.buffer.length,o=0;othis.viewport.topVisiblePos()&&(n=!0,this.topVisible=a.item,this.topVisibleElement=a.element,this.topVisibleScope=a.scope),!r&&(s>=this.viewport.bottomVisiblePos()||o===i-1&&this.isEOF())&&(r=!0,this.bottomVisible=a.item,this.bottomVisibleElement=a.element,this.bottomVisibleScope=a.scope),t+=l}if(e=u,n&&r)break}}}],n&&x(t.prototype,n),r&&x(t,r),Object.defineProperty(t,"prototype",{writable:!1}),e}();angular.module("ui.scroll",[]).constant("JQLiteExtras",i).run(["JQLiteExtras",function(e){var t=angular.element;!(window.jQuery&&t.fn&&t.fn.jquery)&&(new e).registerFor(t),l.addCSSRules()}]).directive("uiScrollViewport",(function(){return{restrict:"A",controller:["$scope","$element",function(e,t){var n=this;return this.container=t,this.viewport=t,this.scope=e,angular.forEach(t.children(),(function(e){"tbody"===e.tagName.toLowerCase()&&(n.viewport=angular.element(e))})),this}]}})).directive("uiScroll",["$log","$injector","$rootScope","$timeout","$interval","$q","$parse",function(e,t,n,r,i,o,a){return{require:["?^uiScrollViewport"],restrict:"A",transclude:"element",priority:1e3,terminal:!0,link:function(e,u,c,h,p){var d=c.uiScroll.match(/^\s*(\w+)\s+in\s+([(\w|\$)\.]+)\s*$/);if(!d)throw new Error("Expected uiScroll in form of '_item_ in _datasource_' but got '"+c.uiScroll+"'");function m(e,t,n){return n||(e=null===e?t:Math.floor(e)),isNaN(e)?t:e}function g(t,n,r){return m(a(t)(e),n,r)}var b=null,y=d[1],x=d[2],w=h[0],I=Math.max(3,g(c.bufferSize,10)),P=Math.max(.3,g(c.padding,.5,!0)),S=(U=c.handleInertia,L=!0,V=a(U)(e),"boolean"==typeof V?V:L),T=g(c.startIndex,1),$=0,A=[],j=new l(t,o),O=new f(j,I,T),k=new v(j,O,u,w,n,P),N=new E(e,a,c,k,O,J,(function(){W(),k.resetTopPadding(),k.resetBottomPadding(),arguments.length&&(T=m(arguments[0],1,!1));O.reset(T),H(b,"minIndex"),H(b,"maxIndex"),J()}));var U,L,V;w&&(w.adapter=N);var M=function(){return"[object Object]"===Object.prototype.toString.call(b)&&"function"==typeof b.get};if(!(b=a(x)(e),M()||(b=t.get(x),M())))throw new Error(x+" is not a valid datasource");var C=[];function H(e,t){var n;angular.isNumber(e[t])&&(n=e[t],angular.isNumber(n)&&(C=C.filter((function(e){return e.id!==t}))).push({id:t,run:function(){return e[t]=n}}))}function D(e,t,n){var r,i=Object.getOwnPropertyDescriptor(e,t);i&&(i.set||i.get)||(H(e,t),Object.defineProperty(e,t,{set:function(i){if(r=i,!A.length||O.length){O[n]=i;var o=k.topDataPos();k.adjustPaddings(),"minIndex"===t&&k.onAfterMinIndexSet(o)}else H(e,t)},get:function(){return r}}))}D(b,"minIndex","minIndexUser"),D(b,"maxIndex","maxIndexUser");var R=2!==b.get.length?function(e){return b.get(O.next,I,e)}:function(e){b.get({index:O.next,append:O.length?O[O.length-1].item:void 0,count:I},e)},F=2!==b.get.length?function(e){return b.get(O.first-I,I,e)}:function(e){b.get({index:O.first-I,prepend:O.length?O[0].item:void 0,count:I},e)};function B(t){return t&&t!==$||e.$$destroyed}function W(){k.off("resize",Z),k.off("scroll",Z)}function _(e){return e.element.height()&&e.element[0].offsetParent}function q(e,t){z(e,t,k.insertElement),_(e)||(e.unregisterVisibilityWatcher=e.scope.$watch((function(){return function(e){_(e)&&(O.forEach((function(e){"function"==typeof e.unregisterVisibilityWatcher&&(e.unregisterVisibilityWatcher(),delete e.unregisterVisibilityWatcher)})),A.length||r((function(){return J()})))}(e)}))),j.hideElement(e)}function z(e,t,n){var r=null,i=t>0?O[t-1].element:void 0;if(p((function(t,o){r=n(t,i),e.element=t,e.scope=o,o[y]=e.item})),N.transform){var o=e.scope.uiScrollTdInitializer;o&&o.linking?N.transform(e.scope,e.element):e.scope.uiScrollTdInitializer={onLink:function(){return N.transform(e.scope,e.element)},scope:e.scope}}return r}function Q(e,t){t.animated.length?o.all(t.animated).then((function(){k.adjustPaddings(),J(e)})):k.adjustPaddings()}function X(e,t){k.shouldLoadBottom()?(!t||O.effectiveHeight(t.inserted)>0)&&1===A.push(!0)&&(N.loading(!0),K(e)):k.shouldLoadTop()&&(!t||O.effectiveHeight(t.prepended)>0||A[0])&&1===A.push(!1)&&(N.loading(!0),K(e))}function Y(){var t,r,i,o,a=(t=[],r=[],i=[],o=[],O.forEach((function(e,n){switch(e.op){case s.PREPEND:r.unshift(e);break;case s.APPEND:q(e,n),e.op=s.NONE,o.push(e);break;case s.INSERT:t=t.concat(z(e,n,k.insertElementAnimated)),e.op=s.NONE,o.push(e);break;case s.REMOVE:i.push(e)}})),i.forEach((function(e){return t=t.concat(k.removeItem(e))})),r.length&&r.forEach((function(e){q(e),e.op=s.NONE})),O.forEach((function(e,t){return e.scope.$index=O.first+t})),{prepended:r,removed:i,inserted:o,animated:t});return!e.$$phase&&!n.$$phase&&e.$digest(),a.inserted.forEach((function(e){return j.showElement(e)})),a.prepended.forEach((function(e){return j.showElement(e)})),a}function J(e){e||(A=[],e=++$);var t=Y();B(e)||(Q(e,t),X(e),A.length||N.calculateProperties())}function G(e){var t=Y();k.onAfterPrepend(t),B(e)||(Q(e,t),C.forEach((function(e){return e.run()})),C=[],X(e,t),A.shift(),A.length?K(e):(N.loading(!1),k.on("resize",Z),k.on("scroll",Z),N.calculateProperties()))}function K(e){A[0]?O.length&&!k.shouldLoadBottom()?G(e):R((function(t){B(e)||(t.length0&&(k.clipTop(),O.append(t)),G(e))})):O.length&&!k.shouldLoadTop()?G(e):F((function(t){B(e)||(t.length0&&(O.length&&k.clipBottom(),O.prepend(t)),G(e))}))}function Z(){S&&function(){if(k.synthetic){var e=k.synthetic.previous,t=k.synthetic.next;if(k.scrollTop()!==t)return requestAnimationFrame((function(){var n=k.scrollTop(),r=e-n;r>0?k.scrollTop(t-r):k.scrollTop(t),k.synthetic=null})),!0;k.synthetic=null}}()||n.$$phase||N.isLoading||N.disabled||(X($),A.length?W():(N.calculateProperties(),!e.$$phase&&e.$digest()))}function ee(e){if(!N.disabled){var t=k[0].scrollTop,n=k[0].scrollHeight-k[0].clientHeight;(0===t&&!O.bof||t===n&&!O.eof)&&e.preventDefault()}}p((function(e,t){k.createPaddingElements(e[0]),t.$destroy(),e.remove()})),e.$on("$destroy",(function(){W(),k.off("mousewheel",ee)})),k.on("mousewheel",ee),function(){var e=0;if(k.applyContainerStyle())J();else var t=i((function(){if(e++,k.applyContainerStyle()&&(i.cancel(t),J()),50*e>=500)throw i.cancel(t),Error("ui-scroll directive requires a viewport with non-zero height in ".concat(500,"ms"))}),50)}()}}}])})(); //# sourceMappingURL=ui-scroll.min.js.map \ No newline at end of file diff --git a/dist/ui-scroll.min.js.map b/dist/ui-scroll.min.js.map index 20ca892..7e13436 100644 --- a/dist/ui-scroll.min.js.map +++ b/dist/ui-scroll.min.js.map @@ -1 +1 @@ -{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./src/modules/jqLiteExtras.js","webpack:///./src/modules/elementRoutines.js","webpack:///./src/modules/utils.js","webpack:///./src/modules/buffer.js","webpack:///./src/modules/padding.js","webpack:///./src/modules/viewport.js","webpack:///./src/modules/adapter.js","webpack:///./src/ui-scroll.js"],"names":["installedModules","__webpack_require__","moduleId","exports","module","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","JQLiteExtras","element","convertToPx","css","getStyle","isWindow","scrollTo","self","direction","elem","top","left","method","prop","preserve","isValueDefined","document","documentElement","getWidthHeight","measure","result","measurements","base","borderA","borderB","computedMarginA","computedMarginB","computedStyle","dirA","dirB","paddingA","paddingB","height","width","padding","border","margin","offsetWidth","offsetHeight","getMeasurements","outer","outerfull","style","parseFloat","angular","this","nodeType","obj","location","alert","setInterval","window","getComputedStyle","currentStyle","rs","rsLeft","RegExp","source","test","runtimeStyle","pixelLeft","forEach","before","newElem","children","j","parent","ref","contents","prepend","length","after","Error","outerHTML","isNumber","outerHeight","option","outerWidth","offset","docElem","win","box","doc","ownerDocument","arguments","undefined","getBoundingClientRect","defaultView","parentWindow","pageYOffset","scrollTop","clientTop","pageXOffset","scrollLeft","clientLeft","hideClassToken","ElementRoutines","$injector","$q","$animate","has","isAngularVersionLessThen1_3","version","major","minor","index","selector","rules","sheet","styleSheets","cssRules","err","insertRule","addRule","wrapper","addClass","removeClass","newElement","previousElement","remove","scope","$destroy","insertElement","deferred","defer","enter","resolve","promise","removeElement","leave","then","OPERATIONS","ScrollBuffer","elementRoutines","bufferSize","startIndex","buffer","Array","extend","size","reset","eof","bof","first","next","minIndex","maxIndex","minIndexUser","maxIndexUser","append","items","item","insert","Math","max","immutableTop","reverse","min","operation","shiftTop","op","splice","push","unshift","arg1","arg2","indexOf","getAbsMinIndex","incrementMinIndex","decrementMaxIndex","removeElementAnimated","getAbsMaxIndex","effectiveHeight","elements","Number","MAX_VALUE","bottom","NEGATIVE_INFINITY","offsetParent","getItems","filter","getFirstItem","list","getLastItem","CacheProto","$index","sort","a","b","argument","_shiftTop","Cache","instance","apply","setPrototypeOf","getOwnPropertyNames","methodName","Padding","template","Node","ELEMENT_NODE","tagName","toLowerCase","find","generateElement","cache","Viewport","viewportController","$rootScope","topPadding","bottomPadding","viewport","container","bufferPadding","getScope","createPaddingElements","applyContainerStyle","bottomDataPos","scrollHeight","topDataPos","bottomVisiblePos","topVisiblePos","e","sibling","insertElementAnimated","shouldLoadBottom","clipBottom","overage","overageHeight","itemHeight","emptySpaceHeight","add","adjustPaddings","shouldLoadTop","clipTop","visibleItemsHeight","reduce","summ","topPaddingHeight","topCount","bottomPaddingHeight","bottomCount","averageItemHeight","adjustTopPadding","adjustBottomPadding","topPaddingHeightAdd","bottomPaddingHeightAdd","onAfterMinIndexSet","topPaddingHeightOld","diff","onAfterPrepend","updates","prepended","paddingHeight","position","newPosition","synthetic","previous","resetTopPadding","clear","resetBottomPadding","removeCacheItem","removeItem","Adapter","$scope","$parse","$attr","doAdjust","reload","isLoading","disabled","viewportScope","startScope","$parent","publicContext","assignAdapter","adapter","generatePublicContext","adapterAttr","replace","adapterOnScope","assign","error","message","publicMethods","publicProps","attr","set","publicPropsImmediate","newItems","options","arg3","applyUpdatesFunc","applyUpdatesIndex","cb","slice","applyUpdate","_index","isArray","some","newItem","rowTop","topHeight","topDone","bottomDone","itemTop","isEOF","constant","run","elt","jQuery","fn","jquery","registerFor","addCSSRules","directive","restrict","controller","child","console","$timeout","$interval","require","transclude","priority","terminal","link","controllers","linker","match","uiScroll","parseNumber","defaultValue","isFloat","floor","isNaN","parseNumericAttr","datasource","itemName","datasourceName","handleInertia","ridActual","pending","unbindEvents","persistDatasourceIndex","isDatasourceValid","toString","onRenderHandlers","propName","handler","id","defineDatasourceIndex","propUserName","descriptor","getOwnPropertyDescriptor","fetchNext","success","count","fetchPrevious","isInvalid","rid","$$destroyed","off","resizeAndScrollHandler","isElementVisible","insertWrapperContent","insertAfter","createElement","unregisterVisibilityWatcher","$watch","visibilityWatcher","hideElement","promises","clone","transform","tdInitializer","uiScrollTdInitializer","linking","onLink","updatePaddings","animated","all","enqueueFetch","inserted","loading","fetch","processUpdates","toBePrepended","toBeRemoved","concat","removed","$$phase","$digest","w","showElement","calculateProperties","doAdjustAfterFetch","shift","on","oldPosition","requestAnimationFrame","fixInertia","wheelHandler","event","yMax","clientHeight","preventDefault","$on","tryCount","timer","cancel","initialize"],"mappings":"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","file":"ui-scroll.min.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 1);\n","/*!\r\n globals: angular, window\r\n List of used element methods available in JQuery but not in JQuery Lite\r\n element.before(elem)\r\n element.height()\r\n element.outerHeight(true)\r\n element.height(value) = only for Top/Bottom padding elements\r\n element.scrollTop()\r\n element.scrollTop(value)\r\n */\r\n\r\nexport default class JQLiteExtras {\r\n\r\n registerFor(element) {\r\n let convertToPx, css, getStyle, isWindow;\r\n // angular implementation blows up if elem is the window\r\n css = angular.element.prototype.css;\r\n\r\n element.prototype.css = function (name, value) {\r\n let self = this;\r\n let elem = self[0];\r\n if (!(!elem || elem.nodeType === 3 || elem.nodeType === 8 || !elem.style)) {\r\n return css.call(self, name, value);\r\n }\r\n };\r\n\r\n // as defined in angularjs v1.0.5\r\n isWindow = (obj) => obj && obj.document && obj.location && obj.alert && obj.setInterval;\r\n\r\n function scrollTo(self, direction, value) {\r\n let elem = self[0];\r\n let [method, prop, preserve] = {\r\n top: [\r\n 'scrollTop',\r\n 'pageYOffset',\r\n 'scrollLeft'\r\n ],\r\n left: [\r\n 'scrollLeft',\r\n 'pageXOffset',\r\n 'scrollTop'\r\n ]\r\n }[direction];\r\n\r\n const isValueDefined = typeof value !== 'undefined';\r\n if (isWindow(elem)) {\r\n if (isValueDefined) {\r\n return elem.scrollTo(self[preserve].call(self), value);\r\n }\r\n return (prop in elem) ? elem[prop] : elem.document.documentElement[method];\r\n } else {\r\n if (isValueDefined) {\r\n elem[method] = value;\r\n }\r\n return elem[method];\r\n }\r\n }\r\n\r\n if (window.getComputedStyle) {\r\n getStyle = (elem) => window.getComputedStyle(elem, null);\r\n convertToPx = (elem, value) => parseFloat(value);\r\n } else {\r\n getStyle = (elem) => elem.currentStyle;\r\n convertToPx = (elem, value) => {\r\n let left, result, rs, rsLeft, style;\r\n let core_pnum = /[+-]?(?:\\d*\\.|)\\d+(?:[eE][+-]?\\d+|)/.source;\r\n let rnumnonpx = new RegExp('^(' + core_pnum + ')(?!px)[a-z%]+$', 'i');\r\n\r\n if (!rnumnonpx.test(value)) {\r\n return parseFloat(value);\r\n }\r\n\r\n // ported from JQuery\r\n style = elem.style;\r\n left = style.left;\r\n rs = elem.runtimeStyle;\r\n rsLeft = rs && rs.left;\r\n if (rs) {\r\n rs.left = style.left;\r\n }\r\n // put in the new values to get a computed style out\r\n style.left = value;\r\n result = style.pixelLeft;\r\n style.left = left;\r\n if (rsLeft) {\r\n rs.left = rsLeft;\r\n }\r\n return result;\r\n };\r\n }\r\n\r\n function getMeasurements(elem, measure) {\r\n let base, borderA, borderB, computedMarginA, computedMarginB, computedStyle, dirA, dirB, marginA, marginB, paddingA, paddingB;\r\n\r\n if (isWindow(elem)) {\r\n base = document.documentElement[{height: 'clientHeight', width: 'clientWidth'}[measure]];\r\n\r\n return {\r\n base: base,\r\n padding: 0,\r\n border: 0,\r\n margin: 0\r\n };\r\n }\r\n\r\n // Start with offset property\r\n [\r\n base,\r\n dirA,\r\n dirB\r\n ] = {\r\n width: [\r\n elem.offsetWidth,\r\n 'Left',\r\n 'Right'\r\n ],\r\n height: [\r\n elem.offsetHeight,\r\n 'Top',\r\n 'Bottom'\r\n ]\r\n }[measure];\r\n\r\n computedStyle = getStyle(elem);\r\n paddingA = convertToPx(elem, computedStyle['padding' + dirA]) || 0;\r\n paddingB = convertToPx(elem, computedStyle['padding' + dirB]) || 0;\r\n borderA = convertToPx(elem, computedStyle['border' + dirA + 'Width']) || 0;\r\n borderB = convertToPx(elem, computedStyle['border' + dirB + 'Width']) || 0;\r\n computedMarginA = computedStyle['margin' + dirA];\r\n computedMarginB = computedStyle['margin' + dirB];\r\n\r\n // I do not care for width for now, so this hack is irrelevant\r\n // if ( !supportsPercentMargin )\r\n // computedMarginA = hackPercentMargin( elem, computedStyle, computedMarginA )\r\n // computedMarginB = hackPercentMargin( elem, computedStyle, computedMarginB )\r\n marginA = convertToPx(elem, computedMarginA) || 0;\r\n marginB = convertToPx(elem, computedMarginB) || 0;\r\n\r\n return {\r\n base: base,\r\n padding: paddingA + paddingB,\r\n border: borderA + borderB,\r\n margin: marginA + marginB\r\n };\r\n }\r\n\r\n function getWidthHeight(elem, direction, measure) {\r\n let computedStyle, result;\r\n\r\n let measurements = getMeasurements(elem, direction);\r\n\r\n if (measurements.base > 0) {\r\n return {\r\n base: measurements.base - measurements.padding - measurements.border,\r\n outer: measurements.base,\r\n outerfull: measurements.base + measurements.margin\r\n }[measure];\r\n }\r\n\r\n // Fall back to computed then uncomputed css if necessary\r\n computedStyle = getStyle(elem);\r\n result = computedStyle[direction];\r\n\r\n if (result < 0 || result === null) {\r\n result = elem.style[direction] || 0;\r\n }\r\n\r\n // Normalize \"\", auto, and prepare for extra\r\n result = parseFloat(result) || 0;\r\n\r\n return {\r\n base: result - measurements.padding - measurements.border,\r\n outer: result,\r\n outerfull: result + measurements.padding + measurements.border + measurements.margin\r\n }[measure];\r\n }\r\n\r\n // define missing methods\r\n return angular.forEach({\r\n before(newElem) {\r\n var children, elem, i, j, parent, ref, self;\r\n self = this;\r\n elem = self[0];\r\n parent = self.parent();\r\n children = parent.contents();\r\n if (children[0] === elem) {\r\n return parent.prepend(newElem);\r\n } else {\r\n for (i = j = 1, ref = children.length - 1; 1 <= ref ? j <= ref : j >= ref; i = 1 <= ref ? ++j : --j) {\r\n if (children[i] === elem) {\r\n angular.element(children[i - 1]).after(newElem);\r\n return;\r\n }\r\n }\r\n throw new Error('invalid DOM structure ' + elem.outerHTML);\r\n }\r\n },\r\n height (value){\r\n var self;\r\n self = this;\r\n if (typeof value !== 'undefined') {\r\n if (angular.isNumber(value)) {\r\n value = value + 'px';\r\n }\r\n return css.call(self, 'height', value);\r\n } else {\r\n return getWidthHeight(this[0], 'height', 'base');\r\n }\r\n },\r\n outerHeight(option) {\r\n return getWidthHeight(this[0], 'height', option ? 'outerfull' : 'outer');\r\n },\r\n outerWidth(option) {\r\n return getWidthHeight(this[0], 'width', option ? 'outerfull' : 'outer');\r\n },\r\n\r\n /*\r\n The offset setter method is not implemented\r\n */\r\n offset(value) {\r\n let docElem, win;\r\n let self = this;\r\n let box = {\r\n top: 0,\r\n left: 0\r\n };\r\n let elem = self[0];\r\n let doc = elem && elem.ownerDocument;\r\n\r\n if (arguments.length) {\r\n if (value === undefined) {\r\n return self;\r\n }\r\n // TODO: implement setter\r\n throw new Error('offset setter method is not implemented');\r\n }\r\n\r\n if (!doc) {\r\n return;\r\n }\r\n\r\n docElem = doc.documentElement;\r\n\r\n // TODO: Make sure it's not a disconnected DOM node\r\n\r\n if (elem.getBoundingClientRect != null) {\r\n box = elem.getBoundingClientRect();\r\n }\r\n\r\n win = doc.defaultView || doc.parentWindow;\r\n\r\n return {\r\n top: box.top + (win.pageYOffset || docElem.scrollTop) - (docElem.clientTop || 0),\r\n left: box.left + (win.pageXOffset || docElem.scrollLeft) - (docElem.clientLeft || 0)\r\n };\r\n },\r\n scrollTop(value) {\r\n return scrollTo(this, 'top', value);\r\n },\r\n scrollLeft(value) {\r\n return scrollTo(this, 'left', value);\r\n }\r\n }, (value, key) => {\r\n if (!element.prototype[key]) {\r\n return element.prototype[key] = value;\r\n }\r\n });\r\n }\r\n\r\n}\r\n","const hideClassToken = 'ng-ui-scroll-hide';\r\n\r\nexport default class ElementRoutines {\r\n\r\n static addCSSRules() {\r\n const selector = '.' + hideClassToken;\r\n const rules = 'display: none';\r\n const sheet = document.styleSheets[0];\r\n let index;\r\n try {\r\n index = sheet.cssRules.length;\r\n } catch (err) {\r\n index = 0;\r\n }\r\n if('insertRule' in sheet) {\r\n sheet.insertRule(selector + '{' + rules + '}', index);\r\n }\r\n else if('addRule' in sheet) {\r\n sheet.addRule(selector, rules, index);\r\n }\r\n }\r\n\r\n constructor($injector, $q) {\r\n this.$animate = ($injector.has && $injector.has('$animate')) ? $injector.get('$animate') : null;\r\n this.isAngularVersionLessThen1_3 = angular.version.major === 1 && angular.version.minor < 3;\r\n this.$q = $q;\r\n }\r\n\r\n hideElement(wrapper) {\r\n wrapper.element.addClass(hideClassToken);\r\n }\r\n\r\n showElement(wrapper) {\r\n wrapper.element.removeClass(hideClassToken);\r\n }\r\n\r\n insertElement(newElement, previousElement) {\r\n previousElement.after(newElement);\r\n return [];\r\n }\r\n\r\n removeElement(wrapper) {\r\n wrapper.element.remove();\r\n wrapper.scope.$destroy();\r\n return [];\r\n }\r\n\r\n insertElementAnimated(newElement, previousElement) {\r\n if (!this.$animate) {\r\n return this.insertElement(newElement, previousElement);\r\n }\r\n\r\n if (this.isAngularVersionLessThen1_3) {\r\n const deferred = this.$q.defer();\r\n // no need for parent - previous element is never null\r\n this.$animate.enter(newElement, null, previousElement, () => deferred.resolve());\r\n\r\n return [deferred.promise];\r\n }\r\n\r\n // no need for parent - previous element is never null\r\n return [this.$animate.enter(newElement, null, previousElement)];\r\n }\r\n\r\n removeElementAnimated(wrapper) {\r\n if (!this.$animate) {\r\n return this.removeElement(wrapper);\r\n }\r\n\r\n if (this.isAngularVersionLessThen1_3) {\r\n const deferred = this.$q.defer();\r\n this.$animate.leave(wrapper.element, () => {\r\n wrapper.scope.$destroy();\r\n return deferred.resolve();\r\n });\r\n\r\n return [deferred.promise];\r\n }\r\n\r\n return [(this.$animate.leave(wrapper.element)).then(() => wrapper.scope.$destroy())];\r\n }\r\n}","export const OPERATIONS = {\r\n PREPEND: 'prepend',\r\n APPEND: 'append',\r\n INSERT: 'insert',\r\n REMOVE: 'remove',\r\n NONE: 'none'\r\n};\r\n","import { OPERATIONS } from './utils';\r\n\r\nexport default function ScrollBuffer(elementRoutines, bufferSize, startIndex) {\r\n const buffer = Object.create(Array.prototype);\r\n\r\n angular.extend(buffer, {\r\n size: bufferSize,\r\n\r\n reset(startIndex) {\r\n buffer.remove(0, buffer.length);\r\n buffer.eof = false;\r\n buffer.bof = false;\r\n buffer.first = startIndex;\r\n buffer.next = startIndex;\r\n buffer.minIndex = startIndex;\r\n buffer.maxIndex = startIndex;\r\n buffer.minIndexUser = null;\r\n buffer.maxIndexUser = null;\r\n },\r\n\r\n append(items) {\r\n items.forEach((item) => {\r\n ++buffer.next;\r\n buffer.insert(OPERATIONS.APPEND, item);\r\n });\r\n buffer.maxIndex = buffer.eof ? buffer.next - 1 : Math.max(buffer.next - 1, buffer.maxIndex);\r\n },\r\n\r\n prepend(items, immutableTop) {\r\n items.reverse().forEach((item) => {\r\n if (immutableTop) {\r\n ++buffer.next;\r\n }\r\n else {\r\n --buffer.first;\r\n }\r\n buffer.insert(OPERATIONS.PREPEND, item);\r\n });\r\n buffer.minIndex = buffer.bof ? buffer.minIndex = buffer.first : Math.min(buffer.first, buffer.minIndex);\r\n },\r\n\r\n /**\r\n * inserts wrapped element in the buffer\r\n * the first argument is either operation keyword (see below) or a number for operation 'insert'\r\n * for insert the number is the index for the buffer element the new one have to be inserted after\r\n * operations: 'append', 'prepend', 'insert', 'remove', 'none'\r\n */\r\n insert(operation, item, shiftTop) {\r\n const wrapper = {\r\n item: item\r\n };\r\n\r\n if (operation % 1 === 0) { // it is an insert\r\n wrapper.op = OPERATIONS.INSERT;\r\n buffer.splice(operation, 0, wrapper);\r\n if (shiftTop) {\r\n buffer.first--;\r\n }\r\n else {\r\n buffer.next++;\r\n }\r\n } else {\r\n wrapper.op = operation;\r\n switch (operation) {\r\n case OPERATIONS.APPEND:\r\n buffer.push(wrapper);\r\n break;\r\n case OPERATIONS.PREPEND:\r\n buffer.unshift(wrapper);\r\n break;\r\n }\r\n }\r\n },\r\n\r\n // removes elements from buffer\r\n remove(arg1, arg2) {\r\n if (angular.isNumber(arg1)) {\r\n // removes items from arg1 (including) through arg2 (excluding)\r\n for (let i = arg1; i < arg2; i++) {\r\n elementRoutines.removeElement(buffer[i]);\r\n }\r\n return buffer.splice(arg1, arg2 - arg1);\r\n }\r\n // removes single item (wrapper) from the buffer\r\n buffer.splice(buffer.indexOf(arg1), 1);\r\n if (arg1.shiftTop && buffer.first === this.getAbsMinIndex()) {\r\n this.incrementMinIndex();\r\n }\r\n else {\r\n this.decrementMaxIndex();\r\n }\r\n if (arg1.shiftTop) {\r\n buffer.first++;\r\n }\r\n else {\r\n buffer.next--;\r\n }\r\n if (!buffer.length) {\r\n buffer.minIndex = Math.min(buffer.maxIndex, buffer.minIndex);\r\n }\r\n\r\n return elementRoutines.removeElementAnimated(arg1);\r\n },\r\n\r\n incrementMinIndex() {\r\n if (buffer.minIndexUser !== null) {\r\n if (buffer.minIndex > buffer.minIndexUser) {\r\n buffer.minIndexUser++;\r\n return;\r\n }\r\n if (buffer.minIndex === buffer.minIndexUser) {\r\n buffer.minIndexUser++;\r\n }\r\n }\r\n buffer.minIndex++;\r\n },\r\n\r\n decrementMaxIndex() {\r\n if (buffer.maxIndexUser !== null && buffer.maxIndex <= buffer.maxIndexUser) {\r\n buffer.maxIndexUser--;\r\n }\r\n buffer.maxIndex--;\r\n },\r\n\r\n getAbsMinIndex() {\r\n if (buffer.minIndexUser !== null) {\r\n return Math.min(buffer.minIndexUser, buffer.minIndex);\r\n }\r\n return buffer.minIndex;\r\n },\r\n\r\n getAbsMaxIndex() {\r\n if (buffer.maxIndexUser !== null) {\r\n return Math.max(buffer.maxIndexUser, buffer.maxIndex);\r\n }\r\n return buffer.maxIndex;\r\n },\r\n\r\n effectiveHeight(elements) {\r\n if (!elements.length) {\r\n return 0;\r\n }\r\n let top = Number.MAX_VALUE;\r\n let bottom = Number.NEGATIVE_INFINITY;\r\n elements.forEach((wrapper) => {\r\n if (wrapper.element[0].offsetParent) {\r\n // element style is not display:none\r\n top = Math.min(top, wrapper.element.offset().top);\r\n bottom = Math.max(bottom, wrapper.element.offset().top + wrapper.element.outerHeight(true));\r\n }\r\n });\r\n return Math.max(0, bottom - top);\r\n },\r\n\r\n getItems() {\r\n return buffer.filter(item => item.op === OPERATIONS.NONE);\r\n },\r\n\r\n getFirstItem() {\r\n const list = buffer.getItems();\r\n if (!list.length) {\r\n return null;\r\n }\r\n return list[0].item;\r\n },\r\n\r\n getLastItem() {\r\n const list = buffer.getItems();\r\n if (!list.length) {\r\n return null;\r\n }\r\n return list[list.length - 1].item;\r\n }\r\n\r\n });\r\n\r\n buffer.reset(startIndex);\r\n\r\n return buffer;\r\n}\r\n","// Can't just extend the Array, due to Babel does not support built-in classes extending\r\n// This solution was taken from https://stackoverflow.com/questions/46897414/es6-class-extends-array-workaround-for-es5-babel-transpile\r\nclass CacheProto {\r\n add(item) {\r\n for (let i = this.length - 1; i >= 0; i--) {\r\n if (this[i].index === item.scope.$index) {\r\n this[i].height = item.element.outerHeight();\r\n return;\r\n }\r\n }\r\n this.push({\r\n index: item.scope.$index,\r\n height: item.element.outerHeight()\r\n });\r\n this.sort((a, b) => ((a.index < b.index) ? -1 : ((a.index > b.index) ? 1 : 0)));\r\n }\r\n\r\n remove(argument, _shiftTop) {\r\n const index = argument % 1 === 0 ? argument : argument.scope.$index;\r\n const shiftTop = argument % 1 === 0 ? _shiftTop : argument.shiftTop;\r\n for (let i = this.length - 1; i >= 0; i--) {\r\n if (this[i].index === index) {\r\n this.splice(i, 1);\r\n break;\r\n }\r\n }\r\n if (!shiftTop) {\r\n for (let i = this.length - 1; i >= 0; i--) {\r\n if (this[i].index > index) {\r\n this[i].index--;\r\n }\r\n }\r\n }\r\n }\r\n\r\n clear() {\r\n this.length = 0;\r\n }\r\n}\r\n\r\nfunction Cache() {\r\n const instance = [];\r\n instance.push.apply(instance, arguments);\r\n Object.setPrototypeOf(instance, Cache.prototype);\r\n return instance;\r\n}\r\nCache.prototype = Object.create(Array.prototype);\r\nObject.getOwnPropertyNames(CacheProto.prototype).forEach(methodName =>\r\n Cache.prototype[methodName] = CacheProto.prototype[methodName]\r\n);\r\n\r\nfunction generateElement(template) {\r\n if (template.nodeType !== Node.ELEMENT_NODE) {\r\n throw new Error('ui-scroll directive requires an Element node for templating the view');\r\n }\r\n let element;\r\n switch (template.tagName.toLowerCase()) {\r\n case 'dl':\r\n throw new Error(`ui-scroll directive does not support <${template.tagName}> as a repeating tag: ${template.outerHTML}`);\r\n case 'tr':\r\n let table = angular.element('
    ');\r\n element = table.find('tr');\r\n break;\r\n case 'li':\r\n element = angular.element('
  • ');\r\n break;\r\n default:\r\n element = angular.element('
    ');\r\n }\r\n return element;\r\n}\r\n\r\nclass Padding {\r\n constructor(template) {\r\n this.element = generateElement(template);\r\n this.cache = new Cache();\r\n }\r\n\r\n height() {\r\n return this.element.height.apply(this.element, arguments);\r\n }\r\n}\r\n\r\nexport default Padding;","import Padding from './padding';\r\n\r\nexport default function Viewport(elementRoutines, buffer, element, viewportController, $rootScope, padding) {\r\n let topPadding = null;\r\n let bottomPadding = null;\r\n const viewport = viewportController && viewportController.viewport ? viewportController.viewport : angular.element(window);\r\n const container = viewportController && viewportController.container ? viewportController.container : undefined;\r\n const scope = viewportController && viewportController.scope ? viewportController.scope : $rootScope;\r\n\r\n viewport.css({\r\n 'overflow-anchor': 'none',\r\n 'overflow-y': 'auto',\r\n 'display': 'block'\r\n });\r\n\r\n function bufferPadding() {\r\n return viewport.outerHeight() * padding; // some extra space to initiate preload\r\n }\r\n\r\n angular.extend(viewport, {\r\n getScope() {\r\n return scope;\r\n },\r\n\r\n createPaddingElements(template) {\r\n topPadding = new Padding(template);\r\n bottomPadding = new Padding(template);\r\n element.before(topPadding.element);\r\n element.after(bottomPadding.element);\r\n topPadding.height(0);\r\n bottomPadding.height(0);\r\n },\r\n\r\n applyContainerStyle() {\r\n if (!container) {\r\n return true;\r\n }\r\n if (container !== viewport) {\r\n viewport.css('height', window.getComputedStyle(container[0]).height);\r\n }\r\n return viewport.height() > 0;\r\n },\r\n\r\n bottomDataPos() {\r\n let scrollHeight = viewport[0].scrollHeight;\r\n scrollHeight = scrollHeight != null ? scrollHeight : viewport[0].document.documentElement.scrollHeight;\r\n return scrollHeight - bottomPadding.height();\r\n },\r\n\r\n topDataPos() {\r\n return topPadding.height();\r\n },\r\n\r\n bottomVisiblePos() {\r\n return viewport.scrollTop() + viewport.outerHeight();\r\n },\r\n\r\n topVisiblePos() {\r\n return viewport.scrollTop();\r\n },\r\n\r\n insertElement(e, sibling) {\r\n return elementRoutines.insertElement(e, sibling || topPadding.element);\r\n },\r\n\r\n insertElementAnimated(e, sibling) {\r\n return elementRoutines.insertElementAnimated(e, sibling || topPadding.element);\r\n },\r\n\r\n shouldLoadBottom() {\r\n return !buffer.eof && viewport.bottomDataPos() < viewport.bottomVisiblePos() + bufferPadding();\r\n },\r\n\r\n clipBottom() {\r\n // clip the invisible items off the bottom\r\n let overage = 0;\r\n let overageHeight = 0;\r\n let itemHeight = 0;\r\n let emptySpaceHeight = viewport.bottomDataPos() - viewport.bottomVisiblePos() - bufferPadding();\r\n\r\n for (let i = buffer.length - 1; i >= 0; i--) {\r\n itemHeight = buffer[i].element.outerHeight(true);\r\n if (overageHeight + itemHeight > emptySpaceHeight) {\r\n break;\r\n }\r\n bottomPadding.cache.add(buffer[i]);\r\n overageHeight += itemHeight;\r\n overage++;\r\n }\r\n\r\n if (overage > 0) {\r\n buffer.eof = false;\r\n buffer.remove(buffer.length - overage, buffer.length);\r\n buffer.next -= overage;\r\n viewport.adjustPaddings();\r\n }\r\n },\r\n\r\n shouldLoadTop() {\r\n return !buffer.bof && (viewport.topDataPos() > viewport.topVisiblePos() - bufferPadding());\r\n },\r\n\r\n clipTop() {\r\n // clip the invisible items off the top\r\n let overage = 0;\r\n let overageHeight = 0;\r\n let itemHeight = 0;\r\n let emptySpaceHeight = viewport.topVisiblePos() - viewport.topDataPos() - bufferPadding();\r\n\r\n for (let i = 0; i < buffer.length; i++) {\r\n itemHeight = buffer[i].element.outerHeight(true);\r\n if (overageHeight + itemHeight > emptySpaceHeight) {\r\n break;\r\n }\r\n topPadding.cache.add(buffer[i]);\r\n overageHeight += itemHeight;\r\n overage++;\r\n }\r\n\r\n if (overage > 0) {\r\n // we need to adjust top padding element before items are removed from top\r\n // to avoid strange behaviour of scroll bar during remove top items when we are at the very bottom\r\n topPadding.height(topPadding.height() + overageHeight);\r\n buffer.bof = false;\r\n buffer.remove(0, overage);\r\n buffer.first += overage;\r\n }\r\n },\r\n\r\n adjustPaddings() {\r\n if (!buffer.length) {\r\n return;\r\n }\r\n\r\n // precise heights calculation based on items that are in buffer or that were in buffer once\r\n const visibleItemsHeight = buffer.reduce((summ, item) => summ + item.element.outerHeight(true), 0);\r\n\r\n let topPaddingHeight = 0, topCount = 0;\r\n topPadding.cache.forEach(item => {\r\n if (item.index < buffer.first) {\r\n topPaddingHeight += item.height;\r\n topCount++;\r\n }\r\n });\r\n\r\n let bottomPaddingHeight = 0, bottomCount = 0;\r\n bottomPadding.cache.forEach(item => {\r\n if (item.index >= buffer.next) {\r\n bottomPaddingHeight += item.height;\r\n bottomCount++;\r\n }\r\n });\r\n\r\n const totalHeight = visibleItemsHeight + topPaddingHeight + bottomPaddingHeight;\r\n const averageItemHeight = totalHeight / (topCount + bottomCount + buffer.length);\r\n\r\n // average heights calculation, items that have never been reached\r\n let adjustTopPadding = buffer.minIndexUser !== null && buffer.minIndex > buffer.minIndexUser;\r\n let adjustBottomPadding = buffer.maxIndexUser !== null && buffer.maxIndex < buffer.maxIndexUser;\r\n let topPaddingHeightAdd = adjustTopPadding ? (buffer.minIndex - buffer.minIndexUser) * averageItemHeight : 0;\r\n let bottomPaddingHeightAdd = adjustBottomPadding ? (buffer.maxIndexUser - buffer.maxIndex) * averageItemHeight : 0;\r\n\r\n // paddings combine adjustment\r\n topPadding.height(topPaddingHeight + topPaddingHeightAdd);\r\n bottomPadding.height(bottomPaddingHeight + bottomPaddingHeightAdd);\r\n },\r\n\r\n onAfterMinIndexSet(topPaddingHeightOld) {\r\n // additional scrollTop adjustment in case of datasource.minIndex external set\r\n if (buffer.minIndexUser !== null && buffer.minIndex > buffer.minIndexUser) {\r\n let diff = topPadding.height() - topPaddingHeightOld;\r\n viewport.scrollTop(viewport.scrollTop() + diff);\r\n while((diff -= viewport.scrollTop()) > 0) {\r\n bottomPadding.height(bottomPadding.height() + diff);\r\n viewport.scrollTop(viewport.scrollTop() + diff);\r\n }\r\n }\r\n },\r\n\r\n onAfterPrepend(updates) {\r\n if (!updates.prepended.length) {\r\n return;\r\n }\r\n const height = buffer.effectiveHeight(updates.prepended);\r\n const paddingHeight = topPadding.height() - height;\r\n if (paddingHeight >= 0) {\r\n topPadding.height(paddingHeight);\r\n return;\r\n }\r\n const position = viewport.scrollTop();\r\n const newPosition = position - paddingHeight;\r\n viewport.synthetic = { previous: position, next: newPosition };\r\n topPadding.height(0);\r\n viewport.scrollTop(newPosition);\r\n },\r\n\r\n resetTopPadding() {\r\n topPadding.height(0);\r\n topPadding.cache.clear();\r\n },\r\n\r\n resetBottomPadding() {\r\n bottomPadding.height(0);\r\n bottomPadding.cache.clear();\r\n },\r\n\r\n removeCacheItem(item, shiftTop) {\r\n topPadding.cache.remove(item, shiftTop);\r\n bottomPadding.cache.remove(item, shiftTop);\r\n },\r\n\r\n removeItem(item) {\r\n this.removeCacheItem(item);\r\n return buffer.remove(item);\r\n }\r\n });\r\n\r\n return viewport;\r\n}\r\n","import { OPERATIONS } from './utils';\r\n\r\nclass Adapter {\r\n\r\n constructor($scope, $parse, $attr, viewport, buffer, doAdjust, reload) {\r\n this.$parse = $parse;\r\n this.$attr = $attr;\r\n this.viewport = viewport;\r\n this.buffer = buffer;\r\n\r\n this.doAdjust = doAdjust;\r\n this.reload = reload;\r\n\r\n this.isLoading = false;\r\n this.disabled = false;\r\n\r\n const viewportScope = viewport.getScope();\r\n this.startScope = viewportScope.$parent ? viewportScope : $scope;\r\n\r\n this.publicContext = {};\r\n this.assignAdapter($attr.adapter);\r\n this.generatePublicContext();\r\n }\r\n\r\n assignAdapter(adapterAttr) {\r\n if (!adapterAttr || !(adapterAttr = adapterAttr.replace(/^\\s+|\\s+$/gm, ''))) {\r\n return;\r\n }\r\n let adapterOnScope;\r\n\r\n try {\r\n this.$parse(adapterAttr).assign(this.startScope, {});\r\n adapterOnScope = this.$parse(adapterAttr)(this.startScope);\r\n }\r\n catch (error) {\r\n error.message = `Angular ui-scroll Adapter assignment exception.\\n` +\r\n `Can't parse \"${adapterAttr}\" expression.\\n` +\r\n error.message;\r\n throw error;\r\n }\r\n\r\n angular.extend(adapterOnScope, this.publicContext);\r\n this.publicContext = adapterOnScope;\r\n }\r\n\r\n generatePublicContext() {\r\n // these methods will be accessible out of ui-scroll via user defined adapter\r\n const publicMethods = ['reload', 'applyUpdates', 'append', 'prepend', 'isBOF', 'isEOF', 'isEmpty'];\r\n for (let i = publicMethods.length - 1; i >= 0; i--) {\r\n this.publicContext[publicMethods[i]] = this[publicMethods[i]].bind(this);\r\n }\r\n\r\n // these read-only props will be accessible out of ui-scroll via user defined adapter\r\n const publicProps = ['isLoading', 'topVisible', 'topVisibleElement', 'topVisibleScope', 'bottomVisible', 'bottomVisibleElement', 'bottomVisibleScope'];\r\n for (let i = publicProps.length - 1; i >= 0; i--) {\r\n let property, attr = this.$attr[publicProps[i]];\r\n Object.defineProperty(this, publicProps[i], {\r\n get: () => property,\r\n set: (value) => {\r\n property = value;\r\n this.publicContext[publicProps[i]] = value;\r\n if (attr) {\r\n this.$parse(attr).assign(this.startScope, value);\r\n }\r\n }\r\n });\r\n }\r\n\r\n // read-only immediately calculated public properties\r\n const publicPropsImmediate = ['bufferFirst', 'bufferLast', 'bufferLength'];\r\n for (let i = publicPropsImmediate.length - 1; i >= 0; i--) {\r\n Object.defineProperty(this.publicContext, publicPropsImmediate[i], {\r\n get: () => this[publicPropsImmediate[i]]\r\n });\r\n }\r\n\r\n // non-read-only public property\r\n Object.defineProperty(this.publicContext, 'disabled', {\r\n get: () => this.disabled,\r\n set: (value) => (!(this.disabled = value)) ? this.doAdjust() : null\r\n });\r\n }\r\n\r\n loading(value) {\r\n this.isLoading = value;\r\n }\r\n\r\n isBOF() {\r\n return this.buffer.bof;\r\n }\r\n\r\n isEOF() {\r\n return this.buffer.eof;\r\n }\r\n\r\n isEmpty() {\r\n return !this.buffer.length;\r\n }\r\n\r\n get bufferLength() {\r\n return this.buffer.getItems().length;\r\n }\r\n\r\n get bufferFirst() {\r\n return this.buffer.getFirstItem();\r\n }\r\n\r\n get bufferLast() {\r\n return this.buffer.getLastItem();\r\n }\r\n\r\n append(newItems) {\r\n this.buffer.append(newItems);\r\n this.doAdjust();\r\n this.viewport.clipTop();\r\n this.viewport.clipBottom();\r\n }\r\n\r\n prepend(newItems, options = {}) {\r\n this.buffer.prepend(newItems, options.immutableTop);\r\n this.doAdjust();\r\n this.viewport.clipTop();\r\n this.viewport.clipBottom();\r\n }\r\n\r\n applyUpdates(arg1, arg2, arg3) {\r\n if (typeof arg1 === 'function') {\r\n this.applyUpdatesFunc(arg1, arg2);\r\n } else {\r\n this.applyUpdatesIndex(arg1, arg2, arg3);\r\n }\r\n this.doAdjust();\r\n }\r\n\r\n applyUpdatesFunc(cb, options = {}) {\r\n this.buffer.slice(0).forEach((wrapper) => {\r\n // we need to do it on the buffer clone, because buffer content\r\n // may change as we iterate through\r\n this.applyUpdate(wrapper, cb(wrapper.item, wrapper.scope, wrapper.element), options);\r\n });\r\n }\r\n\r\n applyUpdatesIndex(index, newItems, options = {}) {\r\n if (index % 1 !== 0) {\r\n throw new Error('applyUpdates - ' + index + ' is not a valid index (should be an integer)');\r\n }\r\n const _index = index - this.buffer.first;\r\n\r\n // apply updates only within buffer\r\n if (_index >= 0 && _index < this.buffer.length) {\r\n this.applyUpdate(this.buffer[_index], newItems, options);\r\n }\r\n // out-of-buffer case: deletion may affect Paddings\r\n else if(index >= this.buffer.getAbsMinIndex() && index <= this.buffer.getAbsMaxIndex()) {\r\n if(angular.isArray(newItems) && !newItems.length) {\r\n this.viewport.removeCacheItem(index, !options.immutableTop && index === this.buffer.minIndex);\r\n if (!options.immutableTop && index === this.buffer.getAbsMinIndex()) {\r\n this.buffer.incrementMinIndex();\r\n }\r\n else {\r\n this.buffer.decrementMaxIndex();\r\n }\r\n }\r\n }\r\n }\r\n\r\n applyUpdate(wrapper, newItems, options = {}) {\r\n if (!angular.isArray(newItems)) {\r\n return;\r\n }\r\n let position = this.buffer.indexOf(wrapper);\r\n if (!newItems.reverse().some(newItem => newItem === wrapper.item)) {\r\n wrapper.op = OPERATIONS.REMOVE;\r\n // try to catch \"first\" edge case on remove\r\n if (!options.immutableTop && !newItems.length) {\r\n // this is the first item, or the previous one's part of the \"shift-top\" group\r\n if (\r\n (position === 0 && this.buffer.bof) ||\r\n (position !== 0 && this.buffer[position - 1].shiftTop)\r\n ) {\r\n wrapper.shiftTop = true;\r\n }\r\n }\r\n }\r\n newItems.forEach((newItem) => {\r\n if (newItem === wrapper.item) {\r\n position--;\r\n } else {\r\n // 3 parameter (shiftTop) is to catch \"first\" edge case on insert\r\n this.buffer.insert(position + 1, newItem, !options.immutableTop && position === -1);\r\n }\r\n });\r\n }\r\n\r\n calculateProperties() {\r\n let rowTop = null, topHeight = 0;\r\n let topDone = false, bottomDone = false;\r\n const length = this.buffer.length;\r\n\r\n for (let i = 0; i < length; i++) {\r\n const item = this.buffer[i];\r\n const itemTop = item.element.offset().top;\r\n\r\n if (rowTop !== itemTop) { // a new row condition\r\n const itemHeight = item.element.outerHeight(true);\r\n const top = this.viewport.topDataPos() + topHeight + itemHeight;\r\n\r\n if (!topDone && top > this.viewport.topVisiblePos()) {\r\n topDone = true;\r\n this['topVisible'] = item.item;\r\n this['topVisibleElement'] = item.element;\r\n this['topVisibleScope'] = item.scope;\r\n }\r\n if (!bottomDone && (top >= this.viewport.bottomVisiblePos() || (i === length - 1 && this.isEOF()))) {\r\n bottomDone = true;\r\n this['bottomVisible'] = item.item;\r\n this['bottomVisibleElement'] = item.element;\r\n this['bottomVisibleScope'] = item.scope;\r\n }\r\n topHeight += itemHeight;\r\n }\r\n rowTop = itemTop;\r\n\r\n if (topDone && bottomDone) {\r\n break;\r\n }\r\n }\r\n }\r\n\r\n}\r\n\r\nexport default Adapter;\r\n","import JQLiteExtras from './modules/jqLiteExtras';\r\nimport ElementRoutines from './modules/elementRoutines.js';\r\nimport ScrollBuffer from './modules/buffer.js';\r\nimport Viewport from './modules/viewport.js';\r\nimport Adapter from './modules/adapter.js';\r\nimport { OPERATIONS } from './modules/utils';\r\n\r\nangular.module('ui.scroll', [])\r\n\r\n .constant('JQLiteExtras', JQLiteExtras)\r\n .run(['JQLiteExtras', (JQLiteExtras) => {\r\n const elt = angular.element;\r\n !(window.jQuery && elt.fn && elt.fn.jquery) ? (new JQLiteExtras()).registerFor(elt) : null;\r\n ElementRoutines.addCSSRules();\r\n }])\r\n\r\n .directive('uiScrollViewport', function () {\r\n return {\r\n restrict: 'A',\r\n controller: [\r\n '$scope',\r\n '$element',\r\n function (scope, element) {\r\n this.container = element;\r\n this.viewport = element;\r\n this.scope = scope;\r\n\r\n angular.forEach(element.children(), child => {\r\n if (child.tagName.toLowerCase() === 'tbody') {\r\n this.viewport = angular.element(child);\r\n }\r\n });\r\n\r\n return this;\r\n }\r\n ]\r\n };\r\n })\r\n\r\n .directive('uiScroll', [\r\n '$log',\r\n '$injector',\r\n '$rootScope',\r\n '$timeout',\r\n '$interval',\r\n '$q',\r\n '$parse',\r\n function (console, $injector, $rootScope, $timeout, $interval, $q, $parse) {\r\n\r\n return {\r\n require: ['?^uiScrollViewport'],\r\n restrict: 'A',\r\n transclude: 'element',\r\n priority: 1000,\r\n terminal: true,\r\n link: link\r\n };\r\n\r\n function link($scope, element, $attr, controllers, linker) {\r\n const match = $attr.uiScroll.match(/^\\s*(\\w+)\\s+in\\s+([(\\w|\\$)\\.]+)\\s*$/);\r\n if (!match) {\r\n throw new Error('Expected uiScroll in form of \\'_item_ in _datasource_\\' but got \\'' + $attr.uiScroll + '\\'');\r\n }\r\n\r\n function parseNumber(value, defaultValue, isFloat) {\r\n if (!isFloat) {\r\n value = value === null ? defaultValue : Math.floor(value);\r\n }\r\n return isNaN(value) ? defaultValue : value;\r\n }\r\n\r\n function parseNumericAttr(value, defaultValue, isFloat) {\r\n const result = $parse(value)($scope);\r\n return parseNumber(result, defaultValue, isFloat);\r\n }\r\n\r\n function parseBooleanAttr(value, defaultValue) {\r\n const result = $parse(value)($scope);\r\n return typeof result === 'boolean' ? result : defaultValue;\r\n }\r\n\r\n const BUFFER_MIN = 3;\r\n const BUFFER_DEFAULT = 10;\r\n const PADDING_MIN = 0.3;\r\n const PADDING_DEFAULT = 0.5;\r\n const HANDLE_INERTIA_DEFAULT = true;\r\n const START_INDEX_DEFAULT = 1;\r\n const MAX_VIEWPORT_DELAY = 500;\r\n const VIEWPORT_POLLING_INTERVAL = 50;\r\n\r\n let datasource = null;\r\n const itemName = match[1];\r\n const datasourceName = match[2];\r\n const viewportController = controllers[0];\r\n const bufferSize = Math.max(BUFFER_MIN, parseNumericAttr($attr.bufferSize, BUFFER_DEFAULT));\r\n const padding = Math.max(PADDING_MIN, parseNumericAttr($attr.padding, PADDING_DEFAULT, true));\r\n const handleInertia = parseBooleanAttr($attr.handleInertia, HANDLE_INERTIA_DEFAULT);\r\n let startIndex = parseNumericAttr($attr.startIndex, START_INDEX_DEFAULT);\r\n let ridActual = 0; // current data revision id\r\n let pending = [];\r\n\r\n const elementRoutines = new ElementRoutines($injector, $q);\r\n const buffer = new ScrollBuffer(elementRoutines, bufferSize, startIndex);\r\n const viewport = new Viewport(elementRoutines, buffer, element, viewportController, $rootScope, padding);\r\n const adapter = new Adapter($scope, $parse, $attr, viewport, buffer, doAdjust, reload);\r\n\r\n if (viewportController) {\r\n viewportController.adapter = adapter;\r\n }\r\n\r\n const isDatasourceValid = () =>\r\n Object.prototype.toString.call(datasource) === '[object Object]' && typeof datasource.get === 'function';\r\n\r\n datasource = $parse(datasourceName)($scope); // try to get datasource on scope\r\n if (!isDatasourceValid()) {\r\n datasource = $injector.get(datasourceName); // try to inject datasource as service\r\n if (!isDatasourceValid()) {\r\n throw new Error(datasourceName + ' is not a valid datasource');\r\n }\r\n }\r\n\r\n let onRenderHandlers = [];\r\n function onRenderHandlersRunner() {\r\n onRenderHandlers.forEach(handler => handler.run());\r\n onRenderHandlers = [];\r\n }\r\n function persistDatasourceIndex(datasource, propName) {\r\n let getter;\r\n // need to postpone min/maxIndexUser processing if the view is empty\r\n if(angular.isNumber(datasource[propName])) {\r\n getter = datasource[propName];\r\n if(angular.isNumber(getter)) {\r\n onRenderHandlers = onRenderHandlers.filter(handler => handler.id !== propName);\r\n onRenderHandlers.push({\r\n id: propName,\r\n run: () => datasource[propName] = getter\r\n });\r\n }\r\n }\r\n }\r\n\r\n function defineDatasourceIndex(datasource, propName, propUserName) {\r\n const descriptor = Object.getOwnPropertyDescriptor(datasource, propName);\r\n if (descriptor && (descriptor.set || descriptor.get)) {\r\n return;\r\n }\r\n let getter;\r\n persistDatasourceIndex(datasource, propName);\r\n Object.defineProperty(datasource, propName, {\r\n set: (value) => {\r\n getter = value;\r\n if(pending.length && !buffer.length) {\r\n persistDatasourceIndex(datasource, propName);\r\n return;\r\n }\r\n buffer[propUserName] = value;\r\n const topPaddingHeightOld = viewport.topDataPos();\r\n viewport.adjustPaddings();\r\n if (propName === 'minIndex') {\r\n viewport.onAfterMinIndexSet(topPaddingHeightOld);\r\n }\r\n },\r\n get: () => getter\r\n });\r\n }\r\n\r\n defineDatasourceIndex(datasource, 'minIndex', 'minIndexUser');\r\n defineDatasourceIndex(datasource, 'maxIndex', 'maxIndexUser');\r\n\r\n const fetchNext = (datasource.get.length !== 2) ?\r\n (success) => datasource.get(buffer.next, bufferSize, success) :\r\n (success) => {\r\n datasource.get({\r\n index: buffer.next,\r\n append: buffer.length ? buffer[buffer.length - 1].item : void 0,\r\n count: bufferSize\r\n }, success);\r\n };\r\n\r\n const fetchPrevious = (datasource.get.length !== 2) ?\r\n (success) => datasource.get(buffer.first - bufferSize, bufferSize, success) :\r\n (success) => {\r\n datasource.get({\r\n index: buffer.first - bufferSize,\r\n prepend: buffer.length ? buffer[0].item : void 0,\r\n count: bufferSize\r\n }, success);\r\n };\r\n\r\n const initialize = () => {\r\n let tryCount = 0;\r\n if(!viewport.applyContainerStyle()) {\r\n const timer = $interval(() => {\r\n tryCount++;\r\n if(viewport.applyContainerStyle()) {\r\n $interval.cancel(timer);\r\n doAdjust();\r\n }\r\n if(tryCount * VIEWPORT_POLLING_INTERVAL >= MAX_VIEWPORT_DELAY) {\r\n $interval.cancel(timer);\r\n throw Error(`ui-scroll directive requires a viewport with non-zero height in ${MAX_VIEWPORT_DELAY}ms`);\r\n }\r\n }, VIEWPORT_POLLING_INTERVAL);\r\n }\r\n else {\r\n doAdjust();\r\n }\r\n };\r\n\r\n /**\r\n * Build padding elements\r\n *\r\n * Calling linker is the only way I found to get access to the tag name of the template\r\n * to prevent the directive scope from pollution a new scope is created and destroyed\r\n * right after the builder creation is completed\r\n */\r\n linker((clone, scope) => {\r\n viewport.createPaddingElements(clone[0]);\r\n // we do not include the clone in the DOM. It means that the nested directives will not\r\n // be able to reach the parent directives, but in this case it is intentional because we\r\n // created the clone to access the template tag name\r\n scope.$destroy();\r\n clone.remove();\r\n });\r\n\r\n $scope.$on('$destroy', () => {\r\n unbindEvents();\r\n viewport.off('mousewheel', wheelHandler);\r\n });\r\n\r\n viewport.on('mousewheel', wheelHandler);\r\n\r\n initialize();\r\n\r\n /* Private function definitions */\r\n\r\n function isInvalid(rid) {\r\n return (rid && rid !== ridActual) || $scope.$$destroyed;\r\n }\r\n\r\n function bindEvents() {\r\n viewport.on('resize', resizeAndScrollHandler);\r\n viewport.on('scroll', resizeAndScrollHandler);\r\n }\r\n\r\n function unbindEvents() {\r\n viewport.off('resize', resizeAndScrollHandler);\r\n viewport.off('scroll', resizeAndScrollHandler);\r\n }\r\n\r\n function reload() {\r\n unbindEvents();\r\n viewport.resetTopPadding();\r\n viewport.resetBottomPadding();\r\n if (arguments.length) {\r\n startIndex = parseNumber(arguments[0], START_INDEX_DEFAULT, false);\r\n }\r\n buffer.reset(startIndex);\r\n persistDatasourceIndex(datasource, 'minIndex');\r\n persistDatasourceIndex(datasource, 'maxIndex');\r\n doAdjust();\r\n }\r\n\r\n function isElementVisible(wrapper) {\r\n return wrapper.element.height() && wrapper.element[0].offsetParent;\r\n }\r\n\r\n function visibilityWatcher(wrapper) {\r\n if (isElementVisible(wrapper)) {\r\n buffer.forEach((item) => {\r\n if (typeof item.unregisterVisibilityWatcher === 'function') {\r\n item.unregisterVisibilityWatcher();\r\n delete item.unregisterVisibilityWatcher;\r\n }\r\n });\r\n if (!pending.length) {\r\n $timeout(() => doAdjust());\r\n }\r\n }\r\n }\r\n\r\n function insertWrapperContent(wrapper, insertAfter) {\r\n createElement(wrapper, insertAfter, viewport.insertElement);\r\n if (!isElementVisible(wrapper)) {\r\n wrapper.unregisterVisibilityWatcher = wrapper.scope.$watch(() => visibilityWatcher(wrapper));\r\n }\r\n elementRoutines.hideElement(wrapper); // hide inserted elements before data binding\r\n }\r\n\r\n function createElement(wrapper, insertAfter, insertElement) {\r\n let promises = null;\r\n const sibling = (insertAfter > 0) ? buffer[insertAfter - 1].element : undefined;\r\n linker((clone, scope) => {\r\n promises = insertElement(clone, sibling);\r\n wrapper.element = clone;\r\n wrapper.scope = scope;\r\n scope[itemName] = wrapper.item;\r\n });\r\n // ui-scroll-grid apply\r\n if (adapter.transform) {\r\n const tdInitializer = wrapper.scope.uiScrollTdInitializer;\r\n if (tdInitializer && tdInitializer.linking) {\r\n adapter.transform(wrapper.scope, wrapper.element);\r\n } else {\r\n wrapper.scope.uiScrollTdInitializer = {\r\n onLink: () => adapter.transform(wrapper.scope, wrapper.element),\r\n scope: wrapper.scope\r\n };\r\n }\r\n }\r\n return promises;\r\n }\r\n\r\n function updateDOM() {\r\n let promises = [];\r\n const toBePrepended = [];\r\n const toBeRemoved = [];\r\n const inserted = [];\r\n\r\n buffer.forEach((wrapper, i) => {\r\n switch (wrapper.op) {\r\n case OPERATIONS.PREPEND:\r\n toBePrepended.unshift(wrapper);\r\n break;\r\n case OPERATIONS.APPEND:\r\n insertWrapperContent(wrapper, i);\r\n wrapper.op = OPERATIONS.NONE;\r\n inserted.push(wrapper);\r\n break;\r\n case OPERATIONS.INSERT:\r\n promises = promises.concat(createElement(wrapper, i, viewport.insertElementAnimated));\r\n wrapper.op = OPERATIONS.NONE;\r\n inserted.push(wrapper);\r\n break;\r\n case OPERATIONS.REMOVE:\r\n toBeRemoved.push(wrapper);\r\n }\r\n });\r\n\r\n toBeRemoved.forEach((wrapper) => promises = promises.concat(viewport.removeItem(wrapper)));\r\n\r\n if (toBePrepended.length)\r\n toBePrepended.forEach((wrapper) => {\r\n insertWrapperContent(wrapper);\r\n wrapper.op = OPERATIONS.NONE;\r\n });\r\n\r\n buffer.forEach((item, i) => item.scope.$index = buffer.first + i);\r\n\r\n return {\r\n prepended: toBePrepended,\r\n removed: toBeRemoved,\r\n inserted: inserted,\r\n animated: promises\r\n };\r\n\r\n }\r\n\r\n function updatePaddings(rid, updates) {\r\n // schedule another doAdjust after animation completion\r\n if (updates.animated.length) {\r\n $q.all(updates.animated).then(() => {\r\n viewport.adjustPaddings();\r\n doAdjust(rid);\r\n });\r\n } else {\r\n viewport.adjustPaddings();\r\n }\r\n }\r\n\r\n function enqueueFetch(rid, updates) {\r\n if (viewport.shouldLoadBottom()) {\r\n if (!updates || buffer.effectiveHeight(updates.inserted) > 0) {\r\n // this means that at least one item appended in the last batch has height > 0\r\n if (pending.push(true) === 1) {\r\n adapter.loading(true);\r\n fetch(rid);\r\n }\r\n }\r\n } else if (viewport.shouldLoadTop()) {\r\n if ((!updates || buffer.effectiveHeight(updates.prepended) > 0) || pending[0]) {\r\n // this means that at least one item appended in the last batch has height > 0\r\n // pending[0] = true means that previous fetch was appending. We need to force at least one prepend\r\n // BTW there will always be at least 1 element in the pending array because bottom is fetched first\r\n if (pending.push(false) === 1) {\r\n adapter.loading(true);\r\n fetch(rid);\r\n }\r\n }\r\n }\r\n }\r\n\r\n function processUpdates() {\r\n const updates = updateDOM();\r\n\r\n // We need the item bindings to be processed before we can do adjustments\r\n !$scope.$$phase && !$rootScope.$$phase && $scope.$digest();\r\n\r\n updates.inserted.forEach(w => elementRoutines.showElement(w));\r\n updates.prepended.forEach(w => elementRoutines.showElement(w));\r\n return updates;\r\n }\r\n\r\n function doAdjust(rid) {\r\n if (!rid) { // dismiss pending requests\r\n pending = [];\r\n rid = ++ridActual;\r\n }\r\n\r\n const updates = processUpdates();\r\n\r\n if (isInvalid(rid)) {\r\n return;\r\n }\r\n\r\n updatePaddings(rid, updates);\r\n enqueueFetch(rid);\r\n\r\n if (!pending.length) {\r\n adapter.calculateProperties();\r\n }\r\n }\r\n\r\n function doAdjustAfterFetch(rid) {\r\n const updates = processUpdates();\r\n\r\n viewport.onAfterPrepend(updates);\r\n\r\n if (isInvalid(rid)) {\r\n return;\r\n }\r\n\r\n updatePaddings(rid, updates);\r\n onRenderHandlersRunner();\r\n enqueueFetch(rid, updates);\r\n pending.shift();\r\n\r\n if (pending.length)\r\n fetch(rid);\r\n else {\r\n adapter.loading(false);\r\n bindEvents();\r\n adapter.calculateProperties();\r\n }\r\n }\r\n\r\n function fetch(rid) {\r\n if (pending[0]) {// scrolling down\r\n if (buffer.length && !viewport.shouldLoadBottom()) {\r\n doAdjustAfterFetch(rid);\r\n } else {\r\n fetchNext((result) => {\r\n if (isInvalid(rid)) {\r\n return;\r\n }\r\n\r\n if (result.length < bufferSize) {\r\n buffer.eof = true;\r\n }\r\n\r\n if (result.length > 0) {\r\n viewport.clipTop();\r\n buffer.append(result);\r\n }\r\n\r\n doAdjustAfterFetch(rid);\r\n });\r\n }\r\n } else { // scrolling up\r\n if (buffer.length && !viewport.shouldLoadTop()) {\r\n doAdjustAfterFetch(rid);\r\n } else {\r\n fetchPrevious((result) => {\r\n if (isInvalid(rid)) {\r\n return;\r\n }\r\n\r\n if (result.length < bufferSize) {\r\n buffer.bof = true;\r\n // log 'bof is reached'\r\n }\r\n\r\n if (result.length > 0) {\r\n if (buffer.length) {\r\n viewport.clipBottom();\r\n }\r\n buffer.prepend(result);\r\n }\r\n\r\n doAdjustAfterFetch(rid);\r\n });\r\n }\r\n }\r\n }\r\n\r\n function fixInertia() {\r\n if (!viewport.synthetic) {\r\n return;\r\n }\r\n const oldPosition = viewport.synthetic.previous;\r\n const newPosition = viewport.synthetic.next;\r\n if (viewport.scrollTop() !== newPosition) {\r\n requestAnimationFrame(() => {\r\n const position = viewport.scrollTop();\r\n const diff = oldPosition - position;\r\n if (diff > 0) { // inertia over synthetic\r\n viewport.scrollTop(newPosition - diff);\r\n } else {\r\n viewport.scrollTop(newPosition);\r\n }\r\n viewport.synthetic = null;\r\n });\r\n return true;\r\n }\r\n viewport.synthetic = null;\r\n }\r\n\r\n function resizeAndScrollHandler() {\r\n if (handleInertia && fixInertia()) {\r\n return;\r\n }\r\n if (!$rootScope.$$phase && !adapter.isLoading && !adapter.disabled) {\r\n\r\n enqueueFetch(ridActual);\r\n\r\n if (pending.length) {\r\n unbindEvents();\r\n } else {\r\n adapter.calculateProperties();\r\n !$scope.$$phase && $scope.$digest();\r\n }\r\n }\r\n }\r\n\r\n function wheelHandler(event) {\r\n if (!adapter.disabled) {\r\n const scrollTop = viewport[0].scrollTop;\r\n const yMax = viewport[0].scrollHeight - viewport[0].clientHeight;\r\n\r\n if ((scrollTop === 0 && !buffer.bof) || (scrollTop === yMax && !buffer.eof)) {\r\n event.preventDefault();\r\n }\r\n }\r\n }\r\n }\r\n\r\n }\r\n ]);\r\n"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"ui-scroll.min.js","mappings":"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","sources":["webpack://angular-ui-scroll/./src/modules/jqLiteExtras.js","webpack://angular-ui-scroll/./src/modules/elementRoutines.js","webpack://angular-ui-scroll/./src/modules/utils.js","webpack://angular-ui-scroll/./src/modules/buffer.js","webpack://angular-ui-scroll/./src/modules/padding.js","webpack://angular-ui-scroll/./src/modules/viewport.js","webpack://angular-ui-scroll/./src/modules/adapter.js","webpack://angular-ui-scroll/./src/ui-scroll.js"],"sourcesContent":["/*!\r\n globals: angular, window\r\n List of used element methods available in JQuery but not in JQuery Lite\r\n element.before(elem)\r\n element.height()\r\n element.outerHeight(true)\r\n element.height(value) = only for Top/Bottom padding elements\r\n element.scrollTop()\r\n element.scrollTop(value)\r\n */\r\n\r\nexport default class JQLiteExtras {\r\n\r\n registerFor(element) {\r\n let convertToPx, css, getStyle, isWindow;\r\n // angular implementation blows up if elem is the window\r\n css = angular.element.prototype.css;\r\n\r\n element.prototype.css = function (name, value) {\r\n let self = this;\r\n let elem = self[0];\r\n if (!(!elem || elem.nodeType === 3 || elem.nodeType === 8 || !elem.style)) {\r\n return css.call(self, name, value);\r\n }\r\n };\r\n\r\n // as defined in angularjs v1.0.5\r\n isWindow = (obj) => obj && obj.document && obj.location && obj.alert && obj.setInterval;\r\n\r\n function scrollTo(self, direction, value) {\r\n let elem = self[0];\r\n let [method, prop, preserve] = {\r\n top: [\r\n 'scrollTop',\r\n 'pageYOffset',\r\n 'scrollLeft'\r\n ],\r\n left: [\r\n 'scrollLeft',\r\n 'pageXOffset',\r\n 'scrollTop'\r\n ]\r\n }[direction];\r\n\r\n const isValueDefined = typeof value !== 'undefined';\r\n if (isWindow(elem)) {\r\n if (isValueDefined) {\r\n return elem.scrollTo(self[preserve].call(self), value);\r\n }\r\n return (prop in elem) ? elem[prop] : elem.document.documentElement[method];\r\n } else {\r\n if (isValueDefined) {\r\n elem[method] = value;\r\n }\r\n return elem[method];\r\n }\r\n }\r\n\r\n if (window.getComputedStyle) {\r\n getStyle = (elem) => window.getComputedStyle(elem, null);\r\n convertToPx = (elem, value) => parseFloat(value);\r\n } else {\r\n getStyle = (elem) => elem.currentStyle;\r\n convertToPx = (elem, value) => {\r\n let left, result, rs, rsLeft, style;\r\n let core_pnum = /[+-]?(?:\\d*\\.|)\\d+(?:[eE][+-]?\\d+|)/.source;\r\n let rnumnonpx = new RegExp('^(' + core_pnum + ')(?!px)[a-z%]+$', 'i');\r\n\r\n if (!rnumnonpx.test(value)) {\r\n return parseFloat(value);\r\n }\r\n\r\n // ported from JQuery\r\n style = elem.style;\r\n left = style.left;\r\n rs = elem.runtimeStyle;\r\n rsLeft = rs && rs.left;\r\n if (rs) {\r\n rs.left = style.left;\r\n }\r\n // put in the new values to get a computed style out\r\n style.left = value;\r\n result = style.pixelLeft;\r\n style.left = left;\r\n if (rsLeft) {\r\n rs.left = rsLeft;\r\n }\r\n return result;\r\n };\r\n }\r\n\r\n function getMeasurements(elem, measure) {\r\n let base, borderA, borderB, computedMarginA, computedMarginB, computedStyle, dirA, dirB, marginA, marginB, paddingA, paddingB;\r\n\r\n if (isWindow(elem)) {\r\n base = document.documentElement[{height: 'clientHeight', width: 'clientWidth'}[measure]];\r\n\r\n return {\r\n base: base,\r\n padding: 0,\r\n border: 0,\r\n margin: 0\r\n };\r\n }\r\n\r\n // Start with offset property\r\n [\r\n base,\r\n dirA,\r\n dirB\r\n ] = {\r\n width: [\r\n elem.offsetWidth,\r\n 'Left',\r\n 'Right'\r\n ],\r\n height: [\r\n elem.offsetHeight,\r\n 'Top',\r\n 'Bottom'\r\n ]\r\n }[measure];\r\n\r\n computedStyle = getStyle(elem);\r\n paddingA = convertToPx(elem, computedStyle['padding' + dirA]) || 0;\r\n paddingB = convertToPx(elem, computedStyle['padding' + dirB]) || 0;\r\n borderA = convertToPx(elem, computedStyle['border' + dirA + 'Width']) || 0;\r\n borderB = convertToPx(elem, computedStyle['border' + dirB + 'Width']) || 0;\r\n computedMarginA = computedStyle['margin' + dirA];\r\n computedMarginB = computedStyle['margin' + dirB];\r\n\r\n // I do not care for width for now, so this hack is irrelevant\r\n // if ( !supportsPercentMargin )\r\n // computedMarginA = hackPercentMargin( elem, computedStyle, computedMarginA )\r\n // computedMarginB = hackPercentMargin( elem, computedStyle, computedMarginB )\r\n marginA = convertToPx(elem, computedMarginA) || 0;\r\n marginB = convertToPx(elem, computedMarginB) || 0;\r\n\r\n return {\r\n base: base,\r\n padding: paddingA + paddingB,\r\n border: borderA + borderB,\r\n margin: marginA + marginB\r\n };\r\n }\r\n\r\n function getWidthHeight(elem, direction, measure) {\r\n let computedStyle, result;\r\n\r\n let measurements = getMeasurements(elem, direction);\r\n\r\n if (measurements.base > 0) {\r\n return {\r\n base: measurements.base - measurements.padding - measurements.border,\r\n outer: measurements.base,\r\n outerfull: measurements.base + measurements.margin\r\n }[measure];\r\n }\r\n\r\n // Fall back to computed then uncomputed css if necessary\r\n computedStyle = getStyle(elem);\r\n result = computedStyle[direction];\r\n\r\n if (result < 0 || result === null) {\r\n result = elem.style[direction] || 0;\r\n }\r\n\r\n // Normalize \"\", auto, and prepare for extra\r\n result = parseFloat(result) || 0;\r\n\r\n return {\r\n base: result - measurements.padding - measurements.border,\r\n outer: result,\r\n outerfull: result + measurements.padding + measurements.border + measurements.margin\r\n }[measure];\r\n }\r\n\r\n // define missing methods\r\n return angular.forEach({\r\n before(newElem) {\r\n var children, elem, i, j, parent, ref, self;\r\n self = this;\r\n elem = self[0];\r\n parent = self.parent();\r\n children = parent.contents();\r\n if (children[0] === elem) {\r\n return parent.prepend(newElem);\r\n } else {\r\n for (i = j = 1, ref = children.length - 1; 1 <= ref ? j <= ref : j >= ref; i = 1 <= ref ? ++j : --j) {\r\n if (children[i] === elem) {\r\n angular.element(children[i - 1]).after(newElem);\r\n return;\r\n }\r\n }\r\n throw new Error('invalid DOM structure ' + elem.outerHTML);\r\n }\r\n },\r\n height (value){\r\n var self;\r\n self = this;\r\n if (typeof value !== 'undefined') {\r\n if (angular.isNumber(value)) {\r\n value = value + 'px';\r\n }\r\n return css.call(self, 'height', value);\r\n } else {\r\n return getWidthHeight(this[0], 'height', 'base');\r\n }\r\n },\r\n outerHeight(option) {\r\n return getWidthHeight(this[0], 'height', option ? 'outerfull' : 'outer');\r\n },\r\n outerWidth(option) {\r\n return getWidthHeight(this[0], 'width', option ? 'outerfull' : 'outer');\r\n },\r\n\r\n /*\r\n The offset setter method is not implemented\r\n */\r\n offset(value) {\r\n let docElem, win;\r\n let self = this;\r\n let box = {\r\n top: 0,\r\n left: 0\r\n };\r\n let elem = self[0];\r\n let doc = elem && elem.ownerDocument;\r\n\r\n if (arguments.length) {\r\n if (value === undefined) {\r\n return self;\r\n }\r\n // TODO: implement setter\r\n throw new Error('offset setter method is not implemented');\r\n }\r\n\r\n if (!doc) {\r\n return;\r\n }\r\n\r\n docElem = doc.documentElement;\r\n\r\n // TODO: Make sure it's not a disconnected DOM node\r\n\r\n if (elem.getBoundingClientRect != null) {\r\n box = elem.getBoundingClientRect();\r\n }\r\n\r\n win = doc.defaultView || doc.parentWindow;\r\n\r\n return {\r\n top: box.top + (win.pageYOffset || docElem.scrollTop) - (docElem.clientTop || 0),\r\n left: box.left + (win.pageXOffset || docElem.scrollLeft) - (docElem.clientLeft || 0)\r\n };\r\n },\r\n scrollTop(value) {\r\n return scrollTo(this, 'top', value);\r\n },\r\n scrollLeft(value) {\r\n return scrollTo(this, 'left', value);\r\n }\r\n }, (value, key) => {\r\n if (!element.prototype[key]) {\r\n return element.prototype[key] = value;\r\n }\r\n });\r\n }\r\n\r\n}\r\n","const hideClassToken = 'ng-ui-scroll-hide';\r\n\r\nexport default class ElementRoutines {\r\n\r\n static addCSSRules() {\r\n const selector = '.' + hideClassToken;\r\n const rules = 'display: none';\r\n const sheet = document.styleSheets[0];\r\n let index;\r\n try {\r\n index = sheet.cssRules.length;\r\n } catch (err) {\r\n index = 0;\r\n }\r\n if('insertRule' in sheet) {\r\n sheet.insertRule(selector + '{' + rules + '}', index);\r\n }\r\n else if('addRule' in sheet) {\r\n sheet.addRule(selector, rules, index);\r\n }\r\n }\r\n\r\n constructor($injector, $q) {\r\n this.$animate = ($injector.has && $injector.has('$animate')) ? $injector.get('$animate') : null;\r\n this.isAngularVersionLessThen1_3 = angular.version.major === 1 && angular.version.minor < 3;\r\n this.$q = $q;\r\n }\r\n\r\n hideElement(wrapper) {\r\n wrapper.element.addClass(hideClassToken);\r\n }\r\n\r\n showElement(wrapper) {\r\n wrapper.element.removeClass(hideClassToken);\r\n }\r\n\r\n insertElement(newElement, previousElement) {\r\n previousElement.after(newElement);\r\n return [];\r\n }\r\n\r\n removeElement(wrapper) {\r\n wrapper.element.remove();\r\n wrapper.scope.$destroy();\r\n return [];\r\n }\r\n\r\n insertElementAnimated(newElement, previousElement) {\r\n if (!this.$animate) {\r\n return this.insertElement(newElement, previousElement);\r\n }\r\n\r\n if (this.isAngularVersionLessThen1_3) {\r\n const deferred = this.$q.defer();\r\n // no need for parent - previous element is never null\r\n this.$animate.enter(newElement, null, previousElement, () => deferred.resolve());\r\n\r\n return [deferred.promise];\r\n }\r\n\r\n // no need for parent - previous element is never null\r\n return [this.$animate.enter(newElement, null, previousElement)];\r\n }\r\n\r\n removeElementAnimated(wrapper) {\r\n if (!this.$animate) {\r\n return this.removeElement(wrapper);\r\n }\r\n\r\n if (this.isAngularVersionLessThen1_3) {\r\n const deferred = this.$q.defer();\r\n this.$animate.leave(wrapper.element, () => {\r\n wrapper.scope.$destroy();\r\n return deferred.resolve();\r\n });\r\n\r\n return [deferred.promise];\r\n }\r\n\r\n return [(this.$animate.leave(wrapper.element)).then(() => wrapper.scope.$destroy())];\r\n }\r\n}","export const OPERATIONS = {\r\n PREPEND: 'prepend',\r\n APPEND: 'append',\r\n INSERT: 'insert',\r\n REMOVE: 'remove',\r\n NONE: 'none'\r\n};\r\n","import { OPERATIONS } from './utils';\r\n\r\nexport default function ScrollBuffer(elementRoutines, bufferSize, startIndex) {\r\n const buffer = Object.create(Array.prototype);\r\n\r\n angular.extend(buffer, {\r\n size: bufferSize,\r\n\r\n reset(startIndex) {\r\n buffer.remove(0, buffer.length);\r\n buffer.eof = false;\r\n buffer.bof = false;\r\n buffer.first = startIndex;\r\n buffer.next = startIndex;\r\n buffer.minIndex = startIndex;\r\n buffer.maxIndex = startIndex;\r\n buffer.minIndexUser = null;\r\n buffer.maxIndexUser = null;\r\n },\r\n\r\n append(items) {\r\n items.forEach((item) => {\r\n ++buffer.next;\r\n buffer.insert(OPERATIONS.APPEND, item);\r\n });\r\n buffer.maxIndex = buffer.eof ? buffer.next - 1 : Math.max(buffer.next - 1, buffer.maxIndex);\r\n },\r\n\r\n prepend(items, immutableTop) {\r\n items.reverse().forEach((item) => {\r\n if (immutableTop) {\r\n ++buffer.next;\r\n }\r\n else {\r\n --buffer.first;\r\n }\r\n buffer.insert(OPERATIONS.PREPEND, item);\r\n });\r\n buffer.minIndex = buffer.bof ? buffer.minIndex = buffer.first : Math.min(buffer.first, buffer.minIndex);\r\n },\r\n\r\n /**\r\n * inserts wrapped element in the buffer\r\n * the first argument is either operation keyword (see below) or a number for operation 'insert'\r\n * for insert the number is the index for the buffer element the new one have to be inserted after\r\n * operations: 'append', 'prepend', 'insert', 'remove', 'none'\r\n */\r\n insert(operation, item, shiftTop) {\r\n const wrapper = {\r\n item: item\r\n };\r\n\r\n if (operation % 1 === 0) { // it is an insert\r\n wrapper.op = OPERATIONS.INSERT;\r\n buffer.splice(operation, 0, wrapper);\r\n if (shiftTop) {\r\n buffer.first--;\r\n }\r\n else {\r\n buffer.next++;\r\n }\r\n } else {\r\n wrapper.op = operation;\r\n switch (operation) {\r\n case OPERATIONS.APPEND:\r\n buffer.push(wrapper);\r\n break;\r\n case OPERATIONS.PREPEND:\r\n buffer.unshift(wrapper);\r\n break;\r\n }\r\n }\r\n },\r\n\r\n // removes elements from buffer\r\n remove(arg1, arg2) {\r\n if (angular.isNumber(arg1)) {\r\n // removes items from arg1 (including) through arg2 (excluding)\r\n for (let i = arg1; i < arg2; i++) {\r\n elementRoutines.removeElement(buffer[i]);\r\n }\r\n return buffer.splice(arg1, arg2 - arg1);\r\n }\r\n // removes single item (wrapper) from the buffer\r\n buffer.splice(buffer.indexOf(arg1), 1);\r\n if (arg1.shiftTop && buffer.first === this.getAbsMinIndex()) {\r\n this.incrementMinIndex();\r\n }\r\n else {\r\n this.decrementMaxIndex();\r\n }\r\n if (arg1.shiftTop) {\r\n buffer.first++;\r\n }\r\n else {\r\n buffer.next--;\r\n }\r\n if (!buffer.length) {\r\n buffer.minIndex = Math.min(buffer.maxIndex, buffer.minIndex);\r\n }\r\n\r\n return elementRoutines.removeElementAnimated(arg1);\r\n },\r\n\r\n incrementMinIndex() {\r\n if (buffer.minIndexUser !== null) {\r\n if (buffer.minIndex > buffer.minIndexUser) {\r\n buffer.minIndexUser++;\r\n return;\r\n }\r\n if (buffer.minIndex === buffer.minIndexUser) {\r\n buffer.minIndexUser++;\r\n }\r\n }\r\n buffer.minIndex++;\r\n },\r\n\r\n decrementMaxIndex() {\r\n if (buffer.maxIndexUser !== null && buffer.maxIndex <= buffer.maxIndexUser) {\r\n buffer.maxIndexUser--;\r\n }\r\n buffer.maxIndex--;\r\n },\r\n\r\n getAbsMinIndex() {\r\n if (buffer.minIndexUser !== null) {\r\n return Math.min(buffer.minIndexUser, buffer.minIndex);\r\n }\r\n return buffer.minIndex;\r\n },\r\n\r\n getAbsMaxIndex() {\r\n if (buffer.maxIndexUser !== null) {\r\n return Math.max(buffer.maxIndexUser, buffer.maxIndex);\r\n }\r\n return buffer.maxIndex;\r\n },\r\n\r\n effectiveHeight(elements) {\r\n if (!elements.length) {\r\n return 0;\r\n }\r\n let top = Number.MAX_VALUE;\r\n let bottom = Number.NEGATIVE_INFINITY;\r\n elements.forEach((wrapper) => {\r\n if (wrapper.element[0].offsetParent) {\r\n // element style is not display:none\r\n top = Math.min(top, wrapper.element.offset().top);\r\n bottom = Math.max(bottom, wrapper.element.offset().top + wrapper.element.outerHeight(true));\r\n }\r\n });\r\n return Math.max(0, bottom - top);\r\n },\r\n\r\n getItems() {\r\n return buffer.filter(item => item.op === OPERATIONS.NONE);\r\n },\r\n\r\n getFirstItem() {\r\n const list = buffer.getItems();\r\n if (!list.length) {\r\n return null;\r\n }\r\n return list[0].item;\r\n },\r\n\r\n getLastItem() {\r\n const list = buffer.getItems();\r\n if (!list.length) {\r\n return null;\r\n }\r\n return list[list.length - 1].item;\r\n }\r\n\r\n });\r\n\r\n buffer.reset(startIndex);\r\n\r\n return buffer;\r\n}\r\n","// Can't just extend the Array, due to Babel does not support built-in classes extending\r\n// This solution was taken from https://stackoverflow.com/questions/46897414/es6-class-extends-array-workaround-for-es5-babel-transpile\r\nclass CacheProto {\r\n add(item) {\r\n for (let i = this.length - 1; i >= 0; i--) {\r\n if (this[i].index === item.scope.$index) {\r\n this[i].height = item.element.outerHeight();\r\n return;\r\n }\r\n }\r\n this.push({\r\n index: item.scope.$index,\r\n height: item.element.outerHeight()\r\n });\r\n this.sort((a, b) => ((a.index < b.index) ? -1 : ((a.index > b.index) ? 1 : 0)));\r\n }\r\n\r\n remove(argument, _shiftTop) {\r\n const index = argument % 1 === 0 ? argument : argument.scope.$index;\r\n const shiftTop = argument % 1 === 0 ? _shiftTop : argument.shiftTop;\r\n for (let i = this.length - 1; i >= 0; i--) {\r\n if (this[i].index === index) {\r\n this.splice(i, 1);\r\n break;\r\n }\r\n }\r\n if (!shiftTop) {\r\n for (let i = this.length - 1; i >= 0; i--) {\r\n if (this[i].index > index) {\r\n this[i].index--;\r\n }\r\n }\r\n }\r\n }\r\n\r\n clear() {\r\n this.length = 0;\r\n }\r\n}\r\n\r\nfunction Cache() {\r\n const instance = [];\r\n instance.push.apply(instance, arguments);\r\n Object.setPrototypeOf(instance, Cache.prototype);\r\n return instance;\r\n}\r\nCache.prototype = Object.create(Array.prototype);\r\nObject.getOwnPropertyNames(CacheProto.prototype).forEach(methodName =>\r\n Cache.prototype[methodName] = CacheProto.prototype[methodName]\r\n);\r\n\r\nfunction generateElement(template) {\r\n if (template.nodeType !== Node.ELEMENT_NODE) {\r\n throw new Error('ui-scroll directive requires an Element node for templating the view');\r\n }\r\n let element;\r\n switch (template.tagName.toLowerCase()) {\r\n case 'dl':\r\n throw new Error(`ui-scroll directive does not support <${template.tagName}> as a repeating tag: ${template.outerHTML}`);\r\n case 'tr':\r\n let table = angular.element('
    ');\r\n element = table.find('tr');\r\n break;\r\n case 'li':\r\n element = angular.element('
  • ');\r\n break;\r\n default:\r\n element = angular.element('
    ');\r\n }\r\n return element;\r\n}\r\n\r\nclass Padding {\r\n constructor(template) {\r\n this.element = generateElement(template);\r\n this.cache = new Cache();\r\n }\r\n\r\n height() {\r\n return this.element.height.apply(this.element, arguments);\r\n }\r\n}\r\n\r\nexport default Padding;","import Padding from './padding';\r\n\r\nexport default function Viewport(elementRoutines, buffer, element, viewportController, $rootScope, padding) {\r\n let topPadding = null;\r\n let bottomPadding = null;\r\n const viewport = viewportController && viewportController.viewport ? viewportController.viewport : angular.element(window);\r\n const container = viewportController && viewportController.container ? viewportController.container : undefined;\r\n const scope = viewportController && viewportController.scope ? viewportController.scope : $rootScope;\r\n\r\n viewport.css({\r\n 'overflow-anchor': 'none',\r\n 'overflow-y': 'auto',\r\n 'display': 'block'\r\n });\r\n\r\n function bufferPadding() {\r\n return viewport.outerHeight() * padding; // some extra space to initiate preload\r\n }\r\n\r\n angular.extend(viewport, {\r\n getScope() {\r\n return scope;\r\n },\r\n\r\n createPaddingElements(template) {\r\n topPadding = new Padding(template);\r\n bottomPadding = new Padding(template);\r\n element.before(topPadding.element);\r\n element.after(bottomPadding.element);\r\n topPadding.height(0);\r\n bottomPadding.height(0);\r\n },\r\n\r\n applyContainerStyle() {\r\n if (!container) {\r\n return true;\r\n }\r\n if (container !== viewport) {\r\n viewport.css('height', window.getComputedStyle(container[0]).height);\r\n }\r\n return viewport.height() > 0;\r\n },\r\n\r\n bottomDataPos() {\r\n let scrollHeight = viewport[0].scrollHeight;\r\n scrollHeight = scrollHeight != null ? scrollHeight : viewport[0].document.documentElement.scrollHeight;\r\n return scrollHeight - bottomPadding.height();\r\n },\r\n\r\n topDataPos() {\r\n return topPadding.height();\r\n },\r\n\r\n bottomVisiblePos() {\r\n return viewport.scrollTop() + viewport.outerHeight();\r\n },\r\n\r\n topVisiblePos() {\r\n return viewport.scrollTop();\r\n },\r\n\r\n insertElement(e, sibling) {\r\n return elementRoutines.insertElement(e, sibling || topPadding.element);\r\n },\r\n\r\n insertElementAnimated(e, sibling) {\r\n return elementRoutines.insertElementAnimated(e, sibling || topPadding.element);\r\n },\r\n\r\n shouldLoadBottom() {\r\n return !buffer.eof && viewport.bottomDataPos() < viewport.bottomVisiblePos() + bufferPadding();\r\n },\r\n\r\n clipBottom() {\r\n // clip the invisible items off the bottom\r\n let overage = 0;\r\n let overageHeight = 0;\r\n let itemHeight = 0;\r\n let emptySpaceHeight = viewport.bottomDataPos() - viewport.bottomVisiblePos() - bufferPadding();\r\n\r\n for (let i = buffer.length - 1; i >= 0; i--) {\r\n itemHeight = buffer[i].element.outerHeight(true);\r\n if (overageHeight + itemHeight > emptySpaceHeight) {\r\n break;\r\n }\r\n bottomPadding.cache.add(buffer[i]);\r\n overageHeight += itemHeight;\r\n overage++;\r\n }\r\n\r\n if (overage > 0) {\r\n buffer.eof = false;\r\n buffer.remove(buffer.length - overage, buffer.length);\r\n buffer.next -= overage;\r\n viewport.adjustPaddings();\r\n }\r\n },\r\n\r\n shouldLoadTop() {\r\n return !buffer.bof && (viewport.topDataPos() > viewport.topVisiblePos() - bufferPadding());\r\n },\r\n\r\n clipTop() {\r\n // clip the invisible items off the top\r\n let overage = 0;\r\n let overageHeight = 0;\r\n let itemHeight = 0;\r\n let emptySpaceHeight = viewport.topVisiblePos() - viewport.topDataPos() - bufferPadding();\r\n\r\n for (let i = 0; i < buffer.length; i++) {\r\n itemHeight = buffer[i].element.outerHeight(true);\r\n if (overageHeight + itemHeight > emptySpaceHeight) {\r\n break;\r\n }\r\n topPadding.cache.add(buffer[i]);\r\n overageHeight += itemHeight;\r\n overage++;\r\n }\r\n\r\n if (overage > 0) {\r\n // we need to adjust top padding element before items are removed from top\r\n // to avoid strange behaviour of scroll bar during remove top items when we are at the very bottom\r\n topPadding.height(topPadding.height() + overageHeight);\r\n buffer.bof = false;\r\n buffer.remove(0, overage);\r\n buffer.first += overage;\r\n }\r\n },\r\n\r\n adjustPaddings() {\r\n if (!buffer.length) {\r\n return;\r\n }\r\n\r\n // precise heights calculation based on items that are in buffer or that were in buffer once\r\n const visibleItemsHeight = buffer.reduce((summ, item) => summ + item.element.outerHeight(true), 0);\r\n\r\n let topPaddingHeight = 0, topCount = 0;\r\n topPadding.cache.forEach(item => {\r\n if (item.index < buffer.first) {\r\n topPaddingHeight += item.height;\r\n topCount++;\r\n }\r\n });\r\n\r\n let bottomPaddingHeight = 0, bottomCount = 0;\r\n bottomPadding.cache.forEach(item => {\r\n if (item.index >= buffer.next) {\r\n bottomPaddingHeight += item.height;\r\n bottomCount++;\r\n }\r\n });\r\n\r\n const totalHeight = visibleItemsHeight + topPaddingHeight + bottomPaddingHeight;\r\n const averageItemHeight = totalHeight / (topCount + bottomCount + buffer.length);\r\n\r\n // average heights calculation, items that have never been reached\r\n let adjustTopPadding = buffer.minIndexUser !== null && buffer.minIndex > buffer.minIndexUser;\r\n let adjustBottomPadding = buffer.maxIndexUser !== null && buffer.maxIndex < buffer.maxIndexUser;\r\n let topPaddingHeightAdd = adjustTopPadding ? (buffer.minIndex - buffer.minIndexUser) * averageItemHeight : 0;\r\n let bottomPaddingHeightAdd = adjustBottomPadding ? (buffer.maxIndexUser - buffer.maxIndex) * averageItemHeight : 0;\r\n\r\n // paddings combine adjustment\r\n topPadding.height(topPaddingHeight + topPaddingHeightAdd);\r\n bottomPadding.height(bottomPaddingHeight + bottomPaddingHeightAdd);\r\n },\r\n\r\n onAfterMinIndexSet(topPaddingHeightOld) {\r\n // additional scrollTop adjustment in case of datasource.minIndex external set\r\n if (buffer.minIndexUser !== null && buffer.minIndex > buffer.minIndexUser) {\r\n let diff = topPadding.height() - topPaddingHeightOld;\r\n viewport.scrollTop(viewport.scrollTop() + diff);\r\n while((diff -= viewport.scrollTop()) > 0) {\r\n bottomPadding.height(bottomPadding.height() + diff);\r\n viewport.scrollTop(viewport.scrollTop() + diff);\r\n }\r\n }\r\n },\r\n\r\n onAfterPrepend(updates) {\r\n if (!updates.prepended.length) {\r\n return;\r\n }\r\n const height = buffer.effectiveHeight(updates.prepended);\r\n const paddingHeight = topPadding.height() - height;\r\n if (paddingHeight >= 0) {\r\n topPadding.height(paddingHeight);\r\n return;\r\n }\r\n const position = viewport.scrollTop();\r\n const newPosition = position - paddingHeight;\r\n viewport.synthetic = { previous: position, next: newPosition };\r\n topPadding.height(0);\r\n viewport.scrollTop(newPosition);\r\n },\r\n\r\n resetTopPadding() {\r\n topPadding.height(0);\r\n topPadding.cache.clear();\r\n },\r\n\r\n resetBottomPadding() {\r\n bottomPadding.height(0);\r\n bottomPadding.cache.clear();\r\n },\r\n\r\n removeCacheItem(item, shiftTop) {\r\n topPadding.cache.remove(item, shiftTop);\r\n bottomPadding.cache.remove(item, shiftTop);\r\n },\r\n\r\n removeItem(item) {\r\n this.removeCacheItem(item);\r\n return buffer.remove(item);\r\n }\r\n });\r\n\r\n return viewport;\r\n}\r\n","import { OPERATIONS } from './utils';\r\n\r\nclass Adapter {\r\n\r\n constructor($scope, $parse, $attr, viewport, buffer, doAdjust, reload) {\r\n this.$parse = $parse;\r\n this.$attr = $attr;\r\n this.viewport = viewport;\r\n this.buffer = buffer;\r\n\r\n this.doAdjust = doAdjust;\r\n this.reload = reload;\r\n\r\n this.isLoading = false;\r\n this.disabled = false;\r\n\r\n const viewportScope = viewport.getScope();\r\n this.startScope = viewportScope.$parent ? viewportScope : $scope;\r\n\r\n this.publicContext = {};\r\n this.assignAdapter($attr.adapter);\r\n this.generatePublicContext();\r\n }\r\n\r\n assignAdapter(adapterAttr) {\r\n if (!adapterAttr || !(adapterAttr = adapterAttr.replace(/^\\s+|\\s+$/gm, ''))) {\r\n return;\r\n }\r\n let adapterOnScope;\r\n\r\n try {\r\n this.$parse(adapterAttr).assign(this.startScope, {});\r\n adapterOnScope = this.$parse(adapterAttr)(this.startScope);\r\n }\r\n catch (error) {\r\n error.message = `Angular ui-scroll Adapter assignment exception.\\n` +\r\n `Can't parse \"${adapterAttr}\" expression.\\n` +\r\n error.message;\r\n throw error;\r\n }\r\n\r\n angular.extend(adapterOnScope, this.publicContext);\r\n this.publicContext = adapterOnScope;\r\n }\r\n\r\n generatePublicContext() {\r\n // these methods will be accessible out of ui-scroll via user defined adapter\r\n const publicMethods = ['reload', 'applyUpdates', 'append', 'prepend', 'isBOF', 'isEOF', 'isEmpty'];\r\n for (let i = publicMethods.length - 1; i >= 0; i--) {\r\n this.publicContext[publicMethods[i]] = this[publicMethods[i]].bind(this);\r\n }\r\n\r\n // these read-only props will be accessible out of ui-scroll via user defined adapter\r\n const publicProps = ['isLoading', 'topVisible', 'topVisibleElement', 'topVisibleScope', 'bottomVisible', 'bottomVisibleElement', 'bottomVisibleScope'];\r\n for (let i = publicProps.length - 1; i >= 0; i--) {\r\n let property, attr = this.$attr[publicProps[i]];\r\n Object.defineProperty(this, publicProps[i], {\r\n get: () => property,\r\n set: (value) => {\r\n property = value;\r\n this.publicContext[publicProps[i]] = value;\r\n if (attr) {\r\n this.$parse(attr).assign(this.startScope, value);\r\n }\r\n }\r\n });\r\n }\r\n\r\n // read-only immediately calculated public properties\r\n const publicPropsImmediate = ['bufferFirst', 'bufferLast', 'bufferLength'];\r\n for (let i = publicPropsImmediate.length - 1; i >= 0; i--) {\r\n Object.defineProperty(this.publicContext, publicPropsImmediate[i], {\r\n get: () => this[publicPropsImmediate[i]]\r\n });\r\n }\r\n\r\n // non-read-only public property\r\n Object.defineProperty(this.publicContext, 'disabled', {\r\n get: () => this.disabled,\r\n set: (value) => (!(this.disabled = value)) ? this.doAdjust() : null\r\n });\r\n }\r\n\r\n loading(value) {\r\n this.isLoading = value;\r\n }\r\n\r\n isBOF() {\r\n return this.buffer.bof;\r\n }\r\n\r\n isEOF() {\r\n return this.buffer.eof;\r\n }\r\n\r\n isEmpty() {\r\n return !this.buffer.length;\r\n }\r\n\r\n get bufferLength() {\r\n return this.buffer.getItems().length;\r\n }\r\n\r\n get bufferFirst() {\r\n return this.buffer.getFirstItem();\r\n }\r\n\r\n get bufferLast() {\r\n return this.buffer.getLastItem();\r\n }\r\n\r\n append(newItems) {\r\n this.buffer.append(newItems);\r\n this.doAdjust();\r\n this.viewport.clipTop();\r\n this.viewport.clipBottom();\r\n }\r\n\r\n prepend(newItems, options = {}) {\r\n this.buffer.prepend(newItems, options.immutableTop);\r\n this.doAdjust();\r\n this.viewport.clipTop();\r\n this.viewport.clipBottom();\r\n }\r\n\r\n applyUpdates(arg1, arg2, arg3) {\r\n if (typeof arg1 === 'function') {\r\n this.applyUpdatesFunc(arg1, arg2);\r\n } else {\r\n this.applyUpdatesIndex(arg1, arg2, arg3);\r\n }\r\n this.doAdjust();\r\n }\r\n\r\n applyUpdatesFunc(cb, options = {}) {\r\n this.buffer.slice(0).forEach((wrapper) => {\r\n // we need to do it on the buffer clone, because buffer content\r\n // may change as we iterate through\r\n this.applyUpdate(wrapper, cb(wrapper.item, wrapper.scope, wrapper.element), options);\r\n });\r\n }\r\n\r\n applyUpdatesIndex(index, newItems, options = {}) {\r\n if (index % 1 !== 0) {\r\n throw new Error('applyUpdates - ' + index + ' is not a valid index (should be an integer)');\r\n }\r\n const _index = index - this.buffer.first;\r\n\r\n // apply updates only within buffer\r\n if (_index >= 0 && _index < this.buffer.length) {\r\n this.applyUpdate(this.buffer[_index], newItems, options);\r\n }\r\n // out-of-buffer case: deletion may affect Paddings\r\n else if(index >= this.buffer.getAbsMinIndex() && index <= this.buffer.getAbsMaxIndex()) {\r\n if(angular.isArray(newItems) && !newItems.length) {\r\n this.viewport.removeCacheItem(index, !options.immutableTop && index === this.buffer.minIndex);\r\n if (!options.immutableTop && index === this.buffer.getAbsMinIndex()) {\r\n this.buffer.incrementMinIndex();\r\n }\r\n else {\r\n this.buffer.decrementMaxIndex();\r\n }\r\n }\r\n }\r\n }\r\n\r\n applyUpdate(wrapper, newItems, options = {}) {\r\n if (!angular.isArray(newItems)) {\r\n return;\r\n }\r\n let position = this.buffer.indexOf(wrapper);\r\n if (!newItems.reverse().some(newItem => newItem === wrapper.item)) {\r\n wrapper.op = OPERATIONS.REMOVE;\r\n // try to catch \"first\" edge case on remove\r\n if (!options.immutableTop && !newItems.length) {\r\n // this is the first item, or the previous one's part of the \"shift-top\" group\r\n if (\r\n (position === 0 && this.buffer.bof) ||\r\n (position !== 0 && this.buffer[position - 1].shiftTop)\r\n ) {\r\n wrapper.shiftTop = true;\r\n }\r\n }\r\n }\r\n newItems.forEach((newItem) => {\r\n if (newItem === wrapper.item) {\r\n position--;\r\n } else {\r\n // 3 parameter (shiftTop) is to catch \"first\" edge case on insert\r\n this.buffer.insert(position + 1, newItem, !options.immutableTop && position === -1);\r\n }\r\n });\r\n }\r\n\r\n calculateProperties() {\r\n let rowTop = null, topHeight = 0;\r\n let topDone = false, bottomDone = false;\r\n const length = this.buffer.length;\r\n\r\n for (let i = 0; i < length; i++) {\r\n const item = this.buffer[i];\r\n const itemTop = item.element.offset().top;\r\n\r\n if (rowTop !== itemTop) { // a new row condition\r\n const itemHeight = item.element.outerHeight(true);\r\n const top = this.viewport.topDataPos() + topHeight + itemHeight;\r\n\r\n if (!topDone && top > this.viewport.topVisiblePos()) {\r\n topDone = true;\r\n this['topVisible'] = item.item;\r\n this['topVisibleElement'] = item.element;\r\n this['topVisibleScope'] = item.scope;\r\n }\r\n if (!bottomDone && (top >= this.viewport.bottomVisiblePos() || (i === length - 1 && this.isEOF()))) {\r\n bottomDone = true;\r\n this['bottomVisible'] = item.item;\r\n this['bottomVisibleElement'] = item.element;\r\n this['bottomVisibleScope'] = item.scope;\r\n }\r\n topHeight += itemHeight;\r\n }\r\n rowTop = itemTop;\r\n\r\n if (topDone && bottomDone) {\r\n break;\r\n }\r\n }\r\n }\r\n\r\n}\r\n\r\nexport default Adapter;\r\n","import JQLiteExtras from './modules/jqLiteExtras';\r\nimport ElementRoutines from './modules/elementRoutines.js';\r\nimport ScrollBuffer from './modules/buffer.js';\r\nimport Viewport from './modules/viewport.js';\r\nimport Adapter from './modules/adapter.js';\r\nimport { OPERATIONS } from './modules/utils';\r\n\r\nangular.module('ui.scroll', [])\r\n\r\n .constant('JQLiteExtras', JQLiteExtras)\r\n .run(['JQLiteExtras', (JQLiteExtras) => {\r\n const elt = angular.element;\r\n !(window.jQuery && elt.fn && elt.fn.jquery) ? (new JQLiteExtras()).registerFor(elt) : null;\r\n ElementRoutines.addCSSRules();\r\n }])\r\n\r\n .directive('uiScrollViewport', function () {\r\n return {\r\n restrict: 'A',\r\n controller: [\r\n '$scope',\r\n '$element',\r\n function (scope, element) {\r\n this.container = element;\r\n this.viewport = element;\r\n this.scope = scope;\r\n\r\n angular.forEach(element.children(), child => {\r\n if (child.tagName.toLowerCase() === 'tbody') {\r\n this.viewport = angular.element(child);\r\n }\r\n });\r\n\r\n return this;\r\n }\r\n ]\r\n };\r\n })\r\n\r\n .directive('uiScroll', [\r\n '$log',\r\n '$injector',\r\n '$rootScope',\r\n '$timeout',\r\n '$interval',\r\n '$q',\r\n '$parse',\r\n function (console, $injector, $rootScope, $timeout, $interval, $q, $parse) {\r\n\r\n return {\r\n require: ['?^uiScrollViewport'],\r\n restrict: 'A',\r\n transclude: 'element',\r\n priority: 1000,\r\n terminal: true,\r\n link: link\r\n };\r\n\r\n function link($scope, element, $attr, controllers, linker) {\r\n const match = $attr.uiScroll.match(/^\\s*(\\w+)\\s+in\\s+([(\\w|\\$)\\.]+)\\s*$/);\r\n if (!match) {\r\n throw new Error('Expected uiScroll in form of \\'_item_ in _datasource_\\' but got \\'' + $attr.uiScroll + '\\'');\r\n }\r\n\r\n function parseNumber(value, defaultValue, isFloat) {\r\n if (!isFloat) {\r\n value = value === null ? defaultValue : Math.floor(value);\r\n }\r\n return isNaN(value) ? defaultValue : value;\r\n }\r\n\r\n function parseNumericAttr(value, defaultValue, isFloat) {\r\n const result = $parse(value)($scope);\r\n return parseNumber(result, defaultValue, isFloat);\r\n }\r\n\r\n function parseBooleanAttr(value, defaultValue) {\r\n const result = $parse(value)($scope);\r\n return typeof result === 'boolean' ? result : defaultValue;\r\n }\r\n\r\n const BUFFER_MIN = 3;\r\n const BUFFER_DEFAULT = 10;\r\n const PADDING_MIN = 0.3;\r\n const PADDING_DEFAULT = 0.5;\r\n const HANDLE_INERTIA_DEFAULT = true;\r\n const START_INDEX_DEFAULT = 1;\r\n const MAX_VIEWPORT_DELAY = 500;\r\n const VIEWPORT_POLLING_INTERVAL = 50;\r\n\r\n let datasource = null;\r\n const itemName = match[1];\r\n const datasourceName = match[2];\r\n const viewportController = controllers[0];\r\n const bufferSize = Math.max(BUFFER_MIN, parseNumericAttr($attr.bufferSize, BUFFER_DEFAULT));\r\n const padding = Math.max(PADDING_MIN, parseNumericAttr($attr.padding, PADDING_DEFAULT, true));\r\n const handleInertia = parseBooleanAttr($attr.handleInertia, HANDLE_INERTIA_DEFAULT);\r\n let startIndex = parseNumericAttr($attr.startIndex, START_INDEX_DEFAULT);\r\n let ridActual = 0; // current data revision id\r\n let pending = [];\r\n\r\n const elementRoutines = new ElementRoutines($injector, $q);\r\n const buffer = new ScrollBuffer(elementRoutines, bufferSize, startIndex);\r\n const viewport = new Viewport(elementRoutines, buffer, element, viewportController, $rootScope, padding);\r\n const adapter = new Adapter($scope, $parse, $attr, viewport, buffer, doAdjust, reload);\r\n\r\n if (viewportController) {\r\n viewportController.adapter = adapter;\r\n }\r\n\r\n const isDatasourceValid = () =>\r\n Object.prototype.toString.call(datasource) === '[object Object]' && typeof datasource.get === 'function';\r\n\r\n datasource = $parse(datasourceName)($scope); // try to get datasource on scope\r\n if (!isDatasourceValid()) {\r\n datasource = $injector.get(datasourceName); // try to inject datasource as service\r\n if (!isDatasourceValid()) {\r\n throw new Error(datasourceName + ' is not a valid datasource');\r\n }\r\n }\r\n\r\n let onRenderHandlers = [];\r\n function onRenderHandlersRunner() {\r\n onRenderHandlers.forEach(handler => handler.run());\r\n onRenderHandlers = [];\r\n }\r\n function persistDatasourceIndex(datasource, propName) {\r\n let getter;\r\n // need to postpone min/maxIndexUser processing if the view is empty\r\n if(angular.isNumber(datasource[propName])) {\r\n getter = datasource[propName];\r\n if(angular.isNumber(getter)) {\r\n onRenderHandlers = onRenderHandlers.filter(handler => handler.id !== propName);\r\n onRenderHandlers.push({\r\n id: propName,\r\n run: () => datasource[propName] = getter\r\n });\r\n }\r\n }\r\n }\r\n\r\n function defineDatasourceIndex(datasource, propName, propUserName) {\r\n const descriptor = Object.getOwnPropertyDescriptor(datasource, propName);\r\n if (descriptor && (descriptor.set || descriptor.get)) {\r\n return;\r\n }\r\n let getter;\r\n persistDatasourceIndex(datasource, propName);\r\n Object.defineProperty(datasource, propName, {\r\n set: (value) => {\r\n getter = value;\r\n if(pending.length && !buffer.length) {\r\n persistDatasourceIndex(datasource, propName);\r\n return;\r\n }\r\n buffer[propUserName] = value;\r\n const topPaddingHeightOld = viewport.topDataPos();\r\n viewport.adjustPaddings();\r\n if (propName === 'minIndex') {\r\n viewport.onAfterMinIndexSet(topPaddingHeightOld);\r\n }\r\n },\r\n get: () => getter\r\n });\r\n }\r\n\r\n defineDatasourceIndex(datasource, 'minIndex', 'minIndexUser');\r\n defineDatasourceIndex(datasource, 'maxIndex', 'maxIndexUser');\r\n\r\n const fetchNext = (datasource.get.length !== 2) ?\r\n (success) => datasource.get(buffer.next, bufferSize, success) :\r\n (success) => {\r\n datasource.get({\r\n index: buffer.next,\r\n append: buffer.length ? buffer[buffer.length - 1].item : void 0,\r\n count: bufferSize\r\n }, success);\r\n };\r\n\r\n const fetchPrevious = (datasource.get.length !== 2) ?\r\n (success) => datasource.get(buffer.first - bufferSize, bufferSize, success) :\r\n (success) => {\r\n datasource.get({\r\n index: buffer.first - bufferSize,\r\n prepend: buffer.length ? buffer[0].item : void 0,\r\n count: bufferSize\r\n }, success);\r\n };\r\n\r\n const initialize = () => {\r\n let tryCount = 0;\r\n if(!viewport.applyContainerStyle()) {\r\n const timer = $interval(() => {\r\n tryCount++;\r\n if(viewport.applyContainerStyle()) {\r\n $interval.cancel(timer);\r\n doAdjust();\r\n }\r\n if(tryCount * VIEWPORT_POLLING_INTERVAL >= MAX_VIEWPORT_DELAY) {\r\n $interval.cancel(timer);\r\n throw Error(`ui-scroll directive requires a viewport with non-zero height in ${MAX_VIEWPORT_DELAY}ms`);\r\n }\r\n }, VIEWPORT_POLLING_INTERVAL);\r\n }\r\n else {\r\n doAdjust();\r\n }\r\n };\r\n\r\n /**\r\n * Build padding elements\r\n *\r\n * Calling linker is the only way I found to get access to the tag name of the template\r\n * to prevent the directive scope from pollution a new scope is created and destroyed\r\n * right after the builder creation is completed\r\n */\r\n linker((clone, scope) => {\r\n viewport.createPaddingElements(clone[0]);\r\n // we do not include the clone in the DOM. It means that the nested directives will not\r\n // be able to reach the parent directives, but in this case it is intentional because we\r\n // created the clone to access the template tag name\r\n scope.$destroy();\r\n clone.remove();\r\n });\r\n\r\n $scope.$on('$destroy', () => {\r\n unbindEvents();\r\n viewport.off('mousewheel', wheelHandler);\r\n });\r\n\r\n viewport.on('mousewheel', wheelHandler);\r\n\r\n initialize();\r\n\r\n /* Private function definitions */\r\n\r\n function isInvalid(rid) {\r\n return (rid && rid !== ridActual) || $scope.$$destroyed;\r\n }\r\n\r\n function bindEvents() {\r\n viewport.on('resize', resizeAndScrollHandler);\r\n viewport.on('scroll', resizeAndScrollHandler);\r\n }\r\n\r\n function unbindEvents() {\r\n viewport.off('resize', resizeAndScrollHandler);\r\n viewport.off('scroll', resizeAndScrollHandler);\r\n }\r\n\r\n function reload() {\r\n unbindEvents();\r\n viewport.resetTopPadding();\r\n viewport.resetBottomPadding();\r\n if (arguments.length) {\r\n startIndex = parseNumber(arguments[0], START_INDEX_DEFAULT, false);\r\n }\r\n buffer.reset(startIndex);\r\n persistDatasourceIndex(datasource, 'minIndex');\r\n persistDatasourceIndex(datasource, 'maxIndex');\r\n doAdjust();\r\n }\r\n\r\n function isElementVisible(wrapper) {\r\n return wrapper.element.height() && wrapper.element[0].offsetParent;\r\n }\r\n\r\n function visibilityWatcher(wrapper) {\r\n if (isElementVisible(wrapper)) {\r\n buffer.forEach((item) => {\r\n if (typeof item.unregisterVisibilityWatcher === 'function') {\r\n item.unregisterVisibilityWatcher();\r\n delete item.unregisterVisibilityWatcher;\r\n }\r\n });\r\n if (!pending.length) {\r\n $timeout(() => doAdjust());\r\n }\r\n }\r\n }\r\n\r\n function insertWrapperContent(wrapper, insertAfter) {\r\n createElement(wrapper, insertAfter, viewport.insertElement);\r\n if (!isElementVisible(wrapper)) {\r\n wrapper.unregisterVisibilityWatcher = wrapper.scope.$watch(() => visibilityWatcher(wrapper));\r\n }\r\n elementRoutines.hideElement(wrapper); // hide inserted elements before data binding\r\n }\r\n\r\n function createElement(wrapper, insertAfter, insertElement) {\r\n let promises = null;\r\n const sibling = (insertAfter > 0) ? buffer[insertAfter - 1].element : undefined;\r\n linker((clone, scope) => {\r\n promises = insertElement(clone, sibling);\r\n wrapper.element = clone;\r\n wrapper.scope = scope;\r\n scope[itemName] = wrapper.item;\r\n });\r\n // ui-scroll-grid apply\r\n if (adapter.transform) {\r\n const tdInitializer = wrapper.scope.uiScrollTdInitializer;\r\n if (tdInitializer && tdInitializer.linking) {\r\n adapter.transform(wrapper.scope, wrapper.element);\r\n } else {\r\n wrapper.scope.uiScrollTdInitializer = {\r\n onLink: () => adapter.transform(wrapper.scope, wrapper.element),\r\n scope: wrapper.scope\r\n };\r\n }\r\n }\r\n return promises;\r\n }\r\n\r\n function updateDOM() {\r\n let promises = [];\r\n const toBePrepended = [];\r\n const toBeRemoved = [];\r\n const inserted = [];\r\n\r\n buffer.forEach((wrapper, i) => {\r\n switch (wrapper.op) {\r\n case OPERATIONS.PREPEND:\r\n toBePrepended.unshift(wrapper);\r\n break;\r\n case OPERATIONS.APPEND:\r\n insertWrapperContent(wrapper, i);\r\n wrapper.op = OPERATIONS.NONE;\r\n inserted.push(wrapper);\r\n break;\r\n case OPERATIONS.INSERT:\r\n promises = promises.concat(createElement(wrapper, i, viewport.insertElementAnimated));\r\n wrapper.op = OPERATIONS.NONE;\r\n inserted.push(wrapper);\r\n break;\r\n case OPERATIONS.REMOVE:\r\n toBeRemoved.push(wrapper);\r\n }\r\n });\r\n\r\n toBeRemoved.forEach((wrapper) => promises = promises.concat(viewport.removeItem(wrapper)));\r\n\r\n if (toBePrepended.length)\r\n toBePrepended.forEach((wrapper) => {\r\n insertWrapperContent(wrapper);\r\n wrapper.op = OPERATIONS.NONE;\r\n });\r\n\r\n buffer.forEach((item, i) => item.scope.$index = buffer.first + i);\r\n\r\n return {\r\n prepended: toBePrepended,\r\n removed: toBeRemoved,\r\n inserted: inserted,\r\n animated: promises\r\n };\r\n\r\n }\r\n\r\n function updatePaddings(rid, updates) {\r\n // schedule another doAdjust after animation completion\r\n if (updates.animated.length) {\r\n $q.all(updates.animated).then(() => {\r\n viewport.adjustPaddings();\r\n doAdjust(rid);\r\n });\r\n } else {\r\n viewport.adjustPaddings();\r\n }\r\n }\r\n\r\n function enqueueFetch(rid, updates) {\r\n if (viewport.shouldLoadBottom()) {\r\n if (!updates || buffer.effectiveHeight(updates.inserted) > 0) {\r\n // this means that at least one item appended in the last batch has height > 0\r\n if (pending.push(true) === 1) {\r\n adapter.loading(true);\r\n fetch(rid);\r\n }\r\n }\r\n } else if (viewport.shouldLoadTop()) {\r\n if ((!updates || buffer.effectiveHeight(updates.prepended) > 0) || pending[0]) {\r\n // this means that at least one item appended in the last batch has height > 0\r\n // pending[0] = true means that previous fetch was appending. We need to force at least one prepend\r\n // BTW there will always be at least 1 element in the pending array because bottom is fetched first\r\n if (pending.push(false) === 1) {\r\n adapter.loading(true);\r\n fetch(rid);\r\n }\r\n }\r\n }\r\n }\r\n\r\n function processUpdates() {\r\n const updates = updateDOM();\r\n\r\n // We need the item bindings to be processed before we can do adjustments\r\n !$scope.$$phase && !$rootScope.$$phase && $scope.$digest();\r\n\r\n updates.inserted.forEach(w => elementRoutines.showElement(w));\r\n updates.prepended.forEach(w => elementRoutines.showElement(w));\r\n return updates;\r\n }\r\n\r\n function doAdjust(rid) {\r\n if (!rid) { // dismiss pending requests\r\n pending = [];\r\n rid = ++ridActual;\r\n }\r\n\r\n const updates = processUpdates();\r\n\r\n if (isInvalid(rid)) {\r\n return;\r\n }\r\n\r\n updatePaddings(rid, updates);\r\n enqueueFetch(rid);\r\n\r\n if (!pending.length) {\r\n adapter.calculateProperties();\r\n }\r\n }\r\n\r\n function doAdjustAfterFetch(rid) {\r\n const updates = processUpdates();\r\n\r\n viewport.onAfterPrepend(updates);\r\n\r\n if (isInvalid(rid)) {\r\n return;\r\n }\r\n\r\n updatePaddings(rid, updates);\r\n onRenderHandlersRunner();\r\n enqueueFetch(rid, updates);\r\n pending.shift();\r\n\r\n if (pending.length)\r\n fetch(rid);\r\n else {\r\n adapter.loading(false);\r\n bindEvents();\r\n adapter.calculateProperties();\r\n }\r\n }\r\n\r\n function fetch(rid) {\r\n if (pending[0]) {// scrolling down\r\n if (buffer.length && !viewport.shouldLoadBottom()) {\r\n doAdjustAfterFetch(rid);\r\n } else {\r\n fetchNext((result) => {\r\n if (isInvalid(rid)) {\r\n return;\r\n }\r\n\r\n if (result.length < bufferSize) {\r\n buffer.eof = true;\r\n }\r\n\r\n if (result.length > 0) {\r\n viewport.clipTop();\r\n buffer.append(result);\r\n }\r\n\r\n doAdjustAfterFetch(rid);\r\n });\r\n }\r\n } else { // scrolling up\r\n if (buffer.length && !viewport.shouldLoadTop()) {\r\n doAdjustAfterFetch(rid);\r\n } else {\r\n fetchPrevious((result) => {\r\n if (isInvalid(rid)) {\r\n return;\r\n }\r\n\r\n if (result.length < bufferSize) {\r\n buffer.bof = true;\r\n // log 'bof is reached'\r\n }\r\n\r\n if (result.length > 0) {\r\n if (buffer.length) {\r\n viewport.clipBottom();\r\n }\r\n buffer.prepend(result);\r\n }\r\n\r\n doAdjustAfterFetch(rid);\r\n });\r\n }\r\n }\r\n }\r\n\r\n function fixInertia() {\r\n if (!viewport.synthetic) {\r\n return;\r\n }\r\n const oldPosition = viewport.synthetic.previous;\r\n const newPosition = viewport.synthetic.next;\r\n if (viewport.scrollTop() !== newPosition) {\r\n requestAnimationFrame(() => {\r\n const position = viewport.scrollTop();\r\n const diff = oldPosition - position;\r\n if (diff > 0) { // inertia over synthetic\r\n viewport.scrollTop(newPosition - diff);\r\n } else {\r\n viewport.scrollTop(newPosition);\r\n }\r\n viewport.synthetic = null;\r\n });\r\n return true;\r\n }\r\n viewport.synthetic = null;\r\n }\r\n\r\n function resizeAndScrollHandler() {\r\n if (handleInertia && fixInertia()) {\r\n return;\r\n }\r\n if (!$rootScope.$$phase && !adapter.isLoading && !adapter.disabled) {\r\n\r\n enqueueFetch(ridActual);\r\n\r\n if (pending.length) {\r\n unbindEvents();\r\n } else {\r\n adapter.calculateProperties();\r\n !$scope.$$phase && $scope.$digest();\r\n }\r\n }\r\n }\r\n\r\n function wheelHandler(event) {\r\n if (!adapter.disabled) {\r\n const scrollTop = viewport[0].scrollTop;\r\n const yMax = viewport[0].scrollHeight - viewport[0].clientHeight;\r\n\r\n if ((scrollTop === 0 && !buffer.bof) || (scrollTop === yMax && !buffer.eof)) {\r\n event.preventDefault();\r\n }\r\n }\r\n }\r\n }\r\n\r\n }\r\n ]);\r\n"],"names":["JQLiteExtras","_classCallCheck","key","value","element","convertToPx","css","getStyle","isWindow","scrollTo","self","direction","elem","_top$left$direction","_slicedToArray","top","left","method","prop","preserve","isValueDefined","call","document","documentElement","getWidthHeight","measure","result","measurements","base","borderA","borderB","computedMarginA","computedMarginB","computedStyle","dirA","dirB","paddingA","paddingB","height","width","padding","border","margin","_width$height$measure","offsetWidth","offsetHeight","getMeasurements","outer","outerfull","style","parseFloat","angular","prototype","name","this","nodeType","obj","location","alert","setInterval","window","getComputedStyle","currentStyle","rs","rsLeft","RegExp","source","test","runtimeStyle","pixelLeft","forEach","before","newElem","children","i","j","parent","ref","contents","prepend","length","after","Error","outerHTML","isNumber","outerHeight","option","outerWidth","offset","docElem","win","box","doc","ownerDocument","arguments","undefined","getBoundingClientRect","defaultView","parentWindow","pageYOffset","scrollTop","clientTop","pageXOffset","scrollLeft","clientLeft","hideClassToken","ElementRoutines","$injector","$q","$animate","has","get","isAngularVersionLessThen1_3","version","major","minor","index","selector","rules","sheet","styleSheets","cssRules","err","insertRule","addRule","wrapper","addClass","removeClass","newElement","previousElement","remove","scope","$destroy","insertElement","deferred","defer","enter","resolve","promise","removeElement","leave","then","OPERATIONS","PREPEND","APPEND","INSERT","REMOVE","NONE","ScrollBuffer","elementRoutines","bufferSize","startIndex","buffer","Object","create","Array","extend","size","reset","eof","bof","first","next","minIndex","maxIndex","minIndexUser","maxIndexUser","append","items","item","insert","Math","max","immutableTop","reverse","min","operation","shiftTop","op","splice","push","unshift","arg1","arg2","indexOf","getAbsMinIndex","incrementMinIndex","decrementMaxIndex","removeElementAnimated","getAbsMaxIndex","effectiveHeight","elements","Number","MAX_VALUE","bottom","NEGATIVE_INFINITY","offsetParent","getItems","filter","getFirstItem","list","getLastItem","CacheProto","_createClass","$index","sort","a","b","argument","_shiftTop","Cache","instance","apply","setPrototypeOf","getOwnPropertyNames","methodName","Padding","template","Node","ELEMENT_NODE","tagName","toLowerCase","concat","find","generateElement","cache","Viewport","viewportController","$rootScope","topPadding","bottomPadding","viewport","container","bufferPadding","getScope","createPaddingElements","applyContainerStyle","bottomDataPos","scrollHeight","topDataPos","bottomVisiblePos","topVisiblePos","e","sibling","insertElementAnimated","shouldLoadBottom","clipBottom","overage","overageHeight","itemHeight","emptySpaceHeight","add","adjustPaddings","shouldLoadTop","clipTop","visibleItemsHeight","reduce","summ","topPaddingHeight","topCount","bottomPaddingHeight","bottomCount","averageItemHeight","adjustTopPadding","adjustBottomPadding","topPaddingHeightAdd","bottomPaddingHeightAdd","onAfterMinIndexSet","topPaddingHeightOld","diff","onAfterPrepend","updates","prepended","paddingHeight","position","newPosition","synthetic","previous","resetTopPadding","clear","resetBottomPadding","removeCacheItem","removeItem","Adapter","$scope","$parse","$attr","doAdjust","reload","isLoading","disabled","viewportScope","startScope","$parent","publicContext","assignAdapter","adapter","generatePublicContext","adapterAttr","replace","adapterOnScope","assign","error","message","_this","publicMethods","bind","publicProps","_loop","_i","property","attr","defineProperty","set","publicPropsImmediate","_loop2","_i2","newItems","options","arg3","applyUpdatesFunc","applyUpdatesIndex","cb","_this2","slice","applyUpdate","_index","isArray","_this3","some","newItem","rowTop","topHeight","topDone","bottomDone","itemTop","isEOF","module","constant","run","elt","jQuery","fn","jquery","registerFor","addCSSRules","directive","restrict","controller","child","console","$timeout","$interval","require","transclude","priority","terminal","link","controllers","linker","match","uiScroll","parseNumber","defaultValue","isFloat","floor","isNaN","parseNumericAttr","datasource","itemName","datasourceName","handleInertia","ridActual","pending","unbindEvents","persistDatasourceIndex","isDatasourceValid","toString","onRenderHandlers","propName","getter","handler","id","defineDatasourceIndex","propUserName","descriptor","getOwnPropertyDescriptor","fetchNext","success","count","fetchPrevious","isInvalid","rid","$$destroyed","off","resizeAndScrollHandler","isElementVisible","insertWrapperContent","insertAfter","createElement","unregisterVisibilityWatcher","$watch","visibilityWatcher","hideElement","promises","clone","transform","tdInitializer","uiScrollTdInitializer","linking","onLink","updatePaddings","animated","all","enqueueFetch","inserted","loading","fetch","processUpdates","toBePrepended","toBeRemoved","removed","$$phase","$digest","w","showElement","calculateProperties","doAdjustAfterFetch","shift","on","oldPosition","requestAnimationFrame","fixInertia","wheelHandler","event","yMax","clientHeight","preventDefault","$on","tryCount","timer","cancel","initialize"],"sourceRoot":""} \ No newline at end of file diff --git a/src/ui-scroll.js b/src/ui-scroll.js index 705f993..7146399 100644 --- a/src/ui-scroll.js +++ b/src/ui-scroll.js @@ -127,9 +127,9 @@ angular.module('ui.scroll', []) function persistDatasourceIndex(datasource, propName) { let getter; // need to postpone min/maxIndexUser processing if the view is empty - if(angular.isNumber(datasource[propName])) { + if (angular.isNumber(datasource[propName])) { getter = datasource[propName]; - if(angular.isNumber(getter)) { + if (angular.isNumber(getter)) { onRenderHandlers = onRenderHandlers.filter(handler => handler.id !== propName); onRenderHandlers.push({ id: propName, @@ -149,7 +149,7 @@ angular.module('ui.scroll', []) Object.defineProperty(datasource, propName, { set: (value) => { getter = value; - if(pending.length && !buffer.length) { + if (pending.length && !buffer.length) { persistDatasourceIndex(datasource, propName); return; } @@ -189,14 +189,14 @@ angular.module('ui.scroll', []) const initialize = () => { let tryCount = 0; - if(!viewport.applyContainerStyle()) { + if (!viewport.applyContainerStyle()) { const timer = $interval(() => { tryCount++; - if(viewport.applyContainerStyle()) { + if (viewport.applyContainerStyle()) { $interval.cancel(timer); doAdjust(); } - if(tryCount * VIEWPORT_POLLING_INTERVAL >= MAX_VIEWPORT_DELAY) { + if (tryCount * VIEWPORT_POLLING_INTERVAL >= MAX_VIEWPORT_DELAY) { $interval.cancel(timer); throw Error(`ui-scroll directive requires a viewport with non-zero height in ${MAX_VIEWPORT_DELAY}ms`); } From e5eadff43fd53a0fff42723becde67ebebb3446b Mon Sep 17 00:00:00 2001 From: Denis Hilt Date: Wed, 19 Apr 2023 01:25:29 +0200 Subject: [PATCH 4/9] Build via github actions --- .github/workflows/build.yml | 38 +++++++++++++++++++++++++++++++++++++ .travis.yml | 28 --------------------------- 2 files changed, 38 insertions(+), 28 deletions(-) create mode 100644 .github/workflows/build.yml delete mode 100644 .travis.yml diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml new file mode 100644 index 0000000..768e602 --- /dev/null +++ b/.github/workflows/build.yml @@ -0,0 +1,38 @@ +name: ui-scroll build + +on: + push: + branches: + - "**" + pull_request: + branches: [ master ] + workflow_dispatch: + inputs: + cause: + description: 'Reason' + required: true + default: 'Manual triggering' + +jobs: + build: + runs-on: ubuntu-latest + strategy: + matrix: + node-version: [18.x] + steps: + - name: Dispatched? + if: ${{ github.event_name == 'workflow_dispatch' }} + run: | + echo "This is dispatched" + echo "Build reason: ${{ github.event.inputs.cause }}" + + - name: Checkout + uses: actions/checkout@v3 + + - name: Use Node.js ${{ matrix.node-version }} + uses: actions/setup-node@v3 + with: + node-version: ${{ matrix.node-version }} + + - run: npm ci + - run: npm test diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index 9256c37..0000000 --- a/.travis.yml +++ /dev/null @@ -1,28 +0,0 @@ -language: node_js - -node_js: -- "stable" - -install: -- npm install - -cache: - directories: - - "node_modules" - -addons: - firefox: latest - -services: -- xvfb - -script: -- npm run build - -deploy: - provider: pages - skip_cleanup: true - github_token: $github_token - local_dir: ./ - on: - branch: master From f91fa8d6b8a67b04cd56ced11599e6cd843c5ab6 Mon Sep 17 00:00:00 2001 From: Denis Hilt Date: Wed, 19 Apr 2023 01:46:47 +0200 Subject: [PATCH 5/9] Environment fixes --- .github/workflows/build.yml | 20 ++++++++++---------- .npmignore | 2 +- README.md | 5 ++--- bower.json | 4 ++-- test/config/karma.conf.js | 2 +- 5 files changed, 16 insertions(+), 17 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 768e602..35e2117 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -1,9 +1,6 @@ name: ui-scroll build on: - push: - branches: - - "**" pull_request: branches: [ master ] workflow_dispatch: @@ -16,9 +13,7 @@ on: jobs: build: runs-on: ubuntu-latest - strategy: - matrix: - node-version: [18.x] + timeout-minutes: 10 steps: - name: Dispatched? if: ${{ github.event_name == 'workflow_dispatch' }} @@ -29,10 +24,15 @@ jobs: - name: Checkout uses: actions/checkout@v3 - - name: Use Node.js ${{ matrix.node-version }} + - name: Use Node.js uses: actions/setup-node@v3 with: - node-version: ${{ matrix.node-version }} + node-version: 18 - - run: npm ci - - run: npm test + - name: Install dependencies + run: npm ci + + - name: Run tests + env: + GITHUB: true + run: npm test diff --git a/.npmignore b/.npmignore index c8a70c4..0514548 100644 --- a/.npmignore +++ b/.npmignore @@ -3,9 +3,9 @@ /src /temp /test +/.github .babelrc .gitignore .jshintrc .npmignore -.travis.yml webpack.config.js diff --git a/README.md b/README.md index 64ca8dd..1197a3c 100644 --- a/README.md +++ b/README.md @@ -1,9 +1,8 @@ ### UI Scroll - [AngularJS](http://angularjs.org/) directive to provide infinite scroll over a limited element buffer -[![Build Status](https://travis-ci.org/angular-ui/ui-scroll.svg?branch=master)](https://travis-ci.org/angular-ui/ui-scroll) -[![npm version](https://badge.fury.io/js/angular-ui-scroll.svg)](http://badge.fury.io/js/angular-ui-scroll) +[![Build Status](https://github.com/angular-ui/ui-scroll/actions/workflows/ci.yml/badge.svg)](https://github.com/angular-ui/ui-scroll/actions/workflows/ci.yml) +[![npm version](https://badge.fury.io/js/angular-ui-scroll.svg)](https://www.npmjs.com/package/angular-ui-scroll) [![Bower version](https://badge.fury.io/bo/angular-ui-scroll.svg)](http://badge.fury.io/bo/angular-ui-scroll) -[![Join the chat at https://gitter.im/angular-ui/ui-scroll](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/angular-ui/ui-scroll?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)

    looking for next Angular version? try ngx-ui-scroll diff --git a/bower.json b/bower.json index 3f8938f..cf3a85c 100644 --- a/bower.json +++ b/bower.json @@ -27,12 +27,12 @@ "src", "temp", "test", + ".github", ".gitignore", ".jshintrc", ".npmignore", - ".travis.yml", "Gruntfile.js", "package.json", "webpack.config.js" ] -} +} \ No newline at end of file diff --git a/test/config/karma.conf.js b/test/config/karma.conf.js index 76ede4b..0212f24 100644 --- a/test/config/karma.conf.js +++ b/test/config/karma.conf.js @@ -36,7 +36,7 @@ module.exports = function (config) { keepalive: ENV === 'development', - browsers: process.env.TRAVIS ? + browsers: process.env.GITHUB ? ['Firefox'] : [chrome], From ec459de281cf7a4f75f0779ea2354f3e40053923 Mon Sep 17 00:00:00 2001 From: Denis Hilt Date: Wed, 19 Apr 2023 13:23:09 +0200 Subject: [PATCH 6/9] Puppeteer on CI --- .github/workflows/build.yml | 8 +- package-lock.json | 783 +++++++++++++++++++++++++++++++++--- package.json | 3 +- test/config/karma.conf.js | 29 +- 4 files changed, 751 insertions(+), 72 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 35e2117..90f1514 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -1,8 +1,9 @@ name: ui-scroll build on: - pull_request: - branches: [ master ] + push: + branches: + - "**" workflow_dispatch: inputs: cause: @@ -34,5 +35,6 @@ jobs: - name: Run tests env: - GITHUB: true + CI: true + BROWSER: headless run: npm test diff --git a/package-lock.json b/package-lock.json index 5b04ecf..080c916 100644 --- a/package-lock.json +++ b/package-lock.json @@ -23,6 +23,7 @@ "karma-sourcemap-loader": "^0.3.7", "karma-webpack": "^5.0.0", "npm-run-all": "^4.1.2", + "puppeteer": "^19.9.1", "terser-webpack-plugin": "^4.2.2", "webpack": "^5.79.0", "webpack-cli": "^5.0.1", @@ -1817,6 +1818,136 @@ "url": "https://github.com/sponsors/isaacs" } }, + "node_modules/@puppeteer/browsers": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/@puppeteer/browsers/-/browsers-0.4.1.tgz", + "integrity": "sha512-4IICvy1McAkT/HyNZHIs7sp8ngBX1dmO0TPQ+FWq9ATQMqI8p+Ulm5A3kS2wYDh5HDHHkYrrETOu6rlj64VuTw==", + "dev": true, + "dependencies": { + "debug": "4.3.4", + "extract-zip": "2.0.1", + "https-proxy-agent": "5.0.1", + "progress": "2.0.3", + "proxy-from-env": "1.1.0", + "tar-fs": "2.1.1", + "unbzip2-stream": "1.4.3", + "yargs": "17.7.1" + }, + "bin": { + "browsers": "lib/cjs/main-cli.js" + }, + "engines": { + "node": ">=14.1.0" + }, + "peerDependencies": { + "typescript": ">= 4.7.4" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@puppeteer/browsers/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@puppeteer/browsers/node_modules/cliui": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", + "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", + "dev": true, + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@puppeteer/browsers/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@puppeteer/browsers/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/@puppeteer/browsers/node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/@puppeteer/browsers/node_modules/y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/@puppeteer/browsers/node_modules/yargs": { + "version": "17.7.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.1.tgz", + "integrity": "sha512-cwiTb08Xuv5fqF4AovYacTFNxk62th7LKJ6BL9IGUpTJrWoU7/7WdQGTP2SjKf1dUNBGzDd28p/Yfs/GI6JrLw==", + "dev": true, + "dependencies": { + "cliui": "^8.0.1", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.1.1" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@puppeteer/browsers/node_modules/yargs-parser": { + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", + "dev": true, + "engines": { + "node": ">=12" + } + }, "node_modules/@types/body-parser": { "version": "1.19.2", "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.2.tgz", @@ -2002,6 +2133,16 @@ "@types/node": "*" } }, + "node_modules/@types/yauzl": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.10.0.tgz", + "integrity": "sha512-Cn6WYCm0tXv8p6k+A8PvbDG763EDpBoTzHdA+Q/MF6H3sapGjCm9NzoaJncJS9tUKSuCoDs9XHxYYsQDgxR6kw==", + "dev": true, + "optional": true, + "dependencies": { + "@types/node": "*" + } + }, "node_modules/@webassemblyjs/ast": { "version": "1.11.1", "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.1.tgz", @@ -2244,6 +2385,18 @@ "integrity": "sha512-QbJ0NTQ/I9DI3uSJA4cbexiwQeRAfjPScqIbSjUDd9TOrcg6pTkdgziesOqxBMBzit8vFCTwrP27t13vFOORRA==", "dev": true }, + "node_modules/agent-base": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "dev": true, + "dependencies": { + "debug": "4" + }, + "engines": { + "node": ">= 6.0.0" + } + }, "node_modules/aggregate-error": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", @@ -2340,6 +2493,15 @@ "ansi-html": "bin/ansi-html" } }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, "node_modules/ansi-styles": { "version": "3.2.1", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", @@ -2365,6 +2527,12 @@ "node": ">= 8" } }, + "node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, "node_modules/array-buffer-byte-length": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.0.tgz", @@ -2499,6 +2667,26 @@ "node": ">= 0.6.0" } }, + "node_modules/base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, "node_modules/base64id": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/base64id/-/base64id-2.0.0.tgz", @@ -2532,6 +2720,40 @@ "node": ">=8" } }, + "node_modules/bl": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", + "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", + "dev": true, + "dependencies": { + "buffer": "^5.5.0", + "inherits": "^2.0.4", + "readable-stream": "^3.4.0" + } + }, + "node_modules/bl/node_modules/readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "dev": true, + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/bl/node_modules/string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "dev": true, + "dependencies": { + "safe-buffer": "~5.2.0" + } + }, "node_modules/blob": { "version": "0.0.5", "resolved": "https://registry.npmjs.org/blob/-/blob-0.0.5.tgz", @@ -2639,6 +2861,39 @@ "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" } }, + "node_modules/buffer": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } + }, + "node_modules/buffer-crc32": { + "version": "0.2.13", + "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", + "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==", + "dev": true, + "engines": { + "node": "*" + } + }, "node_modules/buffer-from": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", @@ -2729,6 +2984,15 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, "node_modules/camelcase": { "version": "5.3.1", "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", @@ -2817,6 +3081,18 @@ "node": ">=6.0" } }, + "node_modules/chromium-bidi": { + "version": "0.4.6", + "resolved": "https://registry.npmjs.org/chromium-bidi/-/chromium-bidi-0.4.6.tgz", + "integrity": "sha512-TQOkWRaLI/IWvoP8XC+7jO4uHTIiAUiklXU1T0qszlUFEai9LgKXIBXy3pOS3EnQZ3bQtMbKUPkug0fTAEHCSw==", + "dev": true, + "dependencies": { + "mitt": "3.0.0" + }, + "peerDependencies": { + "devtools-protocol": "*" + } + }, "node_modules/clean-stack": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", @@ -2865,27 +3141,6 @@ "wrap-ansi": "^6.2.0" } }, - "node_modules/cliui/node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/cliui/node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/clone-deep": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz", @@ -3182,6 +3437,51 @@ "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", "dev": true }, + "node_modules/cosmiconfig": { + "version": "8.1.3", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.1.3.tgz", + "integrity": "sha512-/UkO2JKI18b5jVMJUp0lvKFMpa/Gye+ZgZjKD+DGEN9y7NRcf/nK1A0sp67ONmKtnDCNMS44E6jrk0Yc3bDuUw==", + "dev": true, + "dependencies": { + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "parse-json": "^5.0.0", + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/d-fischer" + } + }, + "node_modules/cosmiconfig/node_modules/parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cross-fetch": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.5.tgz", + "integrity": "sha512-lvb1SBsI0Z7GDwmuid+mU3kWVBwTVUbe7S0H52yaaAdQOXq2YktTCZdlAcNKFzE6QtRz0snpw9bNiPeOIkkQvw==", + "dev": true, + "dependencies": { + "node-fetch": "2.6.7" + } + }, "node_modules/cross-spawn": { "version": "6.0.5", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", @@ -3389,6 +3689,12 @@ "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==", "dev": true }, + "node_modules/devtools-protocol": { + "version": "0.0.1107588", + "resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.1107588.tgz", + "integrity": "sha512-yIR+pG9x65Xko7bErCUSQaDLrO/P1p3JUzEk7JCU4DowPcGHkTGUGQapcfcLc4qj0UaALwZ+cr0riFgiqpixcg==", + "dev": true + }, "node_modules/di": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/di/-/di-0.0.1.tgz", @@ -3529,6 +3835,15 @@ "node": ">= 0.8" } }, + "node_modules/end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "dev": true, + "dependencies": { + "once": "^1.4.0" + } + }, "node_modules/engine.io": { "version": "3.6.1", "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-3.6.1.tgz", @@ -4069,6 +4384,41 @@ "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", "dev": true }, + "node_modules/extract-zip": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-2.0.1.tgz", + "integrity": "sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==", + "dev": true, + "dependencies": { + "debug": "^4.1.1", + "get-stream": "^5.1.0", + "yauzl": "^2.10.0" + }, + "bin": { + "extract-zip": "cli.js" + }, + "engines": { + "node": ">= 10.17.0" + }, + "optionalDependencies": { + "@types/yauzl": "^2.9.1" + } + }, + "node_modules/extract-zip/node_modules/get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "dev": true, + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/fast-deep-equal": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", @@ -4127,6 +4477,15 @@ "node": ">=0.8.0" } }, + "node_modules/fd-slicer": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", + "integrity": "sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==", + "dev": true, + "dependencies": { + "pend": "~1.2.0" + } + }, "node_modules/fill-range": { "version": "7.0.1", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", @@ -4279,6 +4638,12 @@ "node": ">=0.10.0" } }, + "node_modules/fs-constants": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", + "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==", + "dev": true + }, "node_modules/fs-extra": { "version": "8.1.0", "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", @@ -4780,6 +5145,19 @@ } } }, + "node_modules/https-proxy-agent": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", + "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", + "dev": true, + "dependencies": { + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, "node_modules/human-signals": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", @@ -4801,6 +5179,26 @@ "node": ">=0.10.0" } }, + "node_modules/ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, "node_modules/ignore": { "version": "5.2.4", "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz", @@ -4810,6 +5208,31 @@ "node": ">= 4" } }, + "node_modules/import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "dev": true, + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/import-fresh/node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true, + "engines": { + "node": ">=4" + } + }, "node_modules/import-local": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz", @@ -5337,6 +5760,18 @@ "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", "dev": true }, + "node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, "node_modules/jsesc": { "version": "2.5.2", "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", @@ -5564,6 +5999,12 @@ "shell-quote": "^1.7.3" } }, + "node_modules/lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", + "dev": true + }, "node_modules/load-json-file": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", @@ -5872,6 +6313,12 @@ "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", "dev": true }, + "node_modules/mitt": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/mitt/-/mitt-3.0.0.tgz", + "integrity": "sha512-7dX2/10ITVyqh4aOSVI9gdape+t9l2/8QxHrFmUXu4EEUpdlxl6RudZUPZoc+zuY2hk1j7XxVroIVIan/pD/SQ==", + "dev": true + }, "node_modules/mkdirp": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", @@ -5884,6 +6331,12 @@ "node": ">=10" } }, + "node_modules/mkdirp-classic": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz", + "integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==", + "dev": true + }, "node_modules/ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", @@ -5924,6 +6377,26 @@ "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", "dev": true }, + "node_modules/node-fetch": { + "version": "2.6.7", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", + "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", + "dev": true, + "dependencies": { + "whatwg-url": "^5.0.0" + }, + "engines": { + "node": "4.x || >=6.0.0" + }, + "peerDependencies": { + "encoding": "^0.1.0" + }, + "peerDependenciesMeta": { + "encoding": { + "optional": true + } + } + }, "node_modules/node-forge": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.3.1.tgz", @@ -6216,6 +6689,18 @@ "node": ">=6" } }, + "node_modules/parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, "node_modules/parse-json": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", @@ -6304,6 +6789,12 @@ "node": ">=8" } }, + "node_modules/pend": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", + "integrity": "sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==", + "dev": true + }, "node_modules/picocolors": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", @@ -6382,6 +6873,15 @@ "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", "dev": true }, + "node_modules/progress": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", + "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", + "dev": true, + "engines": { + "node": ">=0.4.0" + } + }, "node_modules/promise-inflight": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", @@ -6401,6 +6901,22 @@ "node": ">= 0.10" } }, + "node_modules/proxy-from-env": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", + "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==", + "dev": true + }, + "node_modules/pump": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "dev": true, + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, "node_modules/punycode": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz", @@ -6410,6 +6926,72 @@ "node": ">=6" } }, + "node_modules/puppeteer": { + "version": "19.9.1", + "resolved": "https://registry.npmjs.org/puppeteer/-/puppeteer-19.9.1.tgz", + "integrity": "sha512-Ii8yZySNdpPzeKAK6ROFQ+gAi04igoZ0cPsBE1LW9fmzkqQTqbJpEGhJ/5gBS8oVqkQ2CNFA4BskJl75zaWWgA==", + "dev": true, + "hasInstallScript": true, + "dependencies": { + "@puppeteer/browsers": "0.4.1", + "cosmiconfig": "8.1.3", + "https-proxy-agent": "5.0.1", + "progress": "2.0.3", + "proxy-from-env": "1.1.0", + "puppeteer-core": "19.9.1" + } + }, + "node_modules/puppeteer-core": { + "version": "19.9.1", + "resolved": "https://registry.npmjs.org/puppeteer-core/-/puppeteer-core-19.9.1.tgz", + "integrity": "sha512-46JGqhqTgYO5DuUMRGUiMCKM/86uHMsMCK7Fw7cbY/p+eCKLIPGVyQyI/E0UcGYa0+OH3dz0ResaDdHxqCgDDw==", + "dev": true, + "dependencies": { + "@puppeteer/browsers": "0.4.1", + "chromium-bidi": "0.4.6", + "cross-fetch": "3.1.5", + "debug": "4.3.4", + "devtools-protocol": "0.0.1107588", + "extract-zip": "2.0.1", + "https-proxy-agent": "5.0.1", + "proxy-from-env": "1.1.0", + "tar-fs": "2.1.1", + "unbzip2-stream": "1.4.3", + "ws": "8.13.0" + }, + "engines": { + "node": ">=14.14.0" + }, + "peerDependencies": { + "typescript": ">= 4.7.4" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/puppeteer-core/node_modules/ws": { + "version": "8.13.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.13.0.tgz", + "integrity": "sha512-x9vcZYTrFPC7aSIbj7sRCYo7L/Xb8Iy+pW0ng0wt2vCJv7M9HOMy0UoN3rr+IFC7hb7vXoqS+P9ktyLLLhO+LA==", + "dev": true, + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": ">=5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, "node_modules/qjobs": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/qjobs/-/qjobs-1.2.0.tgz", @@ -7385,27 +7967,6 @@ "node": ">=8" } }, - "node_modules/string-width/node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/string-width/node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/string.prototype.padend": { "version": "3.1.4", "resolved": "https://registry.npmjs.org/string.prototype.padend/-/string.prototype.padend-3.1.4.tgz", @@ -7468,6 +8029,18 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/strip-bom": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", @@ -7548,6 +8121,63 @@ "node": ">=10" } }, + "node_modules/tar-fs": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.1.tgz", + "integrity": "sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng==", + "dev": true, + "dependencies": { + "chownr": "^1.1.1", + "mkdirp-classic": "^0.5.2", + "pump": "^3.0.0", + "tar-stream": "^2.1.4" + } + }, + "node_modules/tar-fs/node_modules/chownr": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", + "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==", + "dev": true + }, + "node_modules/tar-stream": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz", + "integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==", + "dev": true, + "dependencies": { + "bl": "^4.0.3", + "end-of-stream": "^1.4.1", + "fs-constants": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^3.1.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/tar-stream/node_modules/readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "dev": true, + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/tar-stream/node_modules/string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "dev": true, + "dependencies": { + "safe-buffer": "~5.2.0" + } + }, "node_modules/tar/node_modules/minipass": { "version": "4.2.8", "resolved": "https://registry.npmjs.org/minipass/-/minipass-4.2.8.tgz", @@ -7626,6 +8256,12 @@ "url": "https://opencollective.com/webpack" } }, + "node_modules/through": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==", + "dev": true + }, "node_modules/thunky": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz", @@ -7695,6 +8331,12 @@ "node": ">=0.6" } }, + "node_modules/tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", + "dev": true + }, "node_modules/type-is": { "version": "1.6.18", "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", @@ -7746,6 +8388,16 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/unbzip2-stream": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/unbzip2-stream/-/unbzip2-stream-1.4.3.tgz", + "integrity": "sha512-mlExGW4w71ebDJviH16lQLtZS32VKqsSfk80GCfUlwT/4/hNRFsoscrF/c++9xinkMzECL1uL9DDwXqFWkruPg==", + "dev": true, + "dependencies": { + "buffer": "^5.2.1", + "through": "^2.3.8" + } + }, "node_modules/unicode-canonical-property-names-ecmascript": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz", @@ -7935,6 +8587,12 @@ "minimalistic-assert": "^1.0.0" } }, + "node_modules/webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", + "dev": true + }, "node_modules/webpack": { "version": "5.79.0", "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.79.0.tgz", @@ -8429,6 +9087,16 @@ "node": ">=0.8.0" } }, + "node_modules/whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "dev": true, + "dependencies": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + }, "node_modules/which": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", @@ -8503,15 +9171,6 @@ "node": ">=8" } }, - "node_modules/wrap-ansi/node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, "node_modules/wrap-ansi/node_modules/ansi-styles": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", @@ -8545,18 +9204,6 @@ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, - "node_modules/wrap-ansi/node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", @@ -8640,6 +9287,16 @@ "node": ">=6" } }, + "node_modules/yauzl": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", + "integrity": "sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==", + "dev": true, + "dependencies": { + "buffer-crc32": "~0.2.3", + "fd-slicer": "~1.1.0" + } + }, "node_modules/yeast": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/yeast/-/yeast-0.1.2.tgz", diff --git a/package.json b/package.json index 9775377..9095484 100644 --- a/package.json +++ b/package.json @@ -54,6 +54,7 @@ "karma-sourcemap-loader": "^0.3.7", "karma-webpack": "^5.0.0", "npm-run-all": "^4.1.2", + "puppeteer": "^19.9.1", "terser-webpack-plugin": "^4.2.2", "webpack": "^5.79.0", "webpack-cli": "^5.0.1", @@ -76,4 +77,4 @@ "scroller", "scrolling" ] -} \ No newline at end of file +} diff --git a/test/config/karma.conf.js b/test/config/karma.conf.js index 0212f24..226d54f 100644 --- a/test/config/karma.conf.js +++ b/test/config/karma.conf.js @@ -1,6 +1,26 @@ -const chrome = process.platform === 'linux' ? 'Chromium' : 'Chrome'; +// BROWSER env variable could be "headless", "firefox" or "chrome" (default) + +const browsers = []; +if (process.env.BROWSER === 'headless') { + process.env.CHROME_BIN = require('puppeteer').executablePath(); + browsers.push('ChromeHeadlessSized'); +} else if (process.env.BROWSERS === "firefox") { + browsers.push('FirefoxSized'); +} else { + browsers.push(process.platform === 'linux' ? ['ChromiumSized'] : ['ChromeSized']); +} + +const flags = ['--window-size=1024,768']; +const customLaunchers = { + 'ChromeHeadlessSized': { base: 'ChromeHeadless', flags }, + 'ChromiumSized': { base: 'Chromium', flags }, + 'ChromeSized': { base: 'Chrome', flags }, + 'FirefoxSized': { base: 'Firefox', flags } +}; -const ENV = (process.env.npm_lifecycle_event.indexOf('dev') === 0) ? 'development' : 'production'; +const ENV = (!process.env.CI && process.env.npm_lifecycle_event.indexOf('dev') === 0) ? + 'development' : + 'production'; const webpackSettings = ENV === 'development' ? { preprocessors: { @@ -36,9 +56,8 @@ module.exports = function (config) { keepalive: ENV === 'development', - browsers: process.env.GITHUB ? - ['Firefox'] : - [chrome], + browsers, + customLaunchers, captureTimeout: 60000, From 29718502af8894127c97fddd0f892853a4454068 Mon Sep 17 00:00:00 2001 From: Denis Hilt Date: Wed, 19 Apr 2023 13:53:10 +0200 Subject: [PATCH 7/9] Bump babel and karma dependencies --- package-lock.json | 1331 ++++++++++++++++++--------------------------- package.json | 18 +- 2 files changed, 524 insertions(+), 825 deletions(-) diff --git a/package-lock.json b/package-lock.json index 080c916..6434195 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,18 +9,18 @@ "version": "1.8.2", "license": "MIT", "devDependencies": { - "@babel/core": "^7.3.3", - "@babel/preset-env": "^7.3.1", - "babel-loader": "^8.1.0", + "@babel/core": "^7.21.4", + "@babel/preset-env": "^7.21.4", + "babel-loader": "^9.1.2", "clean-webpack-plugin": "^4.0.0", "copy-webpack-plugin": "^6.1.1", "jasmine-core": "^2.8.0", "jshint": "^2.10.1", - "karma": "^5.0.5", - "karma-chrome-launcher": "^2.2.0", - "karma-firefox-launcher": "^1.1.0", - "karma-jasmine": "^2.0.1", - "karma-sourcemap-loader": "^0.3.7", + "karma": "^6.4.1", + "karma-chrome-launcher": "^3.1.1", + "karma-firefox-launcher": "^2.1.2", + "karma-jasmine": "^5.1.0", + "karma-sourcemap-loader": "^0.4.0", "karma-webpack": "^5.0.0", "npm-run-all": "^4.1.2", "puppeteer": "^19.9.1", @@ -1626,6 +1626,15 @@ "node": ">=6.9.0" } }, + "node_modules/@colors/colors": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.5.0.tgz", + "integrity": "sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==", + "dev": true, + "engines": { + "node": ">=0.1.90" + } + }, "node_modules/@discoveryjs/json-ext": { "version": "0.5.7", "resolved": "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.5.7.tgz", @@ -1803,21 +1812,6 @@ "node": ">=10" } }, - "node_modules/@npmcli/move-file/node_modules/rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "dev": true, - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, "node_modules/@puppeteer/browsers": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/@puppeteer/browsers/-/browsers-0.4.1.tgz", @@ -1848,21 +1842,6 @@ } } }, - "node_modules/@puppeteer/browsers/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, "node_modules/@puppeteer/browsers/node_modules/cliui": { "version": "8.0.1", "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", @@ -1877,50 +1856,6 @@ "node": ">=12" } }, - "node_modules/@puppeteer/browsers/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/@puppeteer/browsers/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/@puppeteer/browsers/node_modules/wrap-ansi": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/@puppeteer/browsers/node_modules/y18n": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", - "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", - "dev": true, - "engines": { - "node": ">=10" - } - }, "node_modules/@puppeteer/browsers/node_modules/yargs": { "version": "17.7.1", "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.1.tgz", @@ -1948,6 +1883,12 @@ "node": ">=12" } }, + "node_modules/@socket.io/component-emitter": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@socket.io/component-emitter/-/component-emitter-3.1.0.tgz", + "integrity": "sha512-+9jVqKhRSpsc591z5vX+X5Yyw+he/HCB4iQ/RYxw35CEPaY1gnsNE43nf9n9AaYjAQrTiI/mOwKUKdUs9vf7Xg==", + "dev": true + }, "node_modules/@types/body-parser": { "version": "1.19.2", "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.2.tgz", @@ -1986,6 +1927,21 @@ "@types/node": "*" } }, + "node_modules/@types/cookie": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/@types/cookie/-/cookie-0.4.1.tgz", + "integrity": "sha512-XW/Aa8APYr6jSVVA1y/DEIZX0/GMKLEVekNG727R8cs56ahETkRAy/3DR7+fJyh7oUgGwNQaRfXCun0+KbWY7Q==", + "dev": true + }, + "node_modules/@types/cors": { + "version": "2.8.13", + "resolved": "https://registry.npmjs.org/@types/cors/-/cors-2.8.13.tgz", + "integrity": "sha512-RG8AStHlUiV5ysZQKq97copd2UmVYw3/pRMLefISZ3S1hK104Cwm7iLQ3fTKx+lsUH2CE8FlLaYeEA2LSeqYUA==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, "node_modules/@types/eslint": { "version": "8.37.0", "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.37.0.tgz", @@ -2007,9 +1963,9 @@ } }, "node_modules/@types/estree": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.0.tgz", - "integrity": "sha512-WulqXMDUTYAXCjZnk6JtIHPigp55cVtDgDrO2gHRwhyJto21+1zbVCtOYB2L1F9w4qCQ0rOGWBnBe0FNTiEJIQ==", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.1.tgz", + "integrity": "sha512-LG4opVs2ANWZ1TJoKc937iMmNstM/d0ae1vNbnBvBhqCSezgVUOzcLCqbI5elV8Vy6WKwKjaqR+zO9VKirBBCA==", "dev": true }, "node_modules/@types/express": { @@ -2379,12 +2335,6 @@ "acorn": "^8" } }, - "node_modules/after": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/after/-/after-0.8.2.tgz", - "integrity": "sha512-QbJ0NTQ/I9DI3uSJA4cbexiwQeRAfjPScqIbSjUDd9TOrcg6pTkdgziesOqxBMBzit8vFCTwrP27t13vFOORRA==", - "dev": true - }, "node_modules/agent-base": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", @@ -2411,14 +2361,14 @@ } }, "node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "version": "8.12.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", + "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", "dev": true, "dependencies": { "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", "uri-js": "^4.2.2" }, "funding": { @@ -2443,35 +2393,16 @@ } } }, - "node_modules/ajv-formats/node_modules/ajv": { - "version": "8.12.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", - "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", + "node_modules/ajv-keywords": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", + "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", "dev": true, "dependencies": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" + "fast-deep-equal": "^3.1.3" }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/ajv-formats/node_modules/json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", - "dev": true - }, - "node_modules/ajv-keywords": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", - "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", - "dev": true, "peerDependencies": { - "ajv": "^6.9.1" + "ajv": "^8.8.2" } }, "node_modules/angular": { @@ -2570,12 +2501,6 @@ "node": ">=0.10.0" } }, - "node_modules/arraybuffer.slice": { - "version": "0.0.7", - "resolved": "https://registry.npmjs.org/arraybuffer.slice/-/arraybuffer.slice-0.0.7.tgz", - "integrity": "sha512-wGUIVQXuehL5TCqQun8OW81jGzAWycqzFF8lFp+GOM5BXLYj3bKNsYC4daB7n6XjCqxQA/qgTJ+8ANR3acjrog==", - "dev": true - }, "node_modules/available-typed-arrays": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz", @@ -2589,22 +2514,20 @@ } }, "node_modules/babel-loader": { - "version": "8.3.0", - "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-8.3.0.tgz", - "integrity": "sha512-H8SvsMF+m9t15HNLMipppzkC+Y2Yq+v3SonZyU70RBL/h1gxPkH08Ot8pEE9Z4Kd+czyWJClmFS8qzIP9OZ04Q==", + "version": "9.1.2", + "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-9.1.2.tgz", + "integrity": "sha512-mN14niXW43tddohGl8HPu5yfQq70iUThvFL/4QzESA7GcZoC0eVOhvWdQ8+3UlSjaDE9MVtsW9mxDY07W7VpVA==", "dev": true, "dependencies": { - "find-cache-dir": "^3.3.1", - "loader-utils": "^2.0.0", - "make-dir": "^3.1.0", - "schema-utils": "^2.6.5" + "find-cache-dir": "^3.3.2", + "schema-utils": "^4.0.0" }, "engines": { - "node": ">= 8.9" + "node": ">= 14.15.0" }, "peerDependencies": { - "@babel/core": "^7.0.0", - "webpack": ">=2" + "@babel/core": "^7.12.0", + "webpack": ">=5" } }, "node_modules/babel-plugin-polyfill-corejs2": { @@ -2646,27 +2569,12 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/backo2": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/backo2/-/backo2-1.0.2.tgz", - "integrity": "sha512-zj6Z6M7Eq+PBZ7PQxl5NT665MvJdAkzp0f60nAJ+sLaSCBPMwVak5ZegFbgVCzFcCJTKFoMizvM5Ld7+JrRJHA==", - "dev": true - }, "node_modules/balanced-match": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", "dev": true }, - "node_modules/base64-arraybuffer": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-0.1.4.tgz", - "integrity": "sha512-a1eIFi4R9ySrbiMuyTGx5e92uRH5tQY6kArNcFaKBUleIoLjdjBg7Zxm3Mqm3Kmkf27HLR/1fnxX9q8GQ7Iavg==", - "dev": true, - "engines": { - "node": ">= 0.6.0" - } - }, "node_modules/base64-js": { "version": "1.5.1", "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", @@ -2754,12 +2662,6 @@ "safe-buffer": "~5.2.0" } }, - "node_modules/blob": { - "version": "0.0.5", - "resolved": "https://registry.npmjs.org/blob/-/blob-0.0.5.tgz", - "integrity": "sha512-gaqbzQPqOoamawKg0LGVd7SzLgXS+JH61oWprSLH+P+abTczqJbhTR8CmJ2u9/bUYNmHTGJx/UEmn6doAvvuig==", - "dev": true - }, "node_modules/body-parser": { "version": "1.20.2", "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.2.tgz", @@ -2950,21 +2852,6 @@ "node": ">=10" } }, - "node_modules/cacache/node_modules/rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "dev": true, - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, "node_modules/cacache/node_modules/yallist": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", @@ -2993,15 +2880,6 @@ "node": ">=6" } }, - "node_modules/camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", - "dev": true, - "engines": { - "node": ">=6" - } - }, "node_modules/caniuse-lite": { "version": "1.0.30001480", "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001480.tgz", @@ -3131,14 +3009,14 @@ } }, "node_modules/cliui": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", - "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", "dev": true, "dependencies": { "string-width": "^4.2.0", "strip-ansi": "^6.0.0", - "wrap-ansi": "^6.2.0" + "wrap-ansi": "^7.0.0" } }, "node_modules/clone-deep": { @@ -3176,15 +3054,6 @@ "integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==", "dev": true }, - "node_modules/colors": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz", - "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==", - "dev": true, - "engines": { - "node": ">=0.1.90" - } - }, "node_modules/commander": { "version": "2.20.3", "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", @@ -3197,24 +3066,6 @@ "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==", "dev": true }, - "node_modules/component-bind": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/component-bind/-/component-bind-1.0.0.tgz", - "integrity": "sha512-WZveuKPeKAG9qY+FkYDeADzdHyTYdIboXS59ixDeRJL5ZhxpqUnxSOwop4FQjMsiYm3/Or8cegVbpAHNA7pHxw==", - "dev": true - }, - "node_modules/component-emitter": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", - "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==", - "dev": true - }, - "node_modules/component-inherit": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/component-inherit/-/component-inherit-0.0.3.tgz", - "integrity": "sha512-w+LhYREhatpVqTESyGFg3NlP6Iu0kEKUHETY9GoZP/pQyW4mHFZuFWRUCIqVPZ36ueVLtoOEZaAqbCF2RDndaA==", - "dev": true - }, "node_modules/compressible": { "version": "2.0.18", "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz", @@ -3400,6 +3251,37 @@ "webpack": "^4.37.0 || ^5.0.0" } }, + "node_modules/copy-webpack-plugin/node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/copy-webpack-plugin/node_modules/ajv-keywords": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "dev": true, + "peerDependencies": { + "ajv": "^6.9.1" + } + }, + "node_modules/copy-webpack-plugin/node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, "node_modules/copy-webpack-plugin/node_modules/schema-utils": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.2.tgz", @@ -3437,6 +3319,19 @@ "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", "dev": true }, + "node_modules/cors": { + "version": "2.8.5", + "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz", + "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==", + "dev": true, + "dependencies": { + "object-assign": "^4", + "vary": "^1" + }, + "engines": { + "node": ">= 0.10" + } + }, "node_modules/cosmiconfig": { "version": "8.1.3", "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.1.3.tgz", @@ -3455,24 +3350,6 @@ "url": "https://github.com/sponsors/d-fischer" } }, - "node_modules/cosmiconfig/node_modules/parse-json": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", - "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.0.0", - "error-ex": "^1.3.1", - "json-parse-even-better-errors": "^2.3.0", - "lines-and-columns": "^1.1.6" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/cross-fetch": { "version": "3.1.5", "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.5.tgz", @@ -3545,15 +3422,6 @@ } } }, - "node_modules/decamelize": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/default-gateway": { "version": "6.0.3", "resolved": "https://registry.npmjs.org/default-gateway/-/default-gateway-6.0.3.tgz", @@ -3655,13 +3523,16 @@ "node": ">=6" } }, - "node_modules/del/node_modules/pify": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", - "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", + "node_modules/del/node_modules/rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", "dev": true, - "engines": { - "node": ">=6" + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" } }, "node_modules/depd": { @@ -3806,9 +3677,9 @@ "dev": true }, "node_modules/electron-to-chromium": { - "version": "1.4.367", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.367.tgz", - "integrity": "sha512-mNuDxb+HpLhPGUKrg0hSxbTjHWw8EziwkwlJNkFUj3W60ypigLDRVz04vU+VRsJPi8Gub+FDhYUpuTm9xiEwRQ==", + "version": "1.4.368", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.368.tgz", + "integrity": "sha512-e2aeCAixCj9M7nJxdB/wDjO6mbYX+lJJxSJCXDzlr5YPGYVofuJwGN9nKg2o6wWInjX6XmxRinn3AeJMK81ltw==", "dev": true }, "node_modules/emoji-regex": { @@ -3845,77 +3716,54 @@ } }, "node_modules/engine.io": { - "version": "3.6.1", - "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-3.6.1.tgz", - "integrity": "sha512-dfs8EVg/i7QjFsXxn7cCRQ+Wai1G1TlEvHhdYEi80fxn5R1vZ2K661O6v/rezj1FP234SZ14r9CmJke99iYDGg==", + "version": "6.4.1", + "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-6.4.1.tgz", + "integrity": "sha512-JFYQurD/nbsA5BSPmbaOSLa3tSVj8L6o4srSwXXY3NqE+gGUNmmPTbhn8tjzcCtSqhFgIeqef81ngny8JM25hw==", "dev": true, "dependencies": { + "@types/cookie": "^0.4.1", + "@types/cors": "^2.8.12", + "@types/node": ">=10.0.0", "accepts": "~1.3.4", "base64id": "2.0.0", "cookie": "~0.4.1", - "debug": "~4.1.0", - "engine.io-parser": "~2.2.0", - "ws": "~7.4.2" + "cors": "~2.8.5", + "debug": "~4.3.1", + "engine.io-parser": "~5.0.3", + "ws": "~8.11.0" }, "engines": { - "node": ">=8.0.0" + "node": ">=10.0.0" } }, - "node_modules/engine.io-client": { - "version": "3.5.3", - "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-3.5.3.tgz", - "integrity": "sha512-qsgyc/CEhJ6cgMUwxRRtOndGVhIu5hpL5tR4umSpmX/MvkFoIxUTM7oFMDQumHNzlNLwSVy6qhstFPoWTf7dOw==", + "node_modules/engine.io-parser": { + "version": "5.0.6", + "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-5.0.6.tgz", + "integrity": "sha512-tjuoZDMAdEhVnSFleYPCtdL2GXwVTGtNjoeJd9IhIG3C1xs9uwxqRNEu5WpnDZCaozwVlK/nuQhpodhXSIMaxw==", "dev": true, - "dependencies": { - "component-emitter": "~1.3.0", - "component-inherit": "0.0.3", - "debug": "~3.1.0", - "engine.io-parser": "~2.2.0", - "has-cors": "1.1.0", - "indexof": "0.0.1", - "parseqs": "0.0.6", - "parseuri": "0.0.6", - "ws": "~7.4.2", - "xmlhttprequest-ssl": "~1.6.2", - "yeast": "0.1.2" - } - }, - "node_modules/engine.io-client/node_modules/debug": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", - "dev": true, - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/engine.io-client/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true - }, - "node_modules/engine.io-parser": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-2.2.1.tgz", - "integrity": "sha512-x+dN/fBH8Ro8TFwJ+rkB2AmuVw9Yu2mockR/p3W8f8YtExwFgDvBDi0GWyb4ZLkpahtDGZgtr3zLovanJghPqg==", - "dev": true, - "dependencies": { - "after": "0.8.2", - "arraybuffer.slice": "~0.0.7", - "base64-arraybuffer": "0.1.4", - "blob": "0.0.5", - "has-binary2": "~1.0.2" + "engines": { + "node": ">=10.0.0" } }, - "node_modules/engine.io/node_modules/debug": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", - "deprecated": "Debug versions >=3.2.0 <3.2.7 || >=4 <4.3.1 have a low-severity ReDos regression when used in a Node.js environment. It is recommended you upgrade to 3.2.7 or 4.3.1. (https://github.com/visionmedia/debug/issues/797)", + "node_modules/engine.io/node_modules/ws": { + "version": "8.11.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.11.0.tgz", + "integrity": "sha512-HPG3wQd9sNQoT9xHyNCXoDUa+Xw/VevmY9FoHyQ+g+rrMn4j6FB4np7Z0OhdTgjx6MgQLK7jwSy1YecU1+4Asg==", "dev": true, - "dependencies": { - "ms": "^2.1.1" + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": "^5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } } }, "node_modules/enhanced-resolve": { @@ -4186,6 +4034,18 @@ "node": ">= 8" } }, + "node_modules/execa/node_modules/get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/execa/node_modules/path-key": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", @@ -4404,21 +4264,6 @@ "@types/yauzl": "^2.9.1" } }, - "node_modules/extract-zip/node_modules/get-stream": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", - "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", - "dev": true, - "dependencies": { - "pump": "^3.0.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/fast-deep-equal": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", @@ -4626,18 +4471,6 @@ "node": ">= 0.6" } }, - "node_modules/fs-access": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/fs-access/-/fs-access-1.0.1.tgz", - "integrity": "sha512-05cXDIwNbFaoFWaz5gNHlUTbH5whiss/hr/ibzPd4MH3cR4w0ZKeIPiVdbyJurg3O5r/Bjpvn9KOb1/rPMf3nA==", - "dev": true, - "dependencies": { - "null-check": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/fs-constants": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", @@ -4762,12 +4595,15 @@ } }, "node_modules/get-stream": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", - "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", "dev": true, + "dependencies": { + "pump": "^3.0.0" + }, "engines": { - "node": ">=10" + "node": ">=8" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -4916,27 +4752,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/has-binary2": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has-binary2/-/has-binary2-1.0.3.tgz", - "integrity": "sha512-G1LWKhDSvhGeAQ8mPVQlqNcOB2sJdwATtZKl2pDKKHfpf/rYj24lkinxf69blJbnsvtqqNU+L3SL50vzZhXOnw==", - "dev": true, - "dependencies": { - "isarray": "2.0.1" - } - }, - "node_modules/has-binary2/node_modules/isarray": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.1.tgz", - "integrity": "sha512-c2cu3UxbI+b6kR3fy0nRnAhodsvR9dx7U5+znCOzdj6IfP3upFURTr0Xl5BlQZNKZjEtxrmVyfSdeE3O57smoQ==", - "dev": true - }, - "node_modules/has-cors": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/has-cors/-/has-cors-1.1.0.tgz", - "integrity": "sha512-g5VNKdkFuUuVCP9gYfDJHjK2nqdQJ7aDLTnycnc2+RvsOQbuLdF5pm7vuE5J76SEBIQjs4kQY/BWq74JUmjbXA==", - "dev": true - }, "node_modules/has-flag": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", @@ -5224,15 +5039,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/import-fresh/node_modules/resolve-from": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", - "dev": true, - "engines": { - "node": ">=4" - } - }, "node_modules/import-local": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz", @@ -5270,12 +5076,6 @@ "node": ">=8" } }, - "node_modules/indexof": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz", - "integrity": "sha512-i0G7hLJ1z0DE8dsqJa2rycj9dBmNKgXBvotXtZYXakU9oivfB9Uj2ZBC27qqef2U58/ZLwalxa1X/RDCdkHtVg==", - "dev": true - }, "node_modules/infer-owner": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz", @@ -5322,12 +5122,12 @@ } }, "node_modules/ipaddr.js": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", - "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.0.1.tgz", + "integrity": "sha512-1qTgH9NG+IIJ4yfKs2e6Pp1bZg8wbDbKHT21HrLIeYBTRLgMYKnMTPAuI3Lcs61nfx5h1xlXnbJtH1kX5/d/ng==", "dev": true, "engines": { - "node": ">= 0.10" + "node": ">= 10" } }, "node_modules/is-array-buffer": { @@ -5827,9 +5627,9 @@ "dev": true }, "node_modules/json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", "dev": true }, "node_modules/json5": { @@ -5854,34 +5654,35 @@ } }, "node_modules/karma": { - "version": "5.2.3", - "resolved": "https://registry.npmjs.org/karma/-/karma-5.2.3.tgz", - "integrity": "sha512-tHdyFADhVVPBorIKCX8A37iLHxc6RBRphkSoQ+MLKdAtFn1k97tD8WUGi1KlEtDZKL3hui0qhsY9HXUfSNDYPQ==", + "version": "6.4.1", + "resolved": "https://registry.npmjs.org/karma/-/karma-6.4.1.tgz", + "integrity": "sha512-Cj57NKOskK7wtFWSlMvZf459iX+kpYIPXmkNUzP2WAFcA7nhr/ALn5R7sw3w+1udFDcpMx/tuB8d5amgm3ijaA==", "dev": true, "dependencies": { + "@colors/colors": "1.5.0", "body-parser": "^1.19.0", "braces": "^3.0.2", - "chokidar": "^3.4.2", - "colors": "^1.4.0", + "chokidar": "^3.5.1", "connect": "^3.7.0", "di": "^0.0.1", "dom-serialize": "^2.2.1", - "glob": "^7.1.6", - "graceful-fs": "^4.2.4", + "glob": "^7.1.7", + "graceful-fs": "^4.2.6", "http-proxy": "^1.18.1", - "isbinaryfile": "^4.0.6", - "lodash": "^4.17.19", - "log4js": "^6.2.1", - "mime": "^2.4.5", + "isbinaryfile": "^4.0.8", + "lodash": "^4.17.21", + "log4js": "^6.4.1", + "mime": "^2.5.2", "minimatch": "^3.0.4", + "mkdirp": "^0.5.5", "qjobs": "^1.2.0", "range-parser": "^1.2.1", "rimraf": "^3.0.2", - "socket.io": "^2.3.0", + "socket.io": "^4.4.1", "source-map": "^0.6.1", - "tmp": "0.2.1", - "ua-parser-js": "0.7.22", - "yargs": "^15.3.1" + "tmp": "^0.2.1", + "ua-parser-js": "^0.7.30", + "yargs": "^16.1.1" }, "bin": { "karma": "bin/karma" @@ -5891,52 +5692,67 @@ } }, "node_modules/karma-chrome-launcher": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/karma-chrome-launcher/-/karma-chrome-launcher-2.2.0.tgz", - "integrity": "sha512-uf/ZVpAabDBPvdPdveyk1EPgbnloPvFFGgmRhYLTDH7gEB4nZdSBk8yTU47w1g/drLSx5uMOkjKk7IWKfWg/+w==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/karma-chrome-launcher/-/karma-chrome-launcher-3.1.1.tgz", + "integrity": "sha512-hsIglcq1vtboGPAN+DGCISCFOxW+ZVnIqhDQcCMqqCp+4dmJ0Qpq5QAjkbA0X2L9Mi6OBkHi2Srrbmm7pUKkzQ==", "dev": true, "dependencies": { - "fs-access": "^1.0.0", "which": "^1.2.1" } }, "node_modules/karma-firefox-launcher": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/karma-firefox-launcher/-/karma-firefox-launcher-1.3.0.tgz", - "integrity": "sha512-Fi7xPhwrRgr+94BnHX0F5dCl1miIW4RHnzjIGxF8GaIEp7rNqX7LSi7ok63VXs3PS/5MQaQMhGxw+bvD+pibBQ==", + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/karma-firefox-launcher/-/karma-firefox-launcher-2.1.2.tgz", + "integrity": "sha512-VV9xDQU1QIboTrjtGVD4NCfzIH7n01ZXqy/qpBhnOeGVOkG5JYPEm8kuSd7psHE6WouZaQ9Ool92g8LFweSNMA==", + "dev": true, + "dependencies": { + "is-wsl": "^2.2.0", + "which": "^2.0.1" + } + }, + "node_modules/karma-firefox-launcher/node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", "dev": true, "dependencies": { - "is-wsl": "^2.1.0" + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" } }, "node_modules/karma-jasmine": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/karma-jasmine/-/karma-jasmine-2.0.1.tgz", - "integrity": "sha512-iuC0hmr9b+SNn1DaUD2QEYtUxkS1J+bSJSn7ejdEexs7P8EYvA1CWkEdrDQ+8jVH3AgWlCNwjYsT1chjcNW9lA==", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/karma-jasmine/-/karma-jasmine-5.1.0.tgz", + "integrity": "sha512-i/zQLFrfEpRyQoJF9fsCdTMOF5c2dK7C7OmsuKg2D0YSsuZSfQDiLuaiktbuio6F2wiCsZSnSnieIQ0ant/uzQ==", "dev": true, "dependencies": { - "jasmine-core": "^3.3" + "jasmine-core": "^4.1.0" }, "engines": { - "node": ">= 6" + "node": ">=12" }, "peerDependencies": { - "karma": "*" + "karma": "^6.0.0" } }, "node_modules/karma-jasmine/node_modules/jasmine-core": { - "version": "3.99.1", - "resolved": "https://registry.npmjs.org/jasmine-core/-/jasmine-core-3.99.1.tgz", - "integrity": "sha512-Hu1dmuoGcZ7AfyynN3LsfruwMbxMALMka+YtZeGoLuDEySVmVAPaonkNoBRIw/ectu8b9tVQCJNgp4a4knp+tg==", + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/jasmine-core/-/jasmine-core-4.6.0.tgz", + "integrity": "sha512-O236+gd0ZXS8YAjFx8xKaJ94/erqUliEkJTDedyE7iHvv4ZVqi+q+8acJxu05/WJDKm512EUNn809In37nWlAQ==", "dev": true }, "node_modules/karma-sourcemap-loader": { - "version": "0.3.8", - "resolved": "https://registry.npmjs.org/karma-sourcemap-loader/-/karma-sourcemap-loader-0.3.8.tgz", - "integrity": "sha512-zorxyAakYZuBcHRJE+vbrK2o2JXLFWK8VVjiT/6P+ltLBUGUvqTEkUiQ119MGdOrK7mrmxXHZF1/pfT6GgIZ6g==", + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/karma-sourcemap-loader/-/karma-sourcemap-loader-0.4.0.tgz", + "integrity": "sha512-xCRL3/pmhAYF3I6qOrcn0uhbQevitc2DERMPH82FMnG+4WReoGcGFZb1pURf2a5apyrOHRdvD+O6K7NljqKHyA==", "dev": true, "dependencies": { - "graceful-fs": "^4.1.2" + "graceful-fs": "^4.2.10" } }, "node_modules/karma-webpack": { @@ -5956,28 +5772,16 @@ "webpack": "^5.0.0" } }, - "node_modules/karma-webpack/node_modules/webpack-merge": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-4.2.2.tgz", - "integrity": "sha512-TUE1UGoTX2Cd42j3krGYqObZbOD+xF7u28WB7tfUordytSjbWTIjK/8V0amkBfTYN4/pB/GIDlJZZ657BGG19g==", - "dev": true, - "dependencies": { - "lodash": "^4.17.15" - } - }, - "node_modules/karma/node_modules/rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "node_modules/karma/node_modules/mkdirp": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", "dev": true, "dependencies": { - "glob": "^7.1.3" + "minimist": "^1.2.6" }, "bin": { - "rimraf": "bin.js" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" + "mkdirp": "bin/cmd.js" } }, "node_modules/kind-of": { @@ -6020,6 +5824,28 @@ "node": ">=4" } }, + "node_modules/load-json-file/node_modules/parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw==", + "dev": true, + "dependencies": { + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/load-json-file/node_modules/pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==", + "dev": true, + "engines": { + "node": ">=4" + } + }, "node_modules/loader-runner": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.0.tgz", @@ -6240,6 +6066,15 @@ "node": "*" } }, + "node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/minipass": { "version": "3.3.6", "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", @@ -6488,15 +6323,6 @@ "node": ">=8" } }, - "node_modules/null-check": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/null-check/-/null-check-1.0.0.tgz", - "integrity": "sha512-j8ZNHg19TyIQOWCGeeQJBuu6xZYIEurf8M1Qsfd8mFrGEfIZytbw18YjKWg+LcO25NowXGZXZpKAx+Ui3TFfDw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/object-assign": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", @@ -6702,30 +6528,23 @@ } }, "node_modules/parse-json": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", - "integrity": "sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw==", + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", "dev": true, "dependencies": { + "@babel/code-frame": "^7.0.0", "error-ex": "^1.3.1", - "json-parse-better-errors": "^1.0.1" + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" }, "engines": { - "node": ">=4" + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/parseqs": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/parseqs/-/parseqs-0.0.6.tgz", - "integrity": "sha512-jeAGzMDbfSHHA091hr0r31eYfTig+29g3GKKE/PPbEQ65X0lmMwlEoqmhzu0iztID5uJpZsFlUPDP8ThPL7M8w==", - "dev": true - }, - "node_modules/parseuri": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/parseuri/-/parseuri-0.0.6.tgz", - "integrity": "sha512-AUjen8sAkGgao7UyCX6Ahv0gIK2fABKmYjvP4xmy5JaKvcbTRueIqIPHLAfq30xJddqSE033IOMUSOMCcK3Sow==", - "dev": true - }, "node_modules/parseurl": { "version": "1.3.3", "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", @@ -6826,12 +6645,12 @@ } }, "node_modules/pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", "dev": true, "engines": { - "node": ">=4" + "node": ">=6" } }, "node_modules/pinkie": { @@ -6901,6 +6720,15 @@ "node": ">= 0.10" } }, + "node_modules/proxy-addr/node_modules/ipaddr.js": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", + "dev": true, + "engines": { + "node": ">= 0.10" + } + }, "node_modules/proxy-from-env": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", @@ -6971,27 +6799,6 @@ } } }, - "node_modules/puppeteer-core/node_modules/ws": { - "version": "8.13.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.13.0.tgz", - "integrity": "sha512-x9vcZYTrFPC7aSIbj7sRCYo7L/Xb8Iy+pW0ng0wt2vCJv7M9HOMy0UoN3rr+IFC7hb7vXoqS+P9ktyLLLhO+LA==", - "dev": true, - "engines": { - "node": ">=10.0.0" - }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": ">=5.0.2" - }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": true - } - } - }, "node_modules/qjobs": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/qjobs/-/qjobs-1.2.0.tgz", @@ -7095,6 +6902,15 @@ "node": ">=4" } }, + "node_modules/read-pkg/node_modules/pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==", + "dev": true, + "engines": { + "node": ">=4" + } + }, "node_modules/readable-stream": { "version": "1.1.14", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", @@ -7165,14 +6981,14 @@ } }, "node_modules/regexp.prototype.flags": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.4.3.tgz", - "integrity": "sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA==", + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.0.tgz", + "integrity": "sha512-0SutC3pNudRKgquxGoRGIz946MZVHqbNfPjBdxeOhBrdgDKlRoXmYLQN9xRbrR09ZXWeGAdPuif7egofn6v5LA==", "dev": true, "dependencies": { "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "functions-have-names": "^1.2.2" + "define-properties": "^1.2.0", + "functions-have-names": "^1.2.3" }, "engines": { "node": ">= 0.4" @@ -7237,12 +7053,6 @@ "node": ">=0.10.0" } }, - "node_modules/require-main-filename": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", - "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", - "dev": true - }, "node_modules/requires-port": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", @@ -7278,7 +7088,7 @@ "node": ">=8" } }, - "node_modules/resolve-from": { + "node_modules/resolve-cwd/node_modules/resolve-from": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", @@ -7287,6 +7097,15 @@ "node": ">=8" } }, + "node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true, + "engines": { + "node": ">=4" + } + }, "node_modules/retry": { "version": "0.13.1", "resolved": "https://registry.npmjs.org/retry/-/retry-0.13.1.tgz", @@ -7313,15 +7132,18 @@ "dev": true }, "node_modules/rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", "dev": true, "dependencies": { "glob": "^7.1.3" }, "bin": { "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, "node_modules/run-parallel": { @@ -7388,17 +7210,18 @@ "dev": true }, "node_modules/schema-utils": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.1.tgz", - "integrity": "sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg==", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.1.tgz", + "integrity": "sha512-lELhBAAly9NowEsX0yZBlw9ahZG+sK/1RJ21EpzdYHKEs13Vku3LJ+MIPhh4sMs0oCCeufZQEQbMekiA4vuVIQ==", "dev": true, "dependencies": { - "@types/json-schema": "^7.0.5", - "ajv": "^6.12.4", - "ajv-keywords": "^3.5.2" + "@types/json-schema": "^7.0.9", + "ajv": "^8.9.0", + "ajv-formats": "^2.1.1", + "ajv-keywords": "^5.1.0" }, "engines": { - "node": ">= 8.9.0" + "node": ">= 12.13.0" }, "funding": { "type": "opencollective", @@ -7591,12 +7414,6 @@ "node": ">= 0.8.0" } }, - "node_modules/set-blocking": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==", - "dev": true - }, "node_modules/setprototypeof": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", @@ -7675,122 +7492,65 @@ } }, "node_modules/socket.io": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-2.5.0.tgz", - "integrity": "sha512-gGunfS0od3VpwDBpGwVkzSZx6Aqo9uOcf1afJj2cKnKFAoyl16fvhpsUhmUFd4Ldbvl5JvRQed6eQw6oQp6n8w==", + "version": "4.6.1", + "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-4.6.1.tgz", + "integrity": "sha512-KMcaAi4l/8+xEjkRICl6ak8ySoxsYG+gG6/XfRCPJPQ/haCRIJBTL4wIl8YCsmtaBovcAXGLOShyVWQ/FG8GZA==", "dev": true, "dependencies": { - "debug": "~4.1.0", - "engine.io": "~3.6.0", - "has-binary2": "~1.0.2", - "socket.io-adapter": "~1.1.0", - "socket.io-client": "2.5.0", - "socket.io-parser": "~3.4.0" + "accepts": "~1.3.4", + "base64id": "~2.0.0", + "debug": "~4.3.2", + "engine.io": "~6.4.1", + "socket.io-adapter": "~2.5.2", + "socket.io-parser": "~4.2.1" + }, + "engines": { + "node": ">=10.0.0" } }, "node_modules/socket.io-adapter": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-1.1.2.tgz", - "integrity": "sha512-WzZRUj1kUjrTIrUKpZLEzFZ1OLj5FwLlAFQs9kuZJzJi5DKdU7FsWc36SNmA8iDOtwBQyT8FkrriRM8vXLYz8g==", - "dev": true - }, - "node_modules/socket.io-client": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-2.5.0.tgz", - "integrity": "sha512-lOO9clmdgssDykiOmVQQitwBAF3I6mYcQAo7hQ7AM6Ny5X7fp8hIJ3HcQs3Rjz4SoggoxA1OgrQyY8EgTbcPYw==", + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-2.5.2.tgz", + "integrity": "sha512-87C3LO/NOMc+eMcpcxUBebGjkpMDkNBS9tf7KJqcDsmL936EChtVva71Dw2q4tQcuVC+hAUy4an2NO/sYXmwRA==", "dev": true, "dependencies": { - "backo2": "1.0.2", - "component-bind": "1.0.0", - "component-emitter": "~1.3.0", - "debug": "~3.1.0", - "engine.io-client": "~3.5.0", - "has-binary2": "~1.0.2", - "indexof": "0.0.1", - "parseqs": "0.0.6", - "parseuri": "0.0.6", - "socket.io-parser": "~3.3.0", - "to-array": "0.1.4" + "ws": "~8.11.0" } }, - "node_modules/socket.io-client/node_modules/debug": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "node_modules/socket.io-adapter/node_modules/ws": { + "version": "8.11.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.11.0.tgz", + "integrity": "sha512-HPG3wQd9sNQoT9xHyNCXoDUa+Xw/VevmY9FoHyQ+g+rrMn4j6FB4np7Z0OhdTgjx6MgQLK7jwSy1YecU1+4Asg==", "dev": true, - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/socket.io-client/node_modules/isarray": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.1.tgz", - "integrity": "sha512-c2cu3UxbI+b6kR3fy0nRnAhodsvR9dx7U5+znCOzdj6IfP3upFURTr0Xl5BlQZNKZjEtxrmVyfSdeE3O57smoQ==", - "dev": true - }, - "node_modules/socket.io-client/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true - }, - "node_modules/socket.io-client/node_modules/socket.io-parser": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-3.3.3.tgz", - "integrity": "sha512-qOg87q1PMWWTeO01768Yh9ogn7chB9zkKtQnya41Y355S0UmpXgpcrFwAgjYJxu9BdKug5r5e9YtVSeWhKBUZg==", - "dev": true, - "dependencies": { - "component-emitter": "~1.3.0", - "debug": "~3.1.0", - "isarray": "2.0.1" + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": "^5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } } }, "node_modules/socket.io-parser": { - "version": "3.4.2", - "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-3.4.2.tgz", - "integrity": "sha512-QFZBaZDNqZXeemwejc7D39jrq2eGK/qZuVDiMPKzZK1hLlNvjGilGt4ckfQZeVX4dGmuPzCytN9ZW1nQlEWjgA==", + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-4.2.2.tgz", + "integrity": "sha512-DJtziuKypFkMMHCm2uIshOYC7QaylbtzQwiMYDuCKy3OPkjLzu4B2vAhTlqipRHHzrI0NJeBAizTK7X+6m1jVw==", "dev": true, "dependencies": { - "component-emitter": "1.2.1", - "debug": "~4.1.0", - "isarray": "2.0.1" + "@socket.io/component-emitter": "~3.1.0", + "debug": "~4.3.1" }, "engines": { "node": ">=10.0.0" } }, - "node_modules/socket.io-parser/node_modules/component-emitter": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz", - "integrity": "sha512-jPatnhd33viNplKjqXKRkGU345p263OIWzDL2wH3LGIGp5Kojo+uXizHmOADRvhGFFTnJqX3jBAKP6vvmSDKcA==", - "dev": true - }, - "node_modules/socket.io-parser/node_modules/debug": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", - "deprecated": "Debug versions >=3.2.0 <3.2.7 || >=4 <4.3.1 have a low-severity ReDos regression when used in a Node.js environment. It is recommended you upgrade to 3.2.7 or 4.3.1. (https://github.com/visionmedia/debug/issues/797)", - "dev": true, - "dependencies": { - "ms": "^2.1.1" - } - }, - "node_modules/socket.io-parser/node_modules/isarray": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.1.tgz", - "integrity": "sha512-c2cu3UxbI+b6kR3fy0nRnAhodsvR9dx7U5+znCOzdj6IfP3upFURTr0Xl5BlQZNKZjEtxrmVyfSdeE3O57smoQ==", - "dev": true - }, - "node_modules/socket.io/node_modules/debug": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", - "deprecated": "Debug versions >=3.2.0 <3.2.7 || >=4 <4.3.1 have a low-severity ReDos regression when used in a Node.js environment. It is recommended you upgrade to 3.2.7 or 4.3.1. (https://github.com/visionmedia/debug/issues/797)", - "dev": true, - "dependencies": { - "ms": "^2.1.1" - } - }, "node_modules/sockjs": { "version": "0.3.24", "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.24.tgz", @@ -8194,9 +7954,9 @@ "dev": true }, "node_modules/terser": { - "version": "5.17.0", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.17.0.tgz", - "integrity": "sha512-3die3+pYW4mta4xF6K8Wtf7id8+oYyfqtAhjwzqY01+CfDSDMx/VA1Sp8sXWs5AVNIoAKoUfmp/gnPqRjBxuDA==", + "version": "5.17.1", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.17.1.tgz", + "integrity": "sha512-hVl35zClmpisy6oaoKALOpS0rDYLxRFLHhRuDlEGTKey9qHjS1w9GMORjuwIMt70Wan4lwsLYyWDVnWgF+KUEw==", "dev": true, "dependencies": { "@jridgewell/source-map": "^0.3.2", @@ -8238,6 +7998,37 @@ "webpack": "^4.0.0 || ^5.0.0" } }, + "node_modules/terser-webpack-plugin/node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/terser-webpack-plugin/node_modules/ajv-keywords": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "dev": true, + "peerDependencies": { + "ajv": "^6.9.1" + } + }, + "node_modules/terser-webpack-plugin/node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, "node_modules/terser-webpack-plugin/node_modules/schema-utils": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.2.tgz", @@ -8280,27 +8071,6 @@ "node": ">=8.17.0" } }, - "node_modules/tmp/node_modules/rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "dev": true, - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/to-array": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/to-array/-/to-array-0.1.4.tgz", - "integrity": "sha512-LhVdShQD/4Mk4zXNroIQZJC+Ap3zgLcDuwEdcmLv9CCO73NWockQDwyUnW/m8VX/EElfL6FcYx7EeutN4HJA6A==", - "dev": true - }, "node_modules/to-fast-properties": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", @@ -8365,10 +8135,20 @@ } }, "node_modules/ua-parser-js": { - "version": "0.7.22", - "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.22.tgz", - "integrity": "sha512-YUxzMjJ5T71w6a8WWVcMGM6YWOTX27rCoIQgLXiWaxqXSx9D7DNjiGWn1aJIRSQ5qr0xuhra77bSIh6voR/46Q==", + "version": "0.7.35", + "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.35.tgz", + "integrity": "sha512-veRf7dawaj9xaWEu9HoTVn5Pggtc/qj+kqTOFvNiN1l0YdxwC1kvel57UCjThjGa3BHBihE8/UJAHI+uQHmd/g==", "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/ua-parser-js" + }, + { + "type": "paypal", + "url": "https://paypal.me/faisalman" + } + ], "engines": { "node": "*" } @@ -8738,6 +8518,19 @@ "node": ">=8" } }, + "node_modules/webpack-cli/node_modules/webpack-merge": { + "version": "5.8.0", + "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-5.8.0.tgz", + "integrity": "sha512-/SaI7xY0831XwP6kzuwhKWVKDP9t1QY1h65lAFLbZqMPIuYcD9QAW4u9STIbU9kaJbPBB/geU/gLr1wDjOhQ+Q==", + "dev": true, + "dependencies": { + "clone-deep": "^4.0.1", + "wildcard": "^2.0.0" + }, + "engines": { + "node": ">=10.0.0" + } + }, "node_modules/webpack-cli/node_modules/which": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", @@ -8753,6 +8546,29 @@ "node": ">= 8" } }, + "node_modules/webpack-dev-middleware": { + "version": "5.3.3", + "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-5.3.3.tgz", + "integrity": "sha512-hj5CYrY0bZLB+eTO+x/j67Pkrquiy7kWepMHmUMoPsmcUaeEnQJqFzHJOyxgWlq746/wUuA64p9ta34Kyb01pA==", + "dev": true, + "dependencies": { + "colorette": "^2.0.10", + "memfs": "^3.4.3", + "mime-types": "^2.1.31", + "range-parser": "^1.2.1", + "schema-utils": "^4.0.0" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^4.0.0 || ^5.0.0" + } + }, "node_modules/webpack-dev-server": { "version": "4.13.3", "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-4.13.3.tgz", @@ -8812,148 +8628,48 @@ } } }, - "node_modules/webpack-dev-server/node_modules/ajv": { - "version": "8.12.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", - "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", - "dev": true, - "dependencies": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/webpack-dev-server/node_modules/ajv-keywords": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", - "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", - "dev": true, - "dependencies": { - "fast-deep-equal": "^3.1.3" - }, - "peerDependencies": { - "ajv": "^8.8.2" - } - }, - "node_modules/webpack-dev-server/node_modules/ipaddr.js": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.0.1.tgz", - "integrity": "sha512-1qTgH9NG+IIJ4yfKs2e6Pp1bZg8wbDbKHT21HrLIeYBTRLgMYKnMTPAuI3Lcs61nfx5h1xlXnbJtH1kX5/d/ng==", - "dev": true, - "engines": { - "node": ">= 10" - } - }, - "node_modules/webpack-dev-server/node_modules/json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", - "dev": true - }, - "node_modules/webpack-dev-server/node_modules/rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "node_modules/webpack-merge": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-4.2.2.tgz", + "integrity": "sha512-TUE1UGoTX2Cd42j3krGYqObZbOD+xF7u28WB7tfUordytSjbWTIjK/8V0amkBfTYN4/pB/GIDlJZZ657BGG19g==", "dev": true, "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" + "lodash": "^4.17.15" } }, - "node_modules/webpack-dev-server/node_modules/schema-utils": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.1.tgz", - "integrity": "sha512-lELhBAAly9NowEsX0yZBlw9ahZG+sK/1RJ21EpzdYHKEs13Vku3LJ+MIPhh4sMs0oCCeufZQEQbMekiA4vuVIQ==", + "node_modules/webpack-sources": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.4.3.tgz", + "integrity": "sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ==", "dev": true, "dependencies": { - "@types/json-schema": "^7.0.9", - "ajv": "^8.9.0", - "ajv-formats": "^2.1.1", - "ajv-keywords": "^5.1.0" - }, - "engines": { - "node": ">= 12.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" + "source-list-map": "^2.0.0", + "source-map": "~0.6.1" } }, - "node_modules/webpack-dev-server/node_modules/webpack-dev-middleware": { - "version": "5.3.3", - "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-5.3.3.tgz", - "integrity": "sha512-hj5CYrY0bZLB+eTO+x/j67Pkrquiy7kWepMHmUMoPsmcUaeEnQJqFzHJOyxgWlq746/wUuA64p9ta34Kyb01pA==", + "node_modules/webpack/node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", "dev": true, "dependencies": { - "colorette": "^2.0.10", - "memfs": "^3.4.3", - "mime-types": "^2.1.31", - "range-parser": "^1.2.1", - "schema-utils": "^4.0.0" - }, - "engines": { - "node": ">= 12.13.0" + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^4.0.0 || ^5.0.0" + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" } }, - "node_modules/webpack-dev-server/node_modules/ws": { - "version": "8.13.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.13.0.tgz", - "integrity": "sha512-x9vcZYTrFPC7aSIbj7sRCYo7L/Xb8Iy+pW0ng0wt2vCJv7M9HOMy0UoN3rr+IFC7hb7vXoqS+P9ktyLLLhO+LA==", + "node_modules/webpack/node_modules/ajv-keywords": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", "dev": true, - "engines": { - "node": ">=10.0.0" - }, "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": ">=5.0.2" - }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": true - } - } - }, - "node_modules/webpack-merge": { - "version": "5.8.0", - "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-5.8.0.tgz", - "integrity": "sha512-/SaI7xY0831XwP6kzuwhKWVKDP9t1QY1h65lAFLbZqMPIuYcD9QAW4u9STIbU9kaJbPBB/geU/gLr1wDjOhQ+Q==", - "dev": true, - "dependencies": { - "clone-deep": "^4.0.1", - "wildcard": "^2.0.0" - }, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/webpack-sources": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.4.3.tgz", - "integrity": "sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ==", - "dev": true, - "dependencies": { - "source-list-map": "^2.0.0", - "source-map": "~0.6.1" + "ajv": "^6.9.1" } }, "node_modules/webpack/node_modules/has-flag": { @@ -8979,6 +8695,12 @@ "node": ">= 10.13.0" } }, + "node_modules/webpack/node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, "node_modules/webpack/node_modules/schema-utils": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.2.tgz", @@ -9125,12 +8847,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/which-module": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", - "integrity": "sha512-B+enWhmw6cjfVC7kS8Pj9pCrKSc5txArRyaYGe088shv/FGWH+0Rjx/xPgtsWfsUtS27FkP697E4DDhgrgoc0Q==", - "dev": true - }, "node_modules/which-typed-array": { "version": "1.1.9", "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.9.tgz", @@ -9158,9 +8874,9 @@ "dev": true }, "node_modules/wrap-ansi": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", - "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", "dev": true, "dependencies": { "ansi-styles": "^4.0.0", @@ -9168,7 +8884,10 @@ "strip-ansi": "^6.0.0" }, "engines": { - "node": ">=8" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, "node_modules/wrap-ansi/node_modules/ansi-styles": { @@ -9211,16 +8930,16 @@ "dev": true }, "node_modules/ws": { - "version": "7.4.6", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.6.tgz", - "integrity": "sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A==", + "version": "8.13.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.13.0.tgz", + "integrity": "sha512-x9vcZYTrFPC7aSIbj7sRCYo7L/Xb8Iy+pW0ng0wt2vCJv7M9HOMy0UoN3rr+IFC7hb7vXoqS+P9ktyLLLhO+LA==", "dev": true, "engines": { - "node": ">=8.3.0" + "node": ">=10.0.0" }, "peerDependencies": { "bufferutil": "^4.0.1", - "utf-8-validate": "^5.0.2" + "utf-8-validate": ">=5.0.2" }, "peerDependenciesMeta": { "bufferutil": { @@ -9231,21 +8950,15 @@ } } }, - "node_modules/xmlhttprequest-ssl": { - "version": "1.6.3", - "resolved": "https://registry.npmjs.org/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.6.3.tgz", - "integrity": "sha512-3XfeQE/wNkvrIktn2Kf0869fC0BN6UpydVasGIeSm2B1Llihf7/0UfZM+eCkOw3P7bP4+qPgqhm7ZoxuJtFU0Q==", + "node_modules/y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", "dev": true, "engines": { - "node": ">=0.4.0" + "node": ">=10" } }, - "node_modules/y18n": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", - "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", - "dev": true - }, "node_modules/yallist": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", @@ -9253,38 +8966,30 @@ "dev": true }, "node_modules/yargs": { - "version": "15.4.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", - "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", + "version": "16.2.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", + "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", "dev": true, "dependencies": { - "cliui": "^6.0.0", - "decamelize": "^1.2.0", - "find-up": "^4.1.0", - "get-caller-file": "^2.0.1", + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", "require-directory": "^2.1.1", - "require-main-filename": "^2.0.0", - "set-blocking": "^2.0.0", "string-width": "^4.2.0", - "which-module": "^2.0.0", - "y18n": "^4.0.0", - "yargs-parser": "^18.1.2" + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" }, "engines": { - "node": ">=8" + "node": ">=10" } }, "node_modules/yargs-parser": { - "version": "18.1.3", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", - "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", + "version": "20.2.9", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", + "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", "dev": true, - "dependencies": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - }, "engines": { - "node": ">=6" + "node": ">=10" } }, "node_modules/yauzl": { @@ -9297,12 +9002,6 @@ "fd-slicer": "~1.1.0" } }, - "node_modules/yeast": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/yeast/-/yeast-0.1.2.tgz", - "integrity": "sha512-8HFIh676uyGYP6wP13R/j6OJ/1HwJ46snpvzE7aHAN3Ryqh2yX6Xox2B4CUmTwwOIzlG3Bs7ocsP5dZH/R1Qbg==", - "dev": true - }, "node_modules/yocto-queue": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", diff --git a/package.json b/package.json index 9095484..6c1665a 100644 --- a/package.json +++ b/package.json @@ -40,18 +40,18 @@ "angular": ">=1.2.0" }, "devDependencies": { - "@babel/core": "^7.3.3", - "@babel/preset-env": "^7.3.1", - "babel-loader": "^8.1.0", + "@babel/core": "^7.21.4", + "@babel/preset-env": "^7.21.4", + "babel-loader": "^9.1.2", "clean-webpack-plugin": "^4.0.0", "copy-webpack-plugin": "^6.1.1", "jasmine-core": "^2.8.0", "jshint": "^2.10.1", - "karma": "^5.0.5", - "karma-chrome-launcher": "^2.2.0", - "karma-firefox-launcher": "^1.1.0", - "karma-jasmine": "^2.0.1", - "karma-sourcemap-loader": "^0.3.7", + "karma": "^6.4.1", + "karma-chrome-launcher": "^3.1.1", + "karma-firefox-launcher": "^2.1.2", + "karma-jasmine": "^5.1.0", + "karma-sourcemap-loader": "^0.4.0", "karma-webpack": "^5.0.0", "npm-run-all": "^4.1.2", "puppeteer": "^19.9.1", @@ -77,4 +77,4 @@ "scroller", "scrolling" ] -} +} \ No newline at end of file From e8ff0dcd3c5330e308c6c28dcb2d7f0648de0fa9 Mon Sep 17 00:00:00 2001 From: Denis Hilt Date: Wed, 19 Apr 2023 14:06:28 +0200 Subject: [PATCH 8/9] Bump other dependencies --- package-lock.json | 864 ++++++++++------------------------------------ package.json | 10 +- webpack.config.js | 2 +- 3 files changed, 186 insertions(+), 690 deletions(-) diff --git a/package-lock.json b/package-lock.json index 6434195..d4552a5 100644 --- a/package-lock.json +++ b/package-lock.json @@ -13,18 +13,18 @@ "@babel/preset-env": "^7.21.4", "babel-loader": "^9.1.2", "clean-webpack-plugin": "^4.0.0", - "copy-webpack-plugin": "^6.1.1", - "jasmine-core": "^2.8.0", - "jshint": "^2.10.1", + "copy-webpack-plugin": "^11.0.0", + "jasmine-core": "^4.6.0", + "jshint": "^2.13.6", "karma": "^6.4.1", "karma-chrome-launcher": "^3.1.1", "karma-firefox-launcher": "^2.1.2", "karma-jasmine": "^5.1.0", "karma-sourcemap-loader": "^0.4.0", "karma-webpack": "^5.0.0", - "npm-run-all": "^4.1.2", + "npm-run-all": "^4.1.5", "puppeteer": "^19.9.1", - "terser-webpack-plugin": "^4.2.2", + "terser-webpack-plugin": "^5.3.7", "webpack": "^5.79.0", "webpack-cli": "^5.0.1", "webpack-dev-server": "^4.13.3" @@ -1644,12 +1644,6 @@ "node": ">=10.0.0" } }, - "node_modules/@gar/promisify": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/@gar/promisify/-/promisify-1.1.3.tgz", - "integrity": "sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw==", - "dev": true - }, "node_modules/@jridgewell/gen-mapping": { "version": "0.3.3", "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz", @@ -1755,63 +1749,6 @@ "node": ">= 8" } }, - "node_modules/@npmcli/fs": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-1.1.1.tgz", - "integrity": "sha512-8KG5RD0GVP4ydEzRn/I4BNDuxDtqVbOdm8675T49OIG/NGhaK0pjPX7ZcDlvKYbA+ulvVK3ztfcF4uBdOxuJbQ==", - "dev": true, - "dependencies": { - "@gar/promisify": "^1.0.1", - "semver": "^7.3.5" - } - }, - "node_modules/@npmcli/fs/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@npmcli/fs/node_modules/semver": { - "version": "7.5.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.0.tgz", - "integrity": "sha512-+XC0AD/R7Q2mPSRuy2Id0+CGTZ98+8f+KvwirxOKIEyid+XSx6HbC63p+O4IndTHuX5Z+JxQ0TghCkO5Cg/2HA==", - "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@npmcli/fs/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - }, - "node_modules/@npmcli/move-file": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@npmcli/move-file/-/move-file-1.1.2.tgz", - "integrity": "sha512-1SUf/Cg2GzGDyaf15aR9St9TWlb+XvbZXWpDx8YKs7MLzMH/BCeopv+y9vzrzgkfykCGuWOlSu3mZhj2+FQcrg==", - "deprecated": "This functionality has been moved to @npmcli/fs", - "dev": true, - "dependencies": { - "mkdirp": "^1.0.4", - "rimraf": "^3.0.2" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/@puppeteer/browsers": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/@puppeteer/browsers/-/browsers-0.4.1.tgz", @@ -2347,19 +2284,6 @@ "node": ">= 6.0.0" } }, - "node_modules/aggregate-error": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", - "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", - "dev": true, - "dependencies": { - "clean-stack": "^2.0.0", - "indent-string": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/ajv": { "version": "8.12.0", "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", @@ -2484,12 +2408,15 @@ "dev": true }, "node_modules/array-union": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", - "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", + "integrity": "sha512-Dxr6QJj/RdU/hCaBjOfxW+q6lyuVE6JFWIrAUpuOOhoJJoQ99cUn3igRaHVB5P9WrgFVN0FfArM3x0cueOU8ng==", "dev": true, + "dependencies": { + "array-uniq": "^1.0.1" + }, "engines": { - "node": ">=8" + "node": ">=0.10.0" } }, "node_modules/array-uniq": { @@ -2610,15 +2537,6 @@ "integrity": "sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw==", "dev": true }, - "node_modules/big.js": { - "version": "5.2.2", - "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", - "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", - "dev": true, - "engines": { - "node": "*" - } - }, "node_modules/binary-extensions": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", @@ -2811,53 +2729,6 @@ "node": ">= 0.8" } }, - "node_modules/cacache": { - "version": "15.3.0", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-15.3.0.tgz", - "integrity": "sha512-VVdYzXEn+cnbXpFgWs5hTT7OScegHVmLhJIR8Ufqk3iFD6A6j5iSX1KuBTfNEv4tdJWE2PzA6IVFtcLC7fN9wQ==", - "dev": true, - "dependencies": { - "@npmcli/fs": "^1.0.0", - "@npmcli/move-file": "^1.0.1", - "chownr": "^2.0.0", - "fs-minipass": "^2.0.0", - "glob": "^7.1.4", - "infer-owner": "^1.0.4", - "lru-cache": "^6.0.0", - "minipass": "^3.1.1", - "minipass-collect": "^1.0.2", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.2", - "mkdirp": "^1.0.3", - "p-map": "^4.0.0", - "promise-inflight": "^1.0.1", - "rimraf": "^3.0.2", - "ssri": "^8.0.1", - "tar": "^6.0.2", - "unique-filename": "^1.1.1" - }, - "engines": { - "node": ">= 10" - } - }, - "node_modules/cacache/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/cacache/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - }, "node_modules/call-bind": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", @@ -2941,15 +2812,24 @@ "fsevents": "~2.3.2" } }, - "node_modules/chownr": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", - "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", + "node_modules/chokidar/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", "dev": true, + "dependencies": { + "is-glob": "^4.0.1" + }, "engines": { - "node": ">=10" + "node": ">= 6" } }, + "node_modules/chownr": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", + "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==", + "dev": true + }, "node_modules/chrome-trace-event": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz", @@ -2971,15 +2851,6 @@ "devtools-protocol": "*" } }, - "node_modules/clean-stack": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", - "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", - "dev": true, - "engines": { - "node": ">=6" - } - }, "node_modules/clean-webpack-plugin": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/clean-webpack-plugin/-/clean-webpack-plugin-4.0.0.tgz", @@ -3223,81 +3094,27 @@ "dev": true }, "node_modules/copy-webpack-plugin": { - "version": "6.4.1", - "resolved": "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-6.4.1.tgz", - "integrity": "sha512-MXyPCjdPVx5iiWyl40Va3JGh27bKzOTNY3NjUTrosD2q7dR/cLD0013uqJ3BpFbUjyONINjb6qI7nDIJujrMbA==", + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-11.0.0.tgz", + "integrity": "sha512-fX2MWpamkW0hZxMEg0+mYnA40LTosOSa5TqZ9GYIBzyJa9C3QUaMPSE2xAi/buNr8u89SfD9wHSQVBzrRa/SOQ==", "dev": true, "dependencies": { - "cacache": "^15.0.5", - "fast-glob": "^3.2.4", - "find-cache-dir": "^3.3.1", - "glob-parent": "^5.1.1", - "globby": "^11.0.1", - "loader-utils": "^2.0.0", + "fast-glob": "^3.2.11", + "glob-parent": "^6.0.1", + "globby": "^13.1.1", "normalize-path": "^3.0.0", - "p-limit": "^3.0.2", - "schema-utils": "^3.0.0", - "serialize-javascript": "^5.0.1", - "webpack-sources": "^1.4.3" + "schema-utils": "^4.0.0", + "serialize-javascript": "^6.0.0" }, "engines": { - "node": ">= 10.13.0" + "node": ">= 14.15.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/webpack" }, "peerDependencies": { - "webpack": "^4.37.0 || ^5.0.0" - } - }, - "node_modules/copy-webpack-plugin/node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, - "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/copy-webpack-plugin/node_modules/ajv-keywords": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", - "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", - "dev": true, - "peerDependencies": { - "ajv": "^6.9.1" - } - }, - "node_modules/copy-webpack-plugin/node_modules/json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true - }, - "node_modules/copy-webpack-plugin/node_modules/schema-utils": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.2.tgz", - "integrity": "sha512-pvjEHOgWc9OWA/f/DE3ohBWTD6EleVLf7iFUkoSwAxttdBhB9QUebQgxER2kWueOvRJXPHNnyrvvh9eZINB8Eg==", - "dev": true, - "dependencies": { - "@types/json-schema": "^7.0.8", - "ajv": "^6.12.5", - "ajv-keywords": "^3.5.2" - }, - "engines": { - "node": ">= 10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" + "webpack": "^5.1.0" } }, "node_modules/core-js-compat": { @@ -3477,18 +3294,6 @@ "node": ">=6" } }, - "node_modules/del/node_modules/array-union": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", - "integrity": "sha512-Dxr6QJj/RdU/hCaBjOfxW+q6lyuVE6JFWIrAUpuOOhoJJoQ99cUn3igRaHVB5P9WrgFVN0FfArM3x0cueOU8ng==", - "dev": true, - "dependencies": { - "array-uniq": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/del/node_modules/globby": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/globby/-/globby-6.1.0.tgz", @@ -3514,27 +3319,6 @@ "node": ">=0.10.0" } }, - "node_modules/del/node_modules/p-map": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-2.1.0.tgz", - "integrity": "sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/del/node_modules/rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "dev": true, - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - } - }, "node_modules/depd": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", @@ -3688,15 +3472,6 @@ "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", "dev": true }, - "node_modules/emojis-list": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", - "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", - "dev": true, - "engines": { - "node": ">= 4" - } - }, "node_modules/encodeurl": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", @@ -4286,6 +4061,18 @@ "node": ">=8.6.0" } }, + "node_modules/fast-glob/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, "node_modules/fast-json-stable-stringify": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", @@ -4491,18 +4278,6 @@ "node": ">=6 <7 || >=8" } }, - "node_modules/fs-minipass": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", - "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", - "dev": true, - "dependencies": { - "minipass": "^3.0.0" - }, - "engines": { - "node": ">= 8" - } - }, "node_modules/fs-monkey": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/fs-monkey/-/fs-monkey-1.0.3.tgz", @@ -4646,15 +4421,15 @@ } }, "node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", "dev": true, "dependencies": { - "is-glob": "^4.0.1" + "is-glob": "^4.0.3" }, "engines": { - "node": ">= 6" + "node": ">=10.13.0" } }, "node_modules/glob-to-regexp": { @@ -4663,6 +4438,18 @@ "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", "dev": true }, + "node_modules/glob/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, "node_modules/globals": { "version": "11.12.0", "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", @@ -4688,20 +4475,19 @@ } }, "node_modules/globby": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", - "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "version": "13.1.4", + "resolved": "https://registry.npmjs.org/globby/-/globby-13.1.4.tgz", + "integrity": "sha512-iui/IiiW+QrJ1X1hKH5qwlMQyv34wJAYwH1vrf8b9kBA4sNiif3gKsMHa+BrdnOpEudWjpotfa7LrTzB1ERS/g==", "dev": true, "dependencies": { - "array-union": "^2.1.0", "dir-glob": "^3.0.1", - "fast-glob": "^3.2.9", + "fast-glob": "^3.2.11", "ignore": "^5.2.0", "merge2": "^1.4.1", - "slash": "^3.0.0" + "slash": "^4.0.0" }, "engines": { - "node": ">=10" + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -5058,30 +4844,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", - "dev": true, - "engines": { - "node": ">=0.8.19" - } - }, - "node_modules/indent-string": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", - "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/infer-owner": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz", - "integrity": "sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==", - "dev": true - }, "node_modules/inflight": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", @@ -5514,20 +5276,20 @@ } }, "node_modules/jasmine-core": { - "version": "2.99.1", - "resolved": "https://registry.npmjs.org/jasmine-core/-/jasmine-core-2.99.1.tgz", - "integrity": "sha512-ra97U4qu3OCcIxvN6eg3kyy8bLrID/TgxafSGMMICg3SFx5C/sUfDPpiOh7yoIsHdtjrOVdtT9rieYhqOsh9Ww==", + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/jasmine-core/-/jasmine-core-4.6.0.tgz", + "integrity": "sha512-O236+gd0ZXS8YAjFx8xKaJ94/erqUliEkJTDedyE7iHvv4ZVqi+q+8acJxu05/WJDKm512EUNn809In37nWlAQ==", "dev": true }, "node_modules/jest-worker": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-26.6.2.tgz", - "integrity": "sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ==", + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", + "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", "dev": true, "dependencies": { "@types/node": "*", "merge-stream": "^2.0.0", - "supports-color": "^7.0.0" + "supports-color": "^8.0.0" }, "engines": { "node": ">= 10.13.0" @@ -5543,15 +5305,18 @@ } }, "node_modules/jest-worker/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", "dev": true, "dependencies": { "has-flag": "^4.0.0" }, "engines": { - "node": ">=8" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" } }, "node_modules/js-tokens": { @@ -5602,18 +5367,6 @@ "jshint": "bin/jshint" } }, - "node_modules/jshint/node_modules/minimatch": { - "version": "3.0.8", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.8.tgz", - "integrity": "sha512-6FsRAQsxQ61mw+qP1ZzbL9Bc78x2p5OqNgNpnoAFLTrX8n5Kxph0CsnhmKKNXTWjXqU5L0pGPR7hYk+XWZr60Q==", - "dev": true, - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, "node_modules/json-parse-better-errors": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", @@ -5740,12 +5493,6 @@ "karma": "^6.0.0" } }, - "node_modules/karma-jasmine/node_modules/jasmine-core": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/jasmine-core/-/jasmine-core-4.6.0.tgz", - "integrity": "sha512-O236+gd0ZXS8YAjFx8xKaJ94/erqUliEkJTDedyE7iHvv4ZVqi+q+8acJxu05/WJDKm512EUNn809In37nWlAQ==", - "dev": true - }, "node_modules/karma-sourcemap-loader": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/karma-sourcemap-loader/-/karma-sourcemap-loader-0.4.0.tgz", @@ -5772,16 +5519,19 @@ "webpack": "^5.0.0" } }, - "node_modules/karma/node_modules/mkdirp": { - "version": "0.5.6", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", - "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", + "node_modules/karma/node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", "dev": true, "dependencies": { - "minimist": "^1.2.6" + "glob": "^7.1.3" }, "bin": { - "mkdirp": "bin/cmd.js" + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, "node_modules/kind-of": { @@ -5855,20 +5605,6 @@ "node": ">=6.11.5" } }, - "node_modules/loader-utils": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz", - "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==", - "dev": true, - "dependencies": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^2.1.2" - }, - "engines": { - "node": ">=8.9.0" - } - }, "node_modules/locate-path": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", @@ -6055,9 +5791,9 @@ "dev": true }, "node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.8.tgz", + "integrity": "sha512-6FsRAQsxQ61mw+qP1ZzbL9Bc78x2p5OqNgNpnoAFLTrX8n5Kxph0CsnhmKKNXTWjXqU5L0pGPR7hYk+XWZr60Q==", "dev": true, "dependencies": { "brace-expansion": "^1.1.7" @@ -6075,79 +5811,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/minipass": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", - "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/minipass-collect": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/minipass-collect/-/minipass-collect-1.0.2.tgz", - "integrity": "sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==", - "dev": true, - "dependencies": { - "minipass": "^3.0.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/minipass-flush": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/minipass-flush/-/minipass-flush-1.0.5.tgz", - "integrity": "sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==", - "dev": true, - "dependencies": { - "minipass": "^3.0.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/minipass-pipeline": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz", - "integrity": "sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==", - "dev": true, - "dependencies": { - "minipass": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/minipass/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - }, - "node_modules/minizlib": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", - "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", - "dev": true, - "dependencies": { - "minipass": "^3.0.0", - "yallist": "^4.0.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/minizlib/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - }, "node_modules/mitt": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/mitt/-/mitt-3.0.0.tgz", @@ -6155,15 +5818,15 @@ "dev": true }, "node_modules/mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", "dev": true, + "dependencies": { + "minimist": "^1.2.6" + }, "bin": { "mkdirp": "bin/cmd.js" - }, - "engines": { - "node": ">=10" } }, "node_modules/mkdirp-classic": { @@ -6437,15 +6100,15 @@ } }, "node_modules/p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", "dev": true, "dependencies": { - "yocto-queue": "^0.1.0" + "p-try": "^2.0.0" }, "engines": { - "node": ">=10" + "node": ">=6" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -6463,34 +6126,13 @@ "node": ">=8" } }, - "node_modules/p-locate/node_modules/p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dev": true, - "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/p-map": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", - "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-2.1.0.tgz", + "integrity": "sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==", "dev": true, - "dependencies": { - "aggregate-error": "^3.0.0" - }, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=6" } }, "node_modules/p-retry": { @@ -6701,12 +6343,6 @@ "node": ">=0.4.0" } }, - "node_modules/promise-inflight": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", - "integrity": "sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g==", - "dev": true - }, "node_modules/proxy-addr": { "version": "2.0.7", "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", @@ -7132,18 +6768,15 @@ "dev": true }, "node_modules/rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", "dev": true, "dependencies": { "glob": "^7.1.3" }, "bin": { "rimraf": "bin.js" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" } }, "node_modules/run-parallel": { @@ -7322,9 +6955,9 @@ } }, "node_modules/serialize-javascript": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-5.0.1.tgz", - "integrity": "sha512-SaaNal9imEO737H2c05Og0/8LUXG7EnsZyMa8MzkmuHoELfT6txuj0cMqRj6zfPKnmQ1yasR4PCJc8x+M4JSPA==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.1.tgz", + "integrity": "sha512-owoXEFjWRllis8/M1Q+Cw5k8ZH40e3zhp/ovX+Xr/vi1qj6QesbyXXViFbpNvWvPNAD62SutwEXavefrLJWj7w==", "dev": true, "dependencies": { "randombytes": "^2.1.0" @@ -7483,12 +7116,15 @@ "dev": true }, "node_modules/slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz", + "integrity": "sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==", "dev": true, "engines": { - "node": ">=8" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/socket.io": { @@ -7562,12 +7198,6 @@ "websocket-driver": "^0.7.4" } }, - "node_modules/source-list-map": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.1.tgz", - "integrity": "sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw==", - "dev": true - }, "node_modules/source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", @@ -7672,18 +7302,6 @@ "safe-buffer": "~5.2.0" } }, - "node_modules/ssri": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-8.0.1.tgz", - "integrity": "sha512-97qShzy1AiyxvPNIkLWoGua7xoQzzPjQ0HAH4B0rWKo7SZ6USuPcrUiAFrws0UH8RrbWmgq3LMTObhPIHbbBeQ==", - "dev": true, - "dependencies": { - "minipass": "^3.1.1" - }, - "engines": { - "node": ">= 8" - } - }, "node_modules/statuses": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", @@ -7864,23 +7482,6 @@ "node": ">=6" } }, - "node_modules/tar": { - "version": "6.1.13", - "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.13.tgz", - "integrity": "sha512-jdIBIN6LTIe2jqzay/2vtYLlBHa3JF42ot3h1dW8Q0PaAG4v8rm0cvpVePtau5C6OKXGGcgO9q2AMNSWxiLqKw==", - "dev": true, - "dependencies": { - "chownr": "^2.0.0", - "fs-minipass": "^2.0.0", - "minipass": "^4.0.0", - "minizlib": "^2.1.1", - "mkdirp": "^1.0.3", - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/tar-fs": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.1.tgz", @@ -7893,12 +7494,6 @@ "tar-stream": "^2.1.4" } }, - "node_modules/tar-fs/node_modules/chownr": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", - "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==", - "dev": true - }, "node_modules/tar-stream": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz", @@ -7938,21 +7533,6 @@ "safe-buffer": "~5.2.0" } }, - "node_modules/tar/node_modules/minipass": { - "version": "4.2.8", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-4.2.8.tgz", - "integrity": "sha512-fNzuVyifolSLFL4NzpF+wEF4qrgqaaKX0haXPQEdQ7NKAN+WecoKMHV09YcuL/DHxrUsYQOK3MiuDf7Ip2OXfQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/tar/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - }, "node_modules/terser": { "version": "5.17.1", "resolved": "https://registry.npmjs.org/terser/-/terser-5.17.1.tgz", @@ -7972,20 +7552,16 @@ } }, "node_modules/terser-webpack-plugin": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-4.2.3.tgz", - "integrity": "sha512-jTgXh40RnvOrLQNgIkwEKnQ8rmHjHK4u+6UBEi+W+FPmvb+uo+chJXntKe7/3lW5mNysgSWD60KyesnhW8D6MQ==", + "version": "5.3.7", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.7.tgz", + "integrity": "sha512-AfKwIktyP7Cu50xNjXF/6Qb5lBNzYaWpU6YfoX3uZicTx0zTy0stDDCsvjDapKsSDvOeWo5MEq4TmdBy2cNoHw==", "dev": true, "dependencies": { - "cacache": "^15.0.5", - "find-cache-dir": "^3.3.1", - "jest-worker": "^26.5.0", - "p-limit": "^3.0.2", - "schema-utils": "^3.0.0", - "serialize-javascript": "^5.0.1", - "source-map": "^0.6.1", - "terser": "^5.3.4", - "webpack-sources": "^1.4.3" + "@jridgewell/trace-mapping": "^0.3.17", + "jest-worker": "^27.4.5", + "schema-utils": "^3.1.1", + "serialize-javascript": "^6.0.1", + "terser": "^5.16.5" }, "engines": { "node": ">= 10.13.0" @@ -7995,7 +7571,18 @@ "url": "https://opencollective.com/webpack" }, "peerDependencies": { - "webpack": "^4.0.0 || ^5.0.0" + "webpack": "^5.1.0" + }, + "peerDependenciesMeta": { + "@swc/core": { + "optional": true + }, + "esbuild": { + "optional": true + }, + "uglify-js": { + "optional": true + } } }, "node_modules/terser-webpack-plugin/node_modules/ajv": { @@ -8071,6 +7658,21 @@ "node": ">=8.17.0" } }, + "node_modules/tmp/node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/to-fast-properties": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", @@ -8218,24 +7820,6 @@ "node": ">=4" } }, - "node_modules/unique-filename": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz", - "integrity": "sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==", - "dev": true, - "dependencies": { - "unique-slug": "^2.0.0" - } - }, - "node_modules/unique-slug": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.2.tgz", - "integrity": "sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==", - "dev": true, - "dependencies": { - "imurmurhash": "^0.1.4" - } - }, "node_modules/universalify": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", @@ -8628,6 +8212,21 @@ } } }, + "node_modules/webpack-dev-server/node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/webpack-merge": { "version": "4.2.2", "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-4.2.2.tgz", @@ -8638,13 +8237,12 @@ } }, "node_modules/webpack-sources": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.4.3.tgz", - "integrity": "sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ==", + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz", + "integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==", "dev": true, - "dependencies": { - "source-list-map": "^2.0.0", - "source-map": "~0.6.1" + "engines": { + "node": ">=10.13.0" } }, "node_modules/webpack/node_modules/ajv": { @@ -8672,29 +8270,6 @@ "ajv": "^6.9.1" } }, - "node_modules/webpack/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/webpack/node_modules/jest-worker": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", - "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", - "dev": true, - "dependencies": { - "@types/node": "*", - "merge-stream": "^2.0.0", - "supports-color": "^8.0.0" - }, - "engines": { - "node": ">= 10.13.0" - } - }, "node_modules/webpack/node_modules/json-schema-traverse": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", @@ -8719,73 +8294,6 @@ "url": "https://opencollective.com/webpack" } }, - "node_modules/webpack/node_modules/serialize-javascript": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.1.tgz", - "integrity": "sha512-owoXEFjWRllis8/M1Q+Cw5k8ZH40e3zhp/ovX+Xr/vi1qj6QesbyXXViFbpNvWvPNAD62SutwEXavefrLJWj7w==", - "dev": true, - "dependencies": { - "randombytes": "^2.1.0" - } - }, - "node_modules/webpack/node_modules/supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/supports-color?sponsor=1" - } - }, - "node_modules/webpack/node_modules/terser-webpack-plugin": { - "version": "5.3.7", - "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.7.tgz", - "integrity": "sha512-AfKwIktyP7Cu50xNjXF/6Qb5lBNzYaWpU6YfoX3uZicTx0zTy0stDDCsvjDapKsSDvOeWo5MEq4TmdBy2cNoHw==", - "dev": true, - "dependencies": { - "@jridgewell/trace-mapping": "^0.3.17", - "jest-worker": "^27.4.5", - "schema-utils": "^3.1.1", - "serialize-javascript": "^6.0.1", - "terser": "^5.16.5" - }, - "engines": { - "node": ">= 10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^5.1.0" - }, - "peerDependenciesMeta": { - "@swc/core": { - "optional": true - }, - "esbuild": { - "optional": true - }, - "uglify-js": { - "optional": true - } - } - }, - "node_modules/webpack/node_modules/webpack-sources": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz", - "integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==", - "dev": true, - "engines": { - "node": ">=10.13.0" - } - }, "node_modules/websocket-driver": { "version": "0.7.4", "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.4.tgz", @@ -9001,18 +8509,6 @@ "buffer-crc32": "~0.2.3", "fd-slicer": "~1.1.0" } - }, - "node_modules/yocto-queue": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", - "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } } } } diff --git a/package.json b/package.json index 6c1665a..1766baf 100644 --- a/package.json +++ b/package.json @@ -44,18 +44,18 @@ "@babel/preset-env": "^7.21.4", "babel-loader": "^9.1.2", "clean-webpack-plugin": "^4.0.0", - "copy-webpack-plugin": "^6.1.1", - "jasmine-core": "^2.8.0", - "jshint": "^2.10.1", + "copy-webpack-plugin": "^11.0.0", + "jasmine-core": "^4.6.0", + "jshint": "^2.13.6", "karma": "^6.4.1", "karma-chrome-launcher": "^3.1.1", "karma-firefox-launcher": "^2.1.2", "karma-jasmine": "^5.1.0", "karma-sourcemap-loader": "^0.4.0", "karma-webpack": "^5.0.0", - "npm-run-all": "^4.1.2", + "npm-run-all": "^4.1.5", "puppeteer": "^19.9.1", - "terser-webpack-plugin": "^4.2.2", + "terser-webpack-plugin": "^5.3.7", "webpack": "^5.79.0", "webpack-cli": "^5.0.1", "webpack-dev-server": "^4.13.3" diff --git a/webpack.config.js b/webpack.config.js index 277f1f5..77befc4 100644 --- a/webpack.config.js +++ b/webpack.config.js @@ -85,10 +85,10 @@ if (ENV === 'production') { minimize: true, minimizer: [ new TerserPlugin({ - sourceMap: true, parallel: true, extractComments: false, terserOptions: { + sourceMap: true, warnings: true, compress: { warnings: true, From 3bde72de05a553e03633b530a6f1d1ad7521a2e5 Mon Sep 17 00:00:00 2001 From: Denis Hilt Date: Wed, 19 Apr 2023 14:08:00 +0200 Subject: [PATCH 9/9] v1.9.0 --- .github/workflows/build.yml | 2 +- README.md | 3 +++ bower.json | 2 +- dist/ui-scroll-grid.js | 2 +- dist/ui-scroll.js | 2 +- dist/ui-scroll.js.map | 2 +- dist/ui-scroll.min.js | 2 +- dist/ui-scroll.min.js.map | 2 +- package-lock.json | 4 ++-- package.json | 2 +- 10 files changed, 13 insertions(+), 10 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 90f1514..3512b85 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -14,7 +14,7 @@ on: jobs: build: runs-on: ubuntu-latest - timeout-minutes: 10 + timeout-minutes: 5 steps: - name: Dispatched? if: ${{ github.event_name == 'workflow_dispatch' }} diff --git a/README.md b/README.md index 1197a3c..ad89b81 100644 --- a/README.md +++ b/README.md @@ -478,6 +478,9 @@ Pull Request should include source code (./scr) changes, may include tests (./te ## Change log +### v1.9.0 + * Webpack 5 build. + ### v1.8.2 * Fixed edge cases when removing items. diff --git a/bower.json b/bower.json index cf3a85c..b2f6355 100644 --- a/bower.json +++ b/bower.json @@ -1,7 +1,7 @@ { "name": "angular-ui-scroll", "description": "AngularJS infinite scrolling module", - "version": "1.8.2", + "version": "1.9.0", "main": "./dist/ui-scroll.js", "homepage": "https://github.com/angular-ui/ui-scroll.git", "license": "MIT", diff --git a/dist/ui-scroll-grid.js b/dist/ui-scroll-grid.js index d1b9916..c3f72b1 100644 --- a/dist/ui-scroll-grid.js +++ b/dist/ui-scroll-grid.js @@ -1,7 +1,7 @@ /*! * angular-ui-scroll * https://github.com/angular-ui/ui-scroll - * Version: 1.8.2 -- 2023-04-18T22:14:45.556Z + * Version: 1.9.0 -- 2023-04-19T12:05:19.939Z * License: MIT */ /******/ (() => { // webpackBootstrap diff --git a/dist/ui-scroll.js b/dist/ui-scroll.js index c5d03e1..cd26995 100644 --- a/dist/ui-scroll.js +++ b/dist/ui-scroll.js @@ -1,7 +1,7 @@ /*! * angular-ui-scroll * https://github.com/angular-ui/ui-scroll - * Version: 1.8.2 -- 2023-04-18T22:14:45.556Z + * Version: 1.9.0 -- 2023-04-19T12:05:19.939Z * License: MIT */ /******/ (() => { // webpackBootstrap diff --git a/dist/ui-scroll.js.map b/dist/ui-scroll.js.map index 36e64ed..d509e2e 100644 --- a/dist/ui-scroll.js.map +++ b/dist/ui-scroll.js.map @@ -1 +1 @@ -{"version":3,"file":"ui-scroll.js","mappings":"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","sources":["webpack://angular-ui-scroll/./src/modules/jqLiteExtras.js","webpack://angular-ui-scroll/./src/modules/elementRoutines.js","webpack://angular-ui-scroll/./src/modules/utils.js","webpack://angular-ui-scroll/./src/modules/buffer.js","webpack://angular-ui-scroll/./src/modules/padding.js","webpack://angular-ui-scroll/./src/modules/viewport.js","webpack://angular-ui-scroll/./src/modules/adapter.js","webpack://angular-ui-scroll/./src/ui-scroll.js"],"sourcesContent":["/*!\r\n globals: angular, window\r\n List of used element methods available in JQuery but not in JQuery Lite\r\n element.before(elem)\r\n element.height()\r\n element.outerHeight(true)\r\n element.height(value) = only for Top/Bottom padding elements\r\n element.scrollTop()\r\n element.scrollTop(value)\r\n */\r\n\r\nexport default class JQLiteExtras {\r\n\r\n registerFor(element) {\r\n let convertToPx, css, getStyle, isWindow;\r\n // angular implementation blows up if elem is the window\r\n css = angular.element.prototype.css;\r\n\r\n element.prototype.css = function (name, value) {\r\n let self = this;\r\n let elem = self[0];\r\n if (!(!elem || elem.nodeType === 3 || elem.nodeType === 8 || !elem.style)) {\r\n return css.call(self, name, value);\r\n }\r\n };\r\n\r\n // as defined in angularjs v1.0.5\r\n isWindow = (obj) => obj && obj.document && obj.location && obj.alert && obj.setInterval;\r\n\r\n function scrollTo(self, direction, value) {\r\n let elem = self[0];\r\n let [method, prop, preserve] = {\r\n top: [\r\n 'scrollTop',\r\n 'pageYOffset',\r\n 'scrollLeft'\r\n ],\r\n left: [\r\n 'scrollLeft',\r\n 'pageXOffset',\r\n 'scrollTop'\r\n ]\r\n }[direction];\r\n\r\n const isValueDefined = typeof value !== 'undefined';\r\n if (isWindow(elem)) {\r\n if (isValueDefined) {\r\n return elem.scrollTo(self[preserve].call(self), value);\r\n }\r\n return (prop in elem) ? elem[prop] : elem.document.documentElement[method];\r\n } else {\r\n if (isValueDefined) {\r\n elem[method] = value;\r\n }\r\n return elem[method];\r\n }\r\n }\r\n\r\n if (window.getComputedStyle) {\r\n getStyle = (elem) => window.getComputedStyle(elem, null);\r\n convertToPx = (elem, value) => parseFloat(value);\r\n } else {\r\n getStyle = (elem) => elem.currentStyle;\r\n convertToPx = (elem, value) => {\r\n let left, result, rs, rsLeft, style;\r\n let core_pnum = /[+-]?(?:\\d*\\.|)\\d+(?:[eE][+-]?\\d+|)/.source;\r\n let rnumnonpx = new RegExp('^(' + core_pnum + ')(?!px)[a-z%]+$', 'i');\r\n\r\n if (!rnumnonpx.test(value)) {\r\n return parseFloat(value);\r\n }\r\n\r\n // ported from JQuery\r\n style = elem.style;\r\n left = style.left;\r\n rs = elem.runtimeStyle;\r\n rsLeft = rs && rs.left;\r\n if (rs) {\r\n rs.left = style.left;\r\n }\r\n // put in the new values to get a computed style out\r\n style.left = value;\r\n result = style.pixelLeft;\r\n style.left = left;\r\n if (rsLeft) {\r\n rs.left = rsLeft;\r\n }\r\n return result;\r\n };\r\n }\r\n\r\n function getMeasurements(elem, measure) {\r\n let base, borderA, borderB, computedMarginA, computedMarginB, computedStyle, dirA, dirB, marginA, marginB, paddingA, paddingB;\r\n\r\n if (isWindow(elem)) {\r\n base = document.documentElement[{height: 'clientHeight', width: 'clientWidth'}[measure]];\r\n\r\n return {\r\n base: base,\r\n padding: 0,\r\n border: 0,\r\n margin: 0\r\n };\r\n }\r\n\r\n // Start with offset property\r\n [\r\n base,\r\n dirA,\r\n dirB\r\n ] = {\r\n width: [\r\n elem.offsetWidth,\r\n 'Left',\r\n 'Right'\r\n ],\r\n height: [\r\n elem.offsetHeight,\r\n 'Top',\r\n 'Bottom'\r\n ]\r\n }[measure];\r\n\r\n computedStyle = getStyle(elem);\r\n paddingA = convertToPx(elem, computedStyle['padding' + dirA]) || 0;\r\n paddingB = convertToPx(elem, computedStyle['padding' + dirB]) || 0;\r\n borderA = convertToPx(elem, computedStyle['border' + dirA + 'Width']) || 0;\r\n borderB = convertToPx(elem, computedStyle['border' + dirB + 'Width']) || 0;\r\n computedMarginA = computedStyle['margin' + dirA];\r\n computedMarginB = computedStyle['margin' + dirB];\r\n\r\n // I do not care for width for now, so this hack is irrelevant\r\n // if ( !supportsPercentMargin )\r\n // computedMarginA = hackPercentMargin( elem, computedStyle, computedMarginA )\r\n // computedMarginB = hackPercentMargin( elem, computedStyle, computedMarginB )\r\n marginA = convertToPx(elem, computedMarginA) || 0;\r\n marginB = convertToPx(elem, computedMarginB) || 0;\r\n\r\n return {\r\n base: base,\r\n padding: paddingA + paddingB,\r\n border: borderA + borderB,\r\n margin: marginA + marginB\r\n };\r\n }\r\n\r\n function getWidthHeight(elem, direction, measure) {\r\n let computedStyle, result;\r\n\r\n let measurements = getMeasurements(elem, direction);\r\n\r\n if (measurements.base > 0) {\r\n return {\r\n base: measurements.base - measurements.padding - measurements.border,\r\n outer: measurements.base,\r\n outerfull: measurements.base + measurements.margin\r\n }[measure];\r\n }\r\n\r\n // Fall back to computed then uncomputed css if necessary\r\n computedStyle = getStyle(elem);\r\n result = computedStyle[direction];\r\n\r\n if (result < 0 || result === null) {\r\n result = elem.style[direction] || 0;\r\n }\r\n\r\n // Normalize \"\", auto, and prepare for extra\r\n result = parseFloat(result) || 0;\r\n\r\n return {\r\n base: result - measurements.padding - measurements.border,\r\n outer: result,\r\n outerfull: result + measurements.padding + measurements.border + measurements.margin\r\n }[measure];\r\n }\r\n\r\n // define missing methods\r\n return angular.forEach({\r\n before(newElem) {\r\n var children, elem, i, j, parent, ref, self;\r\n self = this;\r\n elem = self[0];\r\n parent = self.parent();\r\n children = parent.contents();\r\n if (children[0] === elem) {\r\n return parent.prepend(newElem);\r\n } else {\r\n for (i = j = 1, ref = children.length - 1; 1 <= ref ? j <= ref : j >= ref; i = 1 <= ref ? ++j : --j) {\r\n if (children[i] === elem) {\r\n angular.element(children[i - 1]).after(newElem);\r\n return;\r\n }\r\n }\r\n throw new Error('invalid DOM structure ' + elem.outerHTML);\r\n }\r\n },\r\n height (value){\r\n var self;\r\n self = this;\r\n if (typeof value !== 'undefined') {\r\n if (angular.isNumber(value)) {\r\n value = value + 'px';\r\n }\r\n return css.call(self, 'height', value);\r\n } else {\r\n return getWidthHeight(this[0], 'height', 'base');\r\n }\r\n },\r\n outerHeight(option) {\r\n return getWidthHeight(this[0], 'height', option ? 'outerfull' : 'outer');\r\n },\r\n outerWidth(option) {\r\n return getWidthHeight(this[0], 'width', option ? 'outerfull' : 'outer');\r\n },\r\n\r\n /*\r\n The offset setter method is not implemented\r\n */\r\n offset(value) {\r\n let docElem, win;\r\n let self = this;\r\n let box = {\r\n top: 0,\r\n left: 0\r\n };\r\n let elem = self[0];\r\n let doc = elem && elem.ownerDocument;\r\n\r\n if (arguments.length) {\r\n if (value === undefined) {\r\n return self;\r\n }\r\n // TODO: implement setter\r\n throw new Error('offset setter method is not implemented');\r\n }\r\n\r\n if (!doc) {\r\n return;\r\n }\r\n\r\n docElem = doc.documentElement;\r\n\r\n // TODO: Make sure it's not a disconnected DOM node\r\n\r\n if (elem.getBoundingClientRect != null) {\r\n box = elem.getBoundingClientRect();\r\n }\r\n\r\n win = doc.defaultView || doc.parentWindow;\r\n\r\n return {\r\n top: box.top + (win.pageYOffset || docElem.scrollTop) - (docElem.clientTop || 0),\r\n left: box.left + (win.pageXOffset || docElem.scrollLeft) - (docElem.clientLeft || 0)\r\n };\r\n },\r\n scrollTop(value) {\r\n return scrollTo(this, 'top', value);\r\n },\r\n scrollLeft(value) {\r\n return scrollTo(this, 'left', value);\r\n }\r\n }, (value, key) => {\r\n if (!element.prototype[key]) {\r\n return element.prototype[key] = value;\r\n }\r\n });\r\n }\r\n\r\n}\r\n","const hideClassToken = 'ng-ui-scroll-hide';\r\n\r\nexport default class ElementRoutines {\r\n\r\n static addCSSRules() {\r\n const selector = '.' + hideClassToken;\r\n const rules = 'display: none';\r\n const sheet = document.styleSheets[0];\r\n let index;\r\n try {\r\n index = sheet.cssRules.length;\r\n } catch (err) {\r\n index = 0;\r\n }\r\n if('insertRule' in sheet) {\r\n sheet.insertRule(selector + '{' + rules + '}', index);\r\n }\r\n else if('addRule' in sheet) {\r\n sheet.addRule(selector, rules, index);\r\n }\r\n }\r\n\r\n constructor($injector, $q) {\r\n this.$animate = ($injector.has && $injector.has('$animate')) ? $injector.get('$animate') : null;\r\n this.isAngularVersionLessThen1_3 = angular.version.major === 1 && angular.version.minor < 3;\r\n this.$q = $q;\r\n }\r\n\r\n hideElement(wrapper) {\r\n wrapper.element.addClass(hideClassToken);\r\n }\r\n\r\n showElement(wrapper) {\r\n wrapper.element.removeClass(hideClassToken);\r\n }\r\n\r\n insertElement(newElement, previousElement) {\r\n previousElement.after(newElement);\r\n return [];\r\n }\r\n\r\n removeElement(wrapper) {\r\n wrapper.element.remove();\r\n wrapper.scope.$destroy();\r\n return [];\r\n }\r\n\r\n insertElementAnimated(newElement, previousElement) {\r\n if (!this.$animate) {\r\n return this.insertElement(newElement, previousElement);\r\n }\r\n\r\n if (this.isAngularVersionLessThen1_3) {\r\n const deferred = this.$q.defer();\r\n // no need for parent - previous element is never null\r\n this.$animate.enter(newElement, null, previousElement, () => deferred.resolve());\r\n\r\n return [deferred.promise];\r\n }\r\n\r\n // no need for parent - previous element is never null\r\n return [this.$animate.enter(newElement, null, previousElement)];\r\n }\r\n\r\n removeElementAnimated(wrapper) {\r\n if (!this.$animate) {\r\n return this.removeElement(wrapper);\r\n }\r\n\r\n if (this.isAngularVersionLessThen1_3) {\r\n const deferred = this.$q.defer();\r\n this.$animate.leave(wrapper.element, () => {\r\n wrapper.scope.$destroy();\r\n return deferred.resolve();\r\n });\r\n\r\n return [deferred.promise];\r\n }\r\n\r\n return [(this.$animate.leave(wrapper.element)).then(() => wrapper.scope.$destroy())];\r\n }\r\n}","export const OPERATIONS = {\r\n PREPEND: 'prepend',\r\n APPEND: 'append',\r\n INSERT: 'insert',\r\n REMOVE: 'remove',\r\n NONE: 'none'\r\n};\r\n","import { OPERATIONS } from './utils';\r\n\r\nexport default function ScrollBuffer(elementRoutines, bufferSize, startIndex) {\r\n const buffer = Object.create(Array.prototype);\r\n\r\n angular.extend(buffer, {\r\n size: bufferSize,\r\n\r\n reset(startIndex) {\r\n buffer.remove(0, buffer.length);\r\n buffer.eof = false;\r\n buffer.bof = false;\r\n buffer.first = startIndex;\r\n buffer.next = startIndex;\r\n buffer.minIndex = startIndex;\r\n buffer.maxIndex = startIndex;\r\n buffer.minIndexUser = null;\r\n buffer.maxIndexUser = null;\r\n },\r\n\r\n append(items) {\r\n items.forEach((item) => {\r\n ++buffer.next;\r\n buffer.insert(OPERATIONS.APPEND, item);\r\n });\r\n buffer.maxIndex = buffer.eof ? buffer.next - 1 : Math.max(buffer.next - 1, buffer.maxIndex);\r\n },\r\n\r\n prepend(items, immutableTop) {\r\n items.reverse().forEach((item) => {\r\n if (immutableTop) {\r\n ++buffer.next;\r\n }\r\n else {\r\n --buffer.first;\r\n }\r\n buffer.insert(OPERATIONS.PREPEND, item);\r\n });\r\n buffer.minIndex = buffer.bof ? buffer.minIndex = buffer.first : Math.min(buffer.first, buffer.minIndex);\r\n },\r\n\r\n /**\r\n * inserts wrapped element in the buffer\r\n * the first argument is either operation keyword (see below) or a number for operation 'insert'\r\n * for insert the number is the index for the buffer element the new one have to be inserted after\r\n * operations: 'append', 'prepend', 'insert', 'remove', 'none'\r\n */\r\n insert(operation, item, shiftTop) {\r\n const wrapper = {\r\n item: item\r\n };\r\n\r\n if (operation % 1 === 0) { // it is an insert\r\n wrapper.op = OPERATIONS.INSERT;\r\n buffer.splice(operation, 0, wrapper);\r\n if (shiftTop) {\r\n buffer.first--;\r\n }\r\n else {\r\n buffer.next++;\r\n }\r\n } else {\r\n wrapper.op = operation;\r\n switch (operation) {\r\n case OPERATIONS.APPEND:\r\n buffer.push(wrapper);\r\n break;\r\n case OPERATIONS.PREPEND:\r\n buffer.unshift(wrapper);\r\n break;\r\n }\r\n }\r\n },\r\n\r\n // removes elements from buffer\r\n remove(arg1, arg2) {\r\n if (angular.isNumber(arg1)) {\r\n // removes items from arg1 (including) through arg2 (excluding)\r\n for (let i = arg1; i < arg2; i++) {\r\n elementRoutines.removeElement(buffer[i]);\r\n }\r\n return buffer.splice(arg1, arg2 - arg1);\r\n }\r\n // removes single item (wrapper) from the buffer\r\n buffer.splice(buffer.indexOf(arg1), 1);\r\n if (arg1.shiftTop && buffer.first === this.getAbsMinIndex()) {\r\n this.incrementMinIndex();\r\n }\r\n else {\r\n this.decrementMaxIndex();\r\n }\r\n if (arg1.shiftTop) {\r\n buffer.first++;\r\n }\r\n else {\r\n buffer.next--;\r\n }\r\n if (!buffer.length) {\r\n buffer.minIndex = Math.min(buffer.maxIndex, buffer.minIndex);\r\n }\r\n\r\n return elementRoutines.removeElementAnimated(arg1);\r\n },\r\n\r\n incrementMinIndex() {\r\n if (buffer.minIndexUser !== null) {\r\n if (buffer.minIndex > buffer.minIndexUser) {\r\n buffer.minIndexUser++;\r\n return;\r\n }\r\n if (buffer.minIndex === buffer.minIndexUser) {\r\n buffer.minIndexUser++;\r\n }\r\n }\r\n buffer.minIndex++;\r\n },\r\n\r\n decrementMaxIndex() {\r\n if (buffer.maxIndexUser !== null && buffer.maxIndex <= buffer.maxIndexUser) {\r\n buffer.maxIndexUser--;\r\n }\r\n buffer.maxIndex--;\r\n },\r\n\r\n getAbsMinIndex() {\r\n if (buffer.minIndexUser !== null) {\r\n return Math.min(buffer.minIndexUser, buffer.minIndex);\r\n }\r\n return buffer.minIndex;\r\n },\r\n\r\n getAbsMaxIndex() {\r\n if (buffer.maxIndexUser !== null) {\r\n return Math.max(buffer.maxIndexUser, buffer.maxIndex);\r\n }\r\n return buffer.maxIndex;\r\n },\r\n\r\n effectiveHeight(elements) {\r\n if (!elements.length) {\r\n return 0;\r\n }\r\n let top = Number.MAX_VALUE;\r\n let bottom = Number.NEGATIVE_INFINITY;\r\n elements.forEach((wrapper) => {\r\n if (wrapper.element[0].offsetParent) {\r\n // element style is not display:none\r\n top = Math.min(top, wrapper.element.offset().top);\r\n bottom = Math.max(bottom, wrapper.element.offset().top + wrapper.element.outerHeight(true));\r\n }\r\n });\r\n return Math.max(0, bottom - top);\r\n },\r\n\r\n getItems() {\r\n return buffer.filter(item => item.op === OPERATIONS.NONE);\r\n },\r\n\r\n getFirstItem() {\r\n const list = buffer.getItems();\r\n if (!list.length) {\r\n return null;\r\n }\r\n return list[0].item;\r\n },\r\n\r\n getLastItem() {\r\n const list = buffer.getItems();\r\n if (!list.length) {\r\n return null;\r\n }\r\n return list[list.length - 1].item;\r\n }\r\n\r\n });\r\n\r\n buffer.reset(startIndex);\r\n\r\n return buffer;\r\n}\r\n","// Can't just extend the Array, due to Babel does not support built-in classes extending\r\n// This solution was taken from https://stackoverflow.com/questions/46897414/es6-class-extends-array-workaround-for-es5-babel-transpile\r\nclass CacheProto {\r\n add(item) {\r\n for (let i = this.length - 1; i >= 0; i--) {\r\n if (this[i].index === item.scope.$index) {\r\n this[i].height = item.element.outerHeight();\r\n return;\r\n }\r\n }\r\n this.push({\r\n index: item.scope.$index,\r\n height: item.element.outerHeight()\r\n });\r\n this.sort((a, b) => ((a.index < b.index) ? -1 : ((a.index > b.index) ? 1 : 0)));\r\n }\r\n\r\n remove(argument, _shiftTop) {\r\n const index = argument % 1 === 0 ? argument : argument.scope.$index;\r\n const shiftTop = argument % 1 === 0 ? _shiftTop : argument.shiftTop;\r\n for (let i = this.length - 1; i >= 0; i--) {\r\n if (this[i].index === index) {\r\n this.splice(i, 1);\r\n break;\r\n }\r\n }\r\n if (!shiftTop) {\r\n for (let i = this.length - 1; i >= 0; i--) {\r\n if (this[i].index > index) {\r\n this[i].index--;\r\n }\r\n }\r\n }\r\n }\r\n\r\n clear() {\r\n this.length = 0;\r\n }\r\n}\r\n\r\nfunction Cache() {\r\n const instance = [];\r\n instance.push.apply(instance, arguments);\r\n Object.setPrototypeOf(instance, Cache.prototype);\r\n return instance;\r\n}\r\nCache.prototype = Object.create(Array.prototype);\r\nObject.getOwnPropertyNames(CacheProto.prototype).forEach(methodName =>\r\n Cache.prototype[methodName] = CacheProto.prototype[methodName]\r\n);\r\n\r\nfunction generateElement(template) {\r\n if (template.nodeType !== Node.ELEMENT_NODE) {\r\n throw new Error('ui-scroll directive requires an Element node for templating the view');\r\n }\r\n let element;\r\n switch (template.tagName.toLowerCase()) {\r\n case 'dl':\r\n throw new Error(`ui-scroll directive does not support <${template.tagName}> as a repeating tag: ${template.outerHTML}`);\r\n case 'tr':\r\n let table = angular.element('
    ');\r\n element = table.find('tr');\r\n break;\r\n case 'li':\r\n element = angular.element('

  • ');\r\n break;\r\n default:\r\n element = angular.element('
    ');\r\n }\r\n return element;\r\n}\r\n\r\nclass Padding {\r\n constructor(template) {\r\n this.element = generateElement(template);\r\n this.cache = new Cache();\r\n }\r\n\r\n height() {\r\n return this.element.height.apply(this.element, arguments);\r\n }\r\n}\r\n\r\nexport default Padding;","import Padding from './padding';\r\n\r\nexport default function Viewport(elementRoutines, buffer, element, viewportController, $rootScope, padding) {\r\n let topPadding = null;\r\n let bottomPadding = null;\r\n const viewport = viewportController && viewportController.viewport ? viewportController.viewport : angular.element(window);\r\n const container = viewportController && viewportController.container ? viewportController.container : undefined;\r\n const scope = viewportController && viewportController.scope ? viewportController.scope : $rootScope;\r\n\r\n viewport.css({\r\n 'overflow-anchor': 'none',\r\n 'overflow-y': 'auto',\r\n 'display': 'block'\r\n });\r\n\r\n function bufferPadding() {\r\n return viewport.outerHeight() * padding; // some extra space to initiate preload\r\n }\r\n\r\n angular.extend(viewport, {\r\n getScope() {\r\n return scope;\r\n },\r\n\r\n createPaddingElements(template) {\r\n topPadding = new Padding(template);\r\n bottomPadding = new Padding(template);\r\n element.before(topPadding.element);\r\n element.after(bottomPadding.element);\r\n topPadding.height(0);\r\n bottomPadding.height(0);\r\n },\r\n\r\n applyContainerStyle() {\r\n if (!container) {\r\n return true;\r\n }\r\n if (container !== viewport) {\r\n viewport.css('height', window.getComputedStyle(container[0]).height);\r\n }\r\n return viewport.height() > 0;\r\n },\r\n\r\n bottomDataPos() {\r\n let scrollHeight = viewport[0].scrollHeight;\r\n scrollHeight = scrollHeight != null ? scrollHeight : viewport[0].document.documentElement.scrollHeight;\r\n return scrollHeight - bottomPadding.height();\r\n },\r\n\r\n topDataPos() {\r\n return topPadding.height();\r\n },\r\n\r\n bottomVisiblePos() {\r\n return viewport.scrollTop() + viewport.outerHeight();\r\n },\r\n\r\n topVisiblePos() {\r\n return viewport.scrollTop();\r\n },\r\n\r\n insertElement(e, sibling) {\r\n return elementRoutines.insertElement(e, sibling || topPadding.element);\r\n },\r\n\r\n insertElementAnimated(e, sibling) {\r\n return elementRoutines.insertElementAnimated(e, sibling || topPadding.element);\r\n },\r\n\r\n shouldLoadBottom() {\r\n return !buffer.eof && viewport.bottomDataPos() < viewport.bottomVisiblePos() + bufferPadding();\r\n },\r\n\r\n clipBottom() {\r\n // clip the invisible items off the bottom\r\n let overage = 0;\r\n let overageHeight = 0;\r\n let itemHeight = 0;\r\n let emptySpaceHeight = viewport.bottomDataPos() - viewport.bottomVisiblePos() - bufferPadding();\r\n\r\n for (let i = buffer.length - 1; i >= 0; i--) {\r\n itemHeight = buffer[i].element.outerHeight(true);\r\n if (overageHeight + itemHeight > emptySpaceHeight) {\r\n break;\r\n }\r\n bottomPadding.cache.add(buffer[i]);\r\n overageHeight += itemHeight;\r\n overage++;\r\n }\r\n\r\n if (overage > 0) {\r\n buffer.eof = false;\r\n buffer.remove(buffer.length - overage, buffer.length);\r\n buffer.next -= overage;\r\n viewport.adjustPaddings();\r\n }\r\n },\r\n\r\n shouldLoadTop() {\r\n return !buffer.bof && (viewport.topDataPos() > viewport.topVisiblePos() - bufferPadding());\r\n },\r\n\r\n clipTop() {\r\n // clip the invisible items off the top\r\n let overage = 0;\r\n let overageHeight = 0;\r\n let itemHeight = 0;\r\n let emptySpaceHeight = viewport.topVisiblePos() - viewport.topDataPos() - bufferPadding();\r\n\r\n for (let i = 0; i < buffer.length; i++) {\r\n itemHeight = buffer[i].element.outerHeight(true);\r\n if (overageHeight + itemHeight > emptySpaceHeight) {\r\n break;\r\n }\r\n topPadding.cache.add(buffer[i]);\r\n overageHeight += itemHeight;\r\n overage++;\r\n }\r\n\r\n if (overage > 0) {\r\n // we need to adjust top padding element before items are removed from top\r\n // to avoid strange behaviour of scroll bar during remove top items when we are at the very bottom\r\n topPadding.height(topPadding.height() + overageHeight);\r\n buffer.bof = false;\r\n buffer.remove(0, overage);\r\n buffer.first += overage;\r\n }\r\n },\r\n\r\n adjustPaddings() {\r\n if (!buffer.length) {\r\n return;\r\n }\r\n\r\n // precise heights calculation based on items that are in buffer or that were in buffer once\r\n const visibleItemsHeight = buffer.reduce((summ, item) => summ + item.element.outerHeight(true), 0);\r\n\r\n let topPaddingHeight = 0, topCount = 0;\r\n topPadding.cache.forEach(item => {\r\n if (item.index < buffer.first) {\r\n topPaddingHeight += item.height;\r\n topCount++;\r\n }\r\n });\r\n\r\n let bottomPaddingHeight = 0, bottomCount = 0;\r\n bottomPadding.cache.forEach(item => {\r\n if (item.index >= buffer.next) {\r\n bottomPaddingHeight += item.height;\r\n bottomCount++;\r\n }\r\n });\r\n\r\n const totalHeight = visibleItemsHeight + topPaddingHeight + bottomPaddingHeight;\r\n const averageItemHeight = totalHeight / (topCount + bottomCount + buffer.length);\r\n\r\n // average heights calculation, items that have never been reached\r\n let adjustTopPadding = buffer.minIndexUser !== null && buffer.minIndex > buffer.minIndexUser;\r\n let adjustBottomPadding = buffer.maxIndexUser !== null && buffer.maxIndex < buffer.maxIndexUser;\r\n let topPaddingHeightAdd = adjustTopPadding ? (buffer.minIndex - buffer.minIndexUser) * averageItemHeight : 0;\r\n let bottomPaddingHeightAdd = adjustBottomPadding ? (buffer.maxIndexUser - buffer.maxIndex) * averageItemHeight : 0;\r\n\r\n // paddings combine adjustment\r\n topPadding.height(topPaddingHeight + topPaddingHeightAdd);\r\n bottomPadding.height(bottomPaddingHeight + bottomPaddingHeightAdd);\r\n },\r\n\r\n onAfterMinIndexSet(topPaddingHeightOld) {\r\n // additional scrollTop adjustment in case of datasource.minIndex external set\r\n if (buffer.minIndexUser !== null && buffer.minIndex > buffer.minIndexUser) {\r\n let diff = topPadding.height() - topPaddingHeightOld;\r\n viewport.scrollTop(viewport.scrollTop() + diff);\r\n while((diff -= viewport.scrollTop()) > 0) {\r\n bottomPadding.height(bottomPadding.height() + diff);\r\n viewport.scrollTop(viewport.scrollTop() + diff);\r\n }\r\n }\r\n },\r\n\r\n onAfterPrepend(updates) {\r\n if (!updates.prepended.length) {\r\n return;\r\n }\r\n const height = buffer.effectiveHeight(updates.prepended);\r\n const paddingHeight = topPadding.height() - height;\r\n if (paddingHeight >= 0) {\r\n topPadding.height(paddingHeight);\r\n return;\r\n }\r\n const position = viewport.scrollTop();\r\n const newPosition = position - paddingHeight;\r\n viewport.synthetic = { previous: position, next: newPosition };\r\n topPadding.height(0);\r\n viewport.scrollTop(newPosition);\r\n },\r\n\r\n resetTopPadding() {\r\n topPadding.height(0);\r\n topPadding.cache.clear();\r\n },\r\n\r\n resetBottomPadding() {\r\n bottomPadding.height(0);\r\n bottomPadding.cache.clear();\r\n },\r\n\r\n removeCacheItem(item, shiftTop) {\r\n topPadding.cache.remove(item, shiftTop);\r\n bottomPadding.cache.remove(item, shiftTop);\r\n },\r\n\r\n removeItem(item) {\r\n this.removeCacheItem(item);\r\n return buffer.remove(item);\r\n }\r\n });\r\n\r\n return viewport;\r\n}\r\n","import { OPERATIONS } from './utils';\r\n\r\nclass Adapter {\r\n\r\n constructor($scope, $parse, $attr, viewport, buffer, doAdjust, reload) {\r\n this.$parse = $parse;\r\n this.$attr = $attr;\r\n this.viewport = viewport;\r\n this.buffer = buffer;\r\n\r\n this.doAdjust = doAdjust;\r\n this.reload = reload;\r\n\r\n this.isLoading = false;\r\n this.disabled = false;\r\n\r\n const viewportScope = viewport.getScope();\r\n this.startScope = viewportScope.$parent ? viewportScope : $scope;\r\n\r\n this.publicContext = {};\r\n this.assignAdapter($attr.adapter);\r\n this.generatePublicContext();\r\n }\r\n\r\n assignAdapter(adapterAttr) {\r\n if (!adapterAttr || !(adapterAttr = adapterAttr.replace(/^\\s+|\\s+$/gm, ''))) {\r\n return;\r\n }\r\n let adapterOnScope;\r\n\r\n try {\r\n this.$parse(adapterAttr).assign(this.startScope, {});\r\n adapterOnScope = this.$parse(adapterAttr)(this.startScope);\r\n }\r\n catch (error) {\r\n error.message = `Angular ui-scroll Adapter assignment exception.\\n` +\r\n `Can't parse \"${adapterAttr}\" expression.\\n` +\r\n error.message;\r\n throw error;\r\n }\r\n\r\n angular.extend(adapterOnScope, this.publicContext);\r\n this.publicContext = adapterOnScope;\r\n }\r\n\r\n generatePublicContext() {\r\n // these methods will be accessible out of ui-scroll via user defined adapter\r\n const publicMethods = ['reload', 'applyUpdates', 'append', 'prepend', 'isBOF', 'isEOF', 'isEmpty'];\r\n for (let i = publicMethods.length - 1; i >= 0; i--) {\r\n this.publicContext[publicMethods[i]] = this[publicMethods[i]].bind(this);\r\n }\r\n\r\n // these read-only props will be accessible out of ui-scroll via user defined adapter\r\n const publicProps = ['isLoading', 'topVisible', 'topVisibleElement', 'topVisibleScope', 'bottomVisible', 'bottomVisibleElement', 'bottomVisibleScope'];\r\n for (let i = publicProps.length - 1; i >= 0; i--) {\r\n let property, attr = this.$attr[publicProps[i]];\r\n Object.defineProperty(this, publicProps[i], {\r\n get: () => property,\r\n set: (value) => {\r\n property = value;\r\n this.publicContext[publicProps[i]] = value;\r\n if (attr) {\r\n this.$parse(attr).assign(this.startScope, value);\r\n }\r\n }\r\n });\r\n }\r\n\r\n // read-only immediately calculated public properties\r\n const publicPropsImmediate = ['bufferFirst', 'bufferLast', 'bufferLength'];\r\n for (let i = publicPropsImmediate.length - 1; i >= 0; i--) {\r\n Object.defineProperty(this.publicContext, publicPropsImmediate[i], {\r\n get: () => this[publicPropsImmediate[i]]\r\n });\r\n }\r\n\r\n // non-read-only public property\r\n Object.defineProperty(this.publicContext, 'disabled', {\r\n get: () => this.disabled,\r\n set: (value) => (!(this.disabled = value)) ? this.doAdjust() : null\r\n });\r\n }\r\n\r\n loading(value) {\r\n this.isLoading = value;\r\n }\r\n\r\n isBOF() {\r\n return this.buffer.bof;\r\n }\r\n\r\n isEOF() {\r\n return this.buffer.eof;\r\n }\r\n\r\n isEmpty() {\r\n return !this.buffer.length;\r\n }\r\n\r\n get bufferLength() {\r\n return this.buffer.getItems().length;\r\n }\r\n\r\n get bufferFirst() {\r\n return this.buffer.getFirstItem();\r\n }\r\n\r\n get bufferLast() {\r\n return this.buffer.getLastItem();\r\n }\r\n\r\n append(newItems) {\r\n this.buffer.append(newItems);\r\n this.doAdjust();\r\n this.viewport.clipTop();\r\n this.viewport.clipBottom();\r\n }\r\n\r\n prepend(newItems, options = {}) {\r\n this.buffer.prepend(newItems, options.immutableTop);\r\n this.doAdjust();\r\n this.viewport.clipTop();\r\n this.viewport.clipBottom();\r\n }\r\n\r\n applyUpdates(arg1, arg2, arg3) {\r\n if (typeof arg1 === 'function') {\r\n this.applyUpdatesFunc(arg1, arg2);\r\n } else {\r\n this.applyUpdatesIndex(arg1, arg2, arg3);\r\n }\r\n this.doAdjust();\r\n }\r\n\r\n applyUpdatesFunc(cb, options = {}) {\r\n this.buffer.slice(0).forEach((wrapper) => {\r\n // we need to do it on the buffer clone, because buffer content\r\n // may change as we iterate through\r\n this.applyUpdate(wrapper, cb(wrapper.item, wrapper.scope, wrapper.element), options);\r\n });\r\n }\r\n\r\n applyUpdatesIndex(index, newItems, options = {}) {\r\n if (index % 1 !== 0) {\r\n throw new Error('applyUpdates - ' + index + ' is not a valid index (should be an integer)');\r\n }\r\n const _index = index - this.buffer.first;\r\n\r\n // apply updates only within buffer\r\n if (_index >= 0 && _index < this.buffer.length) {\r\n this.applyUpdate(this.buffer[_index], newItems, options);\r\n }\r\n // out-of-buffer case: deletion may affect Paddings\r\n else if(index >= this.buffer.getAbsMinIndex() && index <= this.buffer.getAbsMaxIndex()) {\r\n if(angular.isArray(newItems) && !newItems.length) {\r\n this.viewport.removeCacheItem(index, !options.immutableTop && index === this.buffer.minIndex);\r\n if (!options.immutableTop && index === this.buffer.getAbsMinIndex()) {\r\n this.buffer.incrementMinIndex();\r\n }\r\n else {\r\n this.buffer.decrementMaxIndex();\r\n }\r\n }\r\n }\r\n }\r\n\r\n applyUpdate(wrapper, newItems, options = {}) {\r\n if (!angular.isArray(newItems)) {\r\n return;\r\n }\r\n let position = this.buffer.indexOf(wrapper);\r\n if (!newItems.reverse().some(newItem => newItem === wrapper.item)) {\r\n wrapper.op = OPERATIONS.REMOVE;\r\n // try to catch \"first\" edge case on remove\r\n if (!options.immutableTop && !newItems.length) {\r\n // this is the first item, or the previous one's part of the \"shift-top\" group\r\n if (\r\n (position === 0 && this.buffer.bof) ||\r\n (position !== 0 && this.buffer[position - 1].shiftTop)\r\n ) {\r\n wrapper.shiftTop = true;\r\n }\r\n }\r\n }\r\n newItems.forEach((newItem) => {\r\n if (newItem === wrapper.item) {\r\n position--;\r\n } else {\r\n // 3 parameter (shiftTop) is to catch \"first\" edge case on insert\r\n this.buffer.insert(position + 1, newItem, !options.immutableTop && position === -1);\r\n }\r\n });\r\n }\r\n\r\n calculateProperties() {\r\n let rowTop = null, topHeight = 0;\r\n let topDone = false, bottomDone = false;\r\n const length = this.buffer.length;\r\n\r\n for (let i = 0; i < length; i++) {\r\n const item = this.buffer[i];\r\n const itemTop = item.element.offset().top;\r\n\r\n if (rowTop !== itemTop) { // a new row condition\r\n const itemHeight = item.element.outerHeight(true);\r\n const top = this.viewport.topDataPos() + topHeight + itemHeight;\r\n\r\n if (!topDone && top > this.viewport.topVisiblePos()) {\r\n topDone = true;\r\n this['topVisible'] = item.item;\r\n this['topVisibleElement'] = item.element;\r\n this['topVisibleScope'] = item.scope;\r\n }\r\n if (!bottomDone && (top >= this.viewport.bottomVisiblePos() || (i === length - 1 && this.isEOF()))) {\r\n bottomDone = true;\r\n this['bottomVisible'] = item.item;\r\n this['bottomVisibleElement'] = item.element;\r\n this['bottomVisibleScope'] = item.scope;\r\n }\r\n topHeight += itemHeight;\r\n }\r\n rowTop = itemTop;\r\n\r\n if (topDone && bottomDone) {\r\n break;\r\n }\r\n }\r\n }\r\n\r\n}\r\n\r\nexport default Adapter;\r\n","import JQLiteExtras from './modules/jqLiteExtras';\r\nimport ElementRoutines from './modules/elementRoutines.js';\r\nimport ScrollBuffer from './modules/buffer.js';\r\nimport Viewport from './modules/viewport.js';\r\nimport Adapter from './modules/adapter.js';\r\nimport { OPERATIONS } from './modules/utils';\r\n\r\nangular.module('ui.scroll', [])\r\n\r\n .constant('JQLiteExtras', JQLiteExtras)\r\n .run(['JQLiteExtras', (JQLiteExtras) => {\r\n const elt = angular.element;\r\n !(window.jQuery && elt.fn && elt.fn.jquery) ? (new JQLiteExtras()).registerFor(elt) : null;\r\n ElementRoutines.addCSSRules();\r\n }])\r\n\r\n .directive('uiScrollViewport', function () {\r\n return {\r\n restrict: 'A',\r\n controller: [\r\n '$scope',\r\n '$element',\r\n function (scope, element) {\r\n this.container = element;\r\n this.viewport = element;\r\n this.scope = scope;\r\n\r\n angular.forEach(element.children(), child => {\r\n if (child.tagName.toLowerCase() === 'tbody') {\r\n this.viewport = angular.element(child);\r\n }\r\n });\r\n\r\n return this;\r\n }\r\n ]\r\n };\r\n })\r\n\r\n .directive('uiScroll', [\r\n '$log',\r\n '$injector',\r\n '$rootScope',\r\n '$timeout',\r\n '$interval',\r\n '$q',\r\n '$parse',\r\n function (console, $injector, $rootScope, $timeout, $interval, $q, $parse) {\r\n\r\n return {\r\n require: ['?^uiScrollViewport'],\r\n restrict: 'A',\r\n transclude: 'element',\r\n priority: 1000,\r\n terminal: true,\r\n link: link\r\n };\r\n\r\n function link($scope, element, $attr, controllers, linker) {\r\n const match = $attr.uiScroll.match(/^\\s*(\\w+)\\s+in\\s+([(\\w|\\$)\\.]+)\\s*$/);\r\n if (!match) {\r\n throw new Error('Expected uiScroll in form of \\'_item_ in _datasource_\\' but got \\'' + $attr.uiScroll + '\\'');\r\n }\r\n\r\n function parseNumber(value, defaultValue, isFloat) {\r\n if (!isFloat) {\r\n value = value === null ? defaultValue : Math.floor(value);\r\n }\r\n return isNaN(value) ? defaultValue : value;\r\n }\r\n\r\n function parseNumericAttr(value, defaultValue, isFloat) {\r\n const result = $parse(value)($scope);\r\n return parseNumber(result, defaultValue, isFloat);\r\n }\r\n\r\n function parseBooleanAttr(value, defaultValue) {\r\n const result = $parse(value)($scope);\r\n return typeof result === 'boolean' ? result : defaultValue;\r\n }\r\n\r\n const BUFFER_MIN = 3;\r\n const BUFFER_DEFAULT = 10;\r\n const PADDING_MIN = 0.3;\r\n const PADDING_DEFAULT = 0.5;\r\n const HANDLE_INERTIA_DEFAULT = true;\r\n const START_INDEX_DEFAULT = 1;\r\n const MAX_VIEWPORT_DELAY = 500;\r\n const VIEWPORT_POLLING_INTERVAL = 50;\r\n\r\n let datasource = null;\r\n const itemName = match[1];\r\n const datasourceName = match[2];\r\n const viewportController = controllers[0];\r\n const bufferSize = Math.max(BUFFER_MIN, parseNumericAttr($attr.bufferSize, BUFFER_DEFAULT));\r\n const padding = Math.max(PADDING_MIN, parseNumericAttr($attr.padding, PADDING_DEFAULT, true));\r\n const handleInertia = parseBooleanAttr($attr.handleInertia, HANDLE_INERTIA_DEFAULT);\r\n let startIndex = parseNumericAttr($attr.startIndex, START_INDEX_DEFAULT);\r\n let ridActual = 0; // current data revision id\r\n let pending = [];\r\n\r\n const elementRoutines = new ElementRoutines($injector, $q);\r\n const buffer = new ScrollBuffer(elementRoutines, bufferSize, startIndex);\r\n const viewport = new Viewport(elementRoutines, buffer, element, viewportController, $rootScope, padding);\r\n const adapter = new Adapter($scope, $parse, $attr, viewport, buffer, doAdjust, reload);\r\n\r\n if (viewportController) {\r\n viewportController.adapter = adapter;\r\n }\r\n\r\n const isDatasourceValid = () =>\r\n Object.prototype.toString.call(datasource) === '[object Object]' && typeof datasource.get === 'function';\r\n\r\n datasource = $parse(datasourceName)($scope); // try to get datasource on scope\r\n if (!isDatasourceValid()) {\r\n datasource = $injector.get(datasourceName); // try to inject datasource as service\r\n if (!isDatasourceValid()) {\r\n throw new Error(datasourceName + ' is not a valid datasource');\r\n }\r\n }\r\n\r\n let onRenderHandlers = [];\r\n function onRenderHandlersRunner() {\r\n onRenderHandlers.forEach(handler => handler.run());\r\n onRenderHandlers = [];\r\n }\r\n function persistDatasourceIndex(datasource, propName) {\r\n let getter;\r\n // need to postpone min/maxIndexUser processing if the view is empty\r\n if(angular.isNumber(datasource[propName])) {\r\n getter = datasource[propName];\r\n if(angular.isNumber(getter)) {\r\n onRenderHandlers = onRenderHandlers.filter(handler => handler.id !== propName);\r\n onRenderHandlers.push({\r\n id: propName,\r\n run: () => datasource[propName] = getter\r\n });\r\n }\r\n }\r\n }\r\n\r\n function defineDatasourceIndex(datasource, propName, propUserName) {\r\n const descriptor = Object.getOwnPropertyDescriptor(datasource, propName);\r\n if (descriptor && (descriptor.set || descriptor.get)) {\r\n return;\r\n }\r\n let getter;\r\n persistDatasourceIndex(datasource, propName);\r\n Object.defineProperty(datasource, propName, {\r\n set: (value) => {\r\n getter = value;\r\n if(pending.length && !buffer.length) {\r\n persistDatasourceIndex(datasource, propName);\r\n return;\r\n }\r\n buffer[propUserName] = value;\r\n const topPaddingHeightOld = viewport.topDataPos();\r\n viewport.adjustPaddings();\r\n if (propName === 'minIndex') {\r\n viewport.onAfterMinIndexSet(topPaddingHeightOld);\r\n }\r\n },\r\n get: () => getter\r\n });\r\n }\r\n\r\n defineDatasourceIndex(datasource, 'minIndex', 'minIndexUser');\r\n defineDatasourceIndex(datasource, 'maxIndex', 'maxIndexUser');\r\n\r\n const fetchNext = (datasource.get.length !== 2) ?\r\n (success) => datasource.get(buffer.next, bufferSize, success) :\r\n (success) => {\r\n datasource.get({\r\n index: buffer.next,\r\n append: buffer.length ? buffer[buffer.length - 1].item : void 0,\r\n count: bufferSize\r\n }, success);\r\n };\r\n\r\n const fetchPrevious = (datasource.get.length !== 2) ?\r\n (success) => datasource.get(buffer.first - bufferSize, bufferSize, success) :\r\n (success) => {\r\n datasource.get({\r\n index: buffer.first - bufferSize,\r\n prepend: buffer.length ? buffer[0].item : void 0,\r\n count: bufferSize\r\n }, success);\r\n };\r\n\r\n const initialize = () => {\r\n let tryCount = 0;\r\n if(!viewport.applyContainerStyle()) {\r\n const timer = $interval(() => {\r\n tryCount++;\r\n if(viewport.applyContainerStyle()) {\r\n $interval.cancel(timer);\r\n doAdjust();\r\n }\r\n if(tryCount * VIEWPORT_POLLING_INTERVAL >= MAX_VIEWPORT_DELAY) {\r\n $interval.cancel(timer);\r\n throw Error(`ui-scroll directive requires a viewport with non-zero height in ${MAX_VIEWPORT_DELAY}ms`);\r\n }\r\n }, VIEWPORT_POLLING_INTERVAL);\r\n }\r\n else {\r\n doAdjust();\r\n }\r\n };\r\n\r\n /**\r\n * Build padding elements\r\n *\r\n * Calling linker is the only way I found to get access to the tag name of the template\r\n * to prevent the directive scope from pollution a new scope is created and destroyed\r\n * right after the builder creation is completed\r\n */\r\n linker((clone, scope) => {\r\n viewport.createPaddingElements(clone[0]);\r\n // we do not include the clone in the DOM. It means that the nested directives will not\r\n // be able to reach the parent directives, but in this case it is intentional because we\r\n // created the clone to access the template tag name\r\n scope.$destroy();\r\n clone.remove();\r\n });\r\n\r\n $scope.$on('$destroy', () => {\r\n unbindEvents();\r\n viewport.off('mousewheel', wheelHandler);\r\n });\r\n\r\n viewport.on('mousewheel', wheelHandler);\r\n\r\n initialize();\r\n\r\n /* Private function definitions */\r\n\r\n function isInvalid(rid) {\r\n return (rid && rid !== ridActual) || $scope.$$destroyed;\r\n }\r\n\r\n function bindEvents() {\r\n viewport.on('resize', resizeAndScrollHandler);\r\n viewport.on('scroll', resizeAndScrollHandler);\r\n }\r\n\r\n function unbindEvents() {\r\n viewport.off('resize', resizeAndScrollHandler);\r\n viewport.off('scroll', resizeAndScrollHandler);\r\n }\r\n\r\n function reload() {\r\n unbindEvents();\r\n viewport.resetTopPadding();\r\n viewport.resetBottomPadding();\r\n if (arguments.length) {\r\n startIndex = parseNumber(arguments[0], START_INDEX_DEFAULT, false);\r\n }\r\n buffer.reset(startIndex);\r\n persistDatasourceIndex(datasource, 'minIndex');\r\n persistDatasourceIndex(datasource, 'maxIndex');\r\n doAdjust();\r\n }\r\n\r\n function isElementVisible(wrapper) {\r\n return wrapper.element.height() && wrapper.element[0].offsetParent;\r\n }\r\n\r\n function visibilityWatcher(wrapper) {\r\n if (isElementVisible(wrapper)) {\r\n buffer.forEach((item) => {\r\n if (typeof item.unregisterVisibilityWatcher === 'function') {\r\n item.unregisterVisibilityWatcher();\r\n delete item.unregisterVisibilityWatcher;\r\n }\r\n });\r\n if (!pending.length) {\r\n $timeout(() => doAdjust());\r\n }\r\n }\r\n }\r\n\r\n function insertWrapperContent(wrapper, insertAfter) {\r\n createElement(wrapper, insertAfter, viewport.insertElement);\r\n if (!isElementVisible(wrapper)) {\r\n wrapper.unregisterVisibilityWatcher = wrapper.scope.$watch(() => visibilityWatcher(wrapper));\r\n }\r\n elementRoutines.hideElement(wrapper); // hide inserted elements before data binding\r\n }\r\n\r\n function createElement(wrapper, insertAfter, insertElement) {\r\n let promises = null;\r\n const sibling = (insertAfter > 0) ? buffer[insertAfter - 1].element : undefined;\r\n linker((clone, scope) => {\r\n promises = insertElement(clone, sibling);\r\n wrapper.element = clone;\r\n wrapper.scope = scope;\r\n scope[itemName] = wrapper.item;\r\n });\r\n // ui-scroll-grid apply\r\n if (adapter.transform) {\r\n const tdInitializer = wrapper.scope.uiScrollTdInitializer;\r\n if (tdInitializer && tdInitializer.linking) {\r\n adapter.transform(wrapper.scope, wrapper.element);\r\n } else {\r\n wrapper.scope.uiScrollTdInitializer = {\r\n onLink: () => adapter.transform(wrapper.scope, wrapper.element),\r\n scope: wrapper.scope\r\n };\r\n }\r\n }\r\n return promises;\r\n }\r\n\r\n function updateDOM() {\r\n let promises = [];\r\n const toBePrepended = [];\r\n const toBeRemoved = [];\r\n const inserted = [];\r\n\r\n buffer.forEach((wrapper, i) => {\r\n switch (wrapper.op) {\r\n case OPERATIONS.PREPEND:\r\n toBePrepended.unshift(wrapper);\r\n break;\r\n case OPERATIONS.APPEND:\r\n insertWrapperContent(wrapper, i);\r\n wrapper.op = OPERATIONS.NONE;\r\n inserted.push(wrapper);\r\n break;\r\n case OPERATIONS.INSERT:\r\n promises = promises.concat(createElement(wrapper, i, viewport.insertElementAnimated));\r\n wrapper.op = OPERATIONS.NONE;\r\n inserted.push(wrapper);\r\n break;\r\n case OPERATIONS.REMOVE:\r\n toBeRemoved.push(wrapper);\r\n }\r\n });\r\n\r\n toBeRemoved.forEach((wrapper) => promises = promises.concat(viewport.removeItem(wrapper)));\r\n\r\n if (toBePrepended.length)\r\n toBePrepended.forEach((wrapper) => {\r\n insertWrapperContent(wrapper);\r\n wrapper.op = OPERATIONS.NONE;\r\n });\r\n\r\n buffer.forEach((item, i) => item.scope.$index = buffer.first + i);\r\n\r\n return {\r\n prepended: toBePrepended,\r\n removed: toBeRemoved,\r\n inserted: inserted,\r\n animated: promises\r\n };\r\n\r\n }\r\n\r\n function updatePaddings(rid, updates) {\r\n // schedule another doAdjust after animation completion\r\n if (updates.animated.length) {\r\n $q.all(updates.animated).then(() => {\r\n viewport.adjustPaddings();\r\n doAdjust(rid);\r\n });\r\n } else {\r\n viewport.adjustPaddings();\r\n }\r\n }\r\n\r\n function enqueueFetch(rid, updates) {\r\n if (viewport.shouldLoadBottom()) {\r\n if (!updates || buffer.effectiveHeight(updates.inserted) > 0) {\r\n // this means that at least one item appended in the last batch has height > 0\r\n if (pending.push(true) === 1) {\r\n adapter.loading(true);\r\n fetch(rid);\r\n }\r\n }\r\n } else if (viewport.shouldLoadTop()) {\r\n if ((!updates || buffer.effectiveHeight(updates.prepended) > 0) || pending[0]) {\r\n // this means that at least one item appended in the last batch has height > 0\r\n // pending[0] = true means that previous fetch was appending. We need to force at least one prepend\r\n // BTW there will always be at least 1 element in the pending array because bottom is fetched first\r\n if (pending.push(false) === 1) {\r\n adapter.loading(true);\r\n fetch(rid);\r\n }\r\n }\r\n }\r\n }\r\n\r\n function processUpdates() {\r\n const updates = updateDOM();\r\n\r\n // We need the item bindings to be processed before we can do adjustments\r\n !$scope.$$phase && !$rootScope.$$phase && $scope.$digest();\r\n\r\n updates.inserted.forEach(w => elementRoutines.showElement(w));\r\n updates.prepended.forEach(w => elementRoutines.showElement(w));\r\n return updates;\r\n }\r\n\r\n function doAdjust(rid) {\r\n if (!rid) { // dismiss pending requests\r\n pending = [];\r\n rid = ++ridActual;\r\n }\r\n\r\n const updates = processUpdates();\r\n\r\n if (isInvalid(rid)) {\r\n return;\r\n }\r\n\r\n updatePaddings(rid, updates);\r\n enqueueFetch(rid);\r\n\r\n if (!pending.length) {\r\n adapter.calculateProperties();\r\n }\r\n }\r\n\r\n function doAdjustAfterFetch(rid) {\r\n const updates = processUpdates();\r\n\r\n viewport.onAfterPrepend(updates);\r\n\r\n if (isInvalid(rid)) {\r\n return;\r\n }\r\n\r\n updatePaddings(rid, updates);\r\n onRenderHandlersRunner();\r\n enqueueFetch(rid, updates);\r\n pending.shift();\r\n\r\n if (pending.length)\r\n fetch(rid);\r\n else {\r\n adapter.loading(false);\r\n bindEvents();\r\n adapter.calculateProperties();\r\n }\r\n }\r\n\r\n function fetch(rid) {\r\n if (pending[0]) {// scrolling down\r\n if (buffer.length && !viewport.shouldLoadBottom()) {\r\n doAdjustAfterFetch(rid);\r\n } else {\r\n fetchNext((result) => {\r\n if (isInvalid(rid)) {\r\n return;\r\n }\r\n\r\n if (result.length < bufferSize) {\r\n buffer.eof = true;\r\n }\r\n\r\n if (result.length > 0) {\r\n viewport.clipTop();\r\n buffer.append(result);\r\n }\r\n\r\n doAdjustAfterFetch(rid);\r\n });\r\n }\r\n } else { // scrolling up\r\n if (buffer.length && !viewport.shouldLoadTop()) {\r\n doAdjustAfterFetch(rid);\r\n } else {\r\n fetchPrevious((result) => {\r\n if (isInvalid(rid)) {\r\n return;\r\n }\r\n\r\n if (result.length < bufferSize) {\r\n buffer.bof = true;\r\n // log 'bof is reached'\r\n }\r\n\r\n if (result.length > 0) {\r\n if (buffer.length) {\r\n viewport.clipBottom();\r\n }\r\n buffer.prepend(result);\r\n }\r\n\r\n doAdjustAfterFetch(rid);\r\n });\r\n }\r\n }\r\n }\r\n\r\n function fixInertia() {\r\n if (!viewport.synthetic) {\r\n return;\r\n }\r\n const oldPosition = viewport.synthetic.previous;\r\n const newPosition = viewport.synthetic.next;\r\n if (viewport.scrollTop() !== newPosition) {\r\n requestAnimationFrame(() => {\r\n const position = viewport.scrollTop();\r\n const diff = oldPosition - position;\r\n if (diff > 0) { // inertia over synthetic\r\n viewport.scrollTop(newPosition - diff);\r\n } else {\r\n viewport.scrollTop(newPosition);\r\n }\r\n viewport.synthetic = null;\r\n });\r\n return true;\r\n }\r\n viewport.synthetic = null;\r\n }\r\n\r\n function resizeAndScrollHandler() {\r\n if (handleInertia && fixInertia()) {\r\n return;\r\n }\r\n if (!$rootScope.$$phase && !adapter.isLoading && !adapter.disabled) {\r\n\r\n enqueueFetch(ridActual);\r\n\r\n if (pending.length) {\r\n unbindEvents();\r\n } else {\r\n adapter.calculateProperties();\r\n !$scope.$$phase && $scope.$digest();\r\n }\r\n }\r\n }\r\n\r\n function wheelHandler(event) {\r\n if (!adapter.disabled) {\r\n const scrollTop = viewport[0].scrollTop;\r\n const yMax = viewport[0].scrollHeight - viewport[0].clientHeight;\r\n\r\n if ((scrollTop === 0 && !buffer.bof) || (scrollTop === yMax && !buffer.eof)) {\r\n event.preventDefault();\r\n }\r\n }\r\n }\r\n }\r\n\r\n }\r\n ]);\r\n"],"names":["JQLiteExtras","_classCallCheck","_createClass","key","value","registerFor","element","convertToPx","css","getStyle","isWindow","angular","prototype","name","self","elem","nodeType","style","call","obj","document","location","alert","setInterval","scrollTo","direction","_top$left$direction","_slicedToArray","top","left","method","prop","preserve","isValueDefined","documentElement","window","getComputedStyle","parseFloat","currentStyle","result","rs","rsLeft","core_pnum","source","rnumnonpx","RegExp","test","runtimeStyle","pixelLeft","getMeasurements","measure","base","borderA","borderB","computedMarginA","computedMarginB","computedStyle","dirA","dirB","marginA","marginB","paddingA","paddingB","height","width","padding","border","margin","_width$height$measure","offsetWidth","offsetHeight","getWidthHeight","measurements","outer","outerfull","forEach","before","newElem","children","i","j","parent","ref","contents","prepend","length","after","Error","outerHTML","isNumber","outerHeight","option","outerWidth","offset","docElem","win","box","doc","ownerDocument","arguments","undefined","getBoundingClientRect","defaultView","parentWindow","pageYOffset","scrollTop","clientTop","pageXOffset","scrollLeft","clientLeft","default","hideClassToken","ElementRoutines","$injector","$q","$animate","has","get","isAngularVersionLessThen1_3","version","major","minor","hideElement","wrapper","addClass","showElement","removeClass","insertElement","newElement","previousElement","removeElement","remove","scope","$destroy","insertElementAnimated","deferred","defer","enter","resolve","promise","removeElementAnimated","leave","then","addCSSRules","selector","rules","sheet","styleSheets","index","cssRules","err","insertRule","addRule","OPERATIONS","PREPEND","APPEND","INSERT","REMOVE","NONE","ScrollBuffer","elementRoutines","bufferSize","startIndex","buffer","Object","create","Array","extend","size","reset","eof","bof","first","next","minIndex","maxIndex","minIndexUser","maxIndexUser","append","items","item","insert","Math","max","immutableTop","reverse","min","operation","shiftTop","op","splice","push","unshift","arg1","arg2","indexOf","getAbsMinIndex","incrementMinIndex","decrementMaxIndex","getAbsMaxIndex","effectiveHeight","elements","Number","MAX_VALUE","bottom","NEGATIVE_INFINITY","offsetParent","getItems","filter","getFirstItem","list","getLastItem","CacheProto","add","$index","sort","a","b","argument","_shiftTop","clear","Cache","instance","apply","setPrototypeOf","getOwnPropertyNames","methodName","generateElement","template","Node","ELEMENT_NODE","tagName","toLowerCase","concat","table","find","Padding","cache","Viewport","viewportController","$rootScope","topPadding","bottomPadding","viewport","container","bufferPadding","getScope","createPaddingElements","applyContainerStyle","bottomDataPos","scrollHeight","topDataPos","bottomVisiblePos","topVisiblePos","e","sibling","shouldLoadBottom","clipBottom","overage","overageHeight","itemHeight","emptySpaceHeight","adjustPaddings","shouldLoadTop","clipTop","visibleItemsHeight","reduce","summ","topPaddingHeight","topCount","bottomPaddingHeight","bottomCount","totalHeight","averageItemHeight","adjustTopPadding","adjustBottomPadding","topPaddingHeightAdd","bottomPaddingHeightAdd","onAfterMinIndexSet","topPaddingHeightOld","diff","onAfterPrepend","updates","prepended","paddingHeight","position","newPosition","synthetic","previous","resetTopPadding","resetBottomPadding","removeCacheItem","removeItem","Adapter","$scope","$parse","$attr","doAdjust","reload","isLoading","disabled","viewportScope","startScope","$parent","publicContext","assignAdapter","adapter","generatePublicContext","adapterAttr","replace","adapterOnScope","assign","error","message","_this","publicMethods","bind","publicProps","_loop","_i","property","attr","defineProperty","set","publicPropsImmediate","_loop2","_i2","loading","isBOF","isEOF","isEmpty","newItems","options","applyUpdates","arg3","applyUpdatesFunc","applyUpdatesIndex","cb","_this2","slice","applyUpdate","_index","isArray","_this3","some","newItem","calculateProperties","rowTop","topHeight","topDone","bottomDone","itemTop","module","constant","run","elt","jQuery","fn","jquery","directive","restrict","controller","child","console","$timeout","$interval","require","transclude","priority","terminal","link","controllers","linker","match","uiScroll","parseNumber","defaultValue","isFloat","floor","isNaN","parseNumericAttr","parseBooleanAttr","BUFFER_MIN","BUFFER_DEFAULT","PADDING_MIN","PADDING_DEFAULT","HANDLE_INERTIA_DEFAULT","START_INDEX_DEFAULT","MAX_VIEWPORT_DELAY","VIEWPORT_POLLING_INTERVAL","datasource","itemName","datasourceName","handleInertia","ridActual","pending","isDatasourceValid","toString","onRenderHandlers","onRenderHandlersRunner","handler","persistDatasourceIndex","propName","getter","id","defineDatasourceIndex","propUserName","descriptor","getOwnPropertyDescriptor","fetchNext","success","count","fetchPrevious","initialize","tryCount","timer","cancel","clone","$on","unbindEvents","off","wheelHandler","on","isInvalid","rid","$$destroyed","bindEvents","resizeAndScrollHandler","isElementVisible","visibilityWatcher","unregisterVisibilityWatcher","insertWrapperContent","insertAfter","createElement","$watch","promises","transform","tdInitializer","uiScrollTdInitializer","linking","onLink","updateDOM","toBePrepended","toBeRemoved","inserted","removed","animated","updatePaddings","all","enqueueFetch","fetch","processUpdates","$$phase","$digest","w","doAdjustAfterFetch","shift","fixInertia","oldPosition","requestAnimationFrame","event","yMax","clientHeight","preventDefault"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"ui-scroll.js","mappings":"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","sources":["webpack://angular-ui-scroll/./src/modules/jqLiteExtras.js","webpack://angular-ui-scroll/./src/modules/elementRoutines.js","webpack://angular-ui-scroll/./src/modules/utils.js","webpack://angular-ui-scroll/./src/modules/buffer.js","webpack://angular-ui-scroll/./src/modules/padding.js","webpack://angular-ui-scroll/./src/modules/viewport.js","webpack://angular-ui-scroll/./src/modules/adapter.js","webpack://angular-ui-scroll/./src/ui-scroll.js"],"sourcesContent":["/*!\r\n globals: angular, window\r\n List of used element methods available in JQuery but not in JQuery Lite\r\n element.before(elem)\r\n element.height()\r\n element.outerHeight(true)\r\n element.height(value) = only for Top/Bottom padding elements\r\n element.scrollTop()\r\n element.scrollTop(value)\r\n */\r\n\r\nexport default class JQLiteExtras {\r\n\r\n registerFor(element) {\r\n let convertToPx, css, getStyle, isWindow;\r\n // angular implementation blows up if elem is the window\r\n css = angular.element.prototype.css;\r\n\r\n element.prototype.css = function (name, value) {\r\n let self = this;\r\n let elem = self[0];\r\n if (!(!elem || elem.nodeType === 3 || elem.nodeType === 8 || !elem.style)) {\r\n return css.call(self, name, value);\r\n }\r\n };\r\n\r\n // as defined in angularjs v1.0.5\r\n isWindow = (obj) => obj && obj.document && obj.location && obj.alert && obj.setInterval;\r\n\r\n function scrollTo(self, direction, value) {\r\n let elem = self[0];\r\n let [method, prop, preserve] = {\r\n top: [\r\n 'scrollTop',\r\n 'pageYOffset',\r\n 'scrollLeft'\r\n ],\r\n left: [\r\n 'scrollLeft',\r\n 'pageXOffset',\r\n 'scrollTop'\r\n ]\r\n }[direction];\r\n\r\n const isValueDefined = typeof value !== 'undefined';\r\n if (isWindow(elem)) {\r\n if (isValueDefined) {\r\n return elem.scrollTo(self[preserve].call(self), value);\r\n }\r\n return (prop in elem) ? elem[prop] : elem.document.documentElement[method];\r\n } else {\r\n if (isValueDefined) {\r\n elem[method] = value;\r\n }\r\n return elem[method];\r\n }\r\n }\r\n\r\n if (window.getComputedStyle) {\r\n getStyle = (elem) => window.getComputedStyle(elem, null);\r\n convertToPx = (elem, value) => parseFloat(value);\r\n } else {\r\n getStyle = (elem) => elem.currentStyle;\r\n convertToPx = (elem, value) => {\r\n let left, result, rs, rsLeft, style;\r\n let core_pnum = /[+-]?(?:\\d*\\.|)\\d+(?:[eE][+-]?\\d+|)/.source;\r\n let rnumnonpx = new RegExp('^(' + core_pnum + ')(?!px)[a-z%]+$', 'i');\r\n\r\n if (!rnumnonpx.test(value)) {\r\n return parseFloat(value);\r\n }\r\n\r\n // ported from JQuery\r\n style = elem.style;\r\n left = style.left;\r\n rs = elem.runtimeStyle;\r\n rsLeft = rs && rs.left;\r\n if (rs) {\r\n rs.left = style.left;\r\n }\r\n // put in the new values to get a computed style out\r\n style.left = value;\r\n result = style.pixelLeft;\r\n style.left = left;\r\n if (rsLeft) {\r\n rs.left = rsLeft;\r\n }\r\n return result;\r\n };\r\n }\r\n\r\n function getMeasurements(elem, measure) {\r\n let base, borderA, borderB, computedMarginA, computedMarginB, computedStyle, dirA, dirB, marginA, marginB, paddingA, paddingB;\r\n\r\n if (isWindow(elem)) {\r\n base = document.documentElement[{height: 'clientHeight', width: 'clientWidth'}[measure]];\r\n\r\n return {\r\n base: base,\r\n padding: 0,\r\n border: 0,\r\n margin: 0\r\n };\r\n }\r\n\r\n // Start with offset property\r\n [\r\n base,\r\n dirA,\r\n dirB\r\n ] = {\r\n width: [\r\n elem.offsetWidth,\r\n 'Left',\r\n 'Right'\r\n ],\r\n height: [\r\n elem.offsetHeight,\r\n 'Top',\r\n 'Bottom'\r\n ]\r\n }[measure];\r\n\r\n computedStyle = getStyle(elem);\r\n paddingA = convertToPx(elem, computedStyle['padding' + dirA]) || 0;\r\n paddingB = convertToPx(elem, computedStyle['padding' + dirB]) || 0;\r\n borderA = convertToPx(elem, computedStyle['border' + dirA + 'Width']) || 0;\r\n borderB = convertToPx(elem, computedStyle['border' + dirB + 'Width']) || 0;\r\n computedMarginA = computedStyle['margin' + dirA];\r\n computedMarginB = computedStyle['margin' + dirB];\r\n\r\n // I do not care for width for now, so this hack is irrelevant\r\n // if ( !supportsPercentMargin )\r\n // computedMarginA = hackPercentMargin( elem, computedStyle, computedMarginA )\r\n // computedMarginB = hackPercentMargin( elem, computedStyle, computedMarginB )\r\n marginA = convertToPx(elem, computedMarginA) || 0;\r\n marginB = convertToPx(elem, computedMarginB) || 0;\r\n\r\n return {\r\n base: base,\r\n padding: paddingA + paddingB,\r\n border: borderA + borderB,\r\n margin: marginA + marginB\r\n };\r\n }\r\n\r\n function getWidthHeight(elem, direction, measure) {\r\n let computedStyle, result;\r\n\r\n let measurements = getMeasurements(elem, direction);\r\n\r\n if (measurements.base > 0) {\r\n return {\r\n base: measurements.base - measurements.padding - measurements.border,\r\n outer: measurements.base,\r\n outerfull: measurements.base + measurements.margin\r\n }[measure];\r\n }\r\n\r\n // Fall back to computed then uncomputed css if necessary\r\n computedStyle = getStyle(elem);\r\n result = computedStyle[direction];\r\n\r\n if (result < 0 || result === null) {\r\n result = elem.style[direction] || 0;\r\n }\r\n\r\n // Normalize \"\", auto, and prepare for extra\r\n result = parseFloat(result) || 0;\r\n\r\n return {\r\n base: result - measurements.padding - measurements.border,\r\n outer: result,\r\n outerfull: result + measurements.padding + measurements.border + measurements.margin\r\n }[measure];\r\n }\r\n\r\n // define missing methods\r\n return angular.forEach({\r\n before(newElem) {\r\n var children, elem, i, j, parent, ref, self;\r\n self = this;\r\n elem = self[0];\r\n parent = self.parent();\r\n children = parent.contents();\r\n if (children[0] === elem) {\r\n return parent.prepend(newElem);\r\n } else {\r\n for (i = j = 1, ref = children.length - 1; 1 <= ref ? j <= ref : j >= ref; i = 1 <= ref ? ++j : --j) {\r\n if (children[i] === elem) {\r\n angular.element(children[i - 1]).after(newElem);\r\n return;\r\n }\r\n }\r\n throw new Error('invalid DOM structure ' + elem.outerHTML);\r\n }\r\n },\r\n height (value){\r\n var self;\r\n self = this;\r\n if (typeof value !== 'undefined') {\r\n if (angular.isNumber(value)) {\r\n value = value + 'px';\r\n }\r\n return css.call(self, 'height', value);\r\n } else {\r\n return getWidthHeight(this[0], 'height', 'base');\r\n }\r\n },\r\n outerHeight(option) {\r\n return getWidthHeight(this[0], 'height', option ? 'outerfull' : 'outer');\r\n },\r\n outerWidth(option) {\r\n return getWidthHeight(this[0], 'width', option ? 'outerfull' : 'outer');\r\n },\r\n\r\n /*\r\n The offset setter method is not implemented\r\n */\r\n offset(value) {\r\n let docElem, win;\r\n let self = this;\r\n let box = {\r\n top: 0,\r\n left: 0\r\n };\r\n let elem = self[0];\r\n let doc = elem && elem.ownerDocument;\r\n\r\n if (arguments.length) {\r\n if (value === undefined) {\r\n return self;\r\n }\r\n // TODO: implement setter\r\n throw new Error('offset setter method is not implemented');\r\n }\r\n\r\n if (!doc) {\r\n return;\r\n }\r\n\r\n docElem = doc.documentElement;\r\n\r\n // TODO: Make sure it's not a disconnected DOM node\r\n\r\n if (elem.getBoundingClientRect != null) {\r\n box = elem.getBoundingClientRect();\r\n }\r\n\r\n win = doc.defaultView || doc.parentWindow;\r\n\r\n return {\r\n top: box.top + (win.pageYOffset || docElem.scrollTop) - (docElem.clientTop || 0),\r\n left: box.left + (win.pageXOffset || docElem.scrollLeft) - (docElem.clientLeft || 0)\r\n };\r\n },\r\n scrollTop(value) {\r\n return scrollTo(this, 'top', value);\r\n },\r\n scrollLeft(value) {\r\n return scrollTo(this, 'left', value);\r\n }\r\n }, (value, key) => {\r\n if (!element.prototype[key]) {\r\n return element.prototype[key] = value;\r\n }\r\n });\r\n }\r\n\r\n}\r\n","const hideClassToken = 'ng-ui-scroll-hide';\r\n\r\nexport default class ElementRoutines {\r\n\r\n static addCSSRules() {\r\n const selector = '.' + hideClassToken;\r\n const rules = 'display: none';\r\n const sheet = document.styleSheets[0];\r\n let index;\r\n try {\r\n index = sheet.cssRules.length;\r\n } catch (err) {\r\n index = 0;\r\n }\r\n if('insertRule' in sheet) {\r\n sheet.insertRule(selector + '{' + rules + '}', index);\r\n }\r\n else if('addRule' in sheet) {\r\n sheet.addRule(selector, rules, index);\r\n }\r\n }\r\n\r\n constructor($injector, $q) {\r\n this.$animate = ($injector.has && $injector.has('$animate')) ? $injector.get('$animate') : null;\r\n this.isAngularVersionLessThen1_3 = angular.version.major === 1 && angular.version.minor < 3;\r\n this.$q = $q;\r\n }\r\n\r\n hideElement(wrapper) {\r\n wrapper.element.addClass(hideClassToken);\r\n }\r\n\r\n showElement(wrapper) {\r\n wrapper.element.removeClass(hideClassToken);\r\n }\r\n\r\n insertElement(newElement, previousElement) {\r\n previousElement.after(newElement);\r\n return [];\r\n }\r\n\r\n removeElement(wrapper) {\r\n wrapper.element.remove();\r\n wrapper.scope.$destroy();\r\n return [];\r\n }\r\n\r\n insertElementAnimated(newElement, previousElement) {\r\n if (!this.$animate) {\r\n return this.insertElement(newElement, previousElement);\r\n }\r\n\r\n if (this.isAngularVersionLessThen1_3) {\r\n const deferred = this.$q.defer();\r\n // no need for parent - previous element is never null\r\n this.$animate.enter(newElement, null, previousElement, () => deferred.resolve());\r\n\r\n return [deferred.promise];\r\n }\r\n\r\n // no need for parent - previous element is never null\r\n return [this.$animate.enter(newElement, null, previousElement)];\r\n }\r\n\r\n removeElementAnimated(wrapper) {\r\n if (!this.$animate) {\r\n return this.removeElement(wrapper);\r\n }\r\n\r\n if (this.isAngularVersionLessThen1_3) {\r\n const deferred = this.$q.defer();\r\n this.$animate.leave(wrapper.element, () => {\r\n wrapper.scope.$destroy();\r\n return deferred.resolve();\r\n });\r\n\r\n return [deferred.promise];\r\n }\r\n\r\n return [(this.$animate.leave(wrapper.element)).then(() => wrapper.scope.$destroy())];\r\n }\r\n}","export const OPERATIONS = {\r\n PREPEND: 'prepend',\r\n APPEND: 'append',\r\n INSERT: 'insert',\r\n REMOVE: 'remove',\r\n NONE: 'none'\r\n};\r\n","import { OPERATIONS } from './utils';\r\n\r\nexport default function ScrollBuffer(elementRoutines, bufferSize, startIndex) {\r\n const buffer = Object.create(Array.prototype);\r\n\r\n angular.extend(buffer, {\r\n size: bufferSize,\r\n\r\n reset(startIndex) {\r\n buffer.remove(0, buffer.length);\r\n buffer.eof = false;\r\n buffer.bof = false;\r\n buffer.first = startIndex;\r\n buffer.next = startIndex;\r\n buffer.minIndex = startIndex;\r\n buffer.maxIndex = startIndex;\r\n buffer.minIndexUser = null;\r\n buffer.maxIndexUser = null;\r\n },\r\n\r\n append(items) {\r\n items.forEach((item) => {\r\n ++buffer.next;\r\n buffer.insert(OPERATIONS.APPEND, item);\r\n });\r\n buffer.maxIndex = buffer.eof ? buffer.next - 1 : Math.max(buffer.next - 1, buffer.maxIndex);\r\n },\r\n\r\n prepend(items, immutableTop) {\r\n items.reverse().forEach((item) => {\r\n if (immutableTop) {\r\n ++buffer.next;\r\n }\r\n else {\r\n --buffer.first;\r\n }\r\n buffer.insert(OPERATIONS.PREPEND, item);\r\n });\r\n buffer.minIndex = buffer.bof ? buffer.minIndex = buffer.first : Math.min(buffer.first, buffer.minIndex);\r\n },\r\n\r\n /**\r\n * inserts wrapped element in the buffer\r\n * the first argument is either operation keyword (see below) or a number for operation 'insert'\r\n * for insert the number is the index for the buffer element the new one have to be inserted after\r\n * operations: 'append', 'prepend', 'insert', 'remove', 'none'\r\n */\r\n insert(operation, item, shiftTop) {\r\n const wrapper = {\r\n item: item\r\n };\r\n\r\n if (operation % 1 === 0) { // it is an insert\r\n wrapper.op = OPERATIONS.INSERT;\r\n buffer.splice(operation, 0, wrapper);\r\n if (shiftTop) {\r\n buffer.first--;\r\n }\r\n else {\r\n buffer.next++;\r\n }\r\n } else {\r\n wrapper.op = operation;\r\n switch (operation) {\r\n case OPERATIONS.APPEND:\r\n buffer.push(wrapper);\r\n break;\r\n case OPERATIONS.PREPEND:\r\n buffer.unshift(wrapper);\r\n break;\r\n }\r\n }\r\n },\r\n\r\n // removes elements from buffer\r\n remove(arg1, arg2) {\r\n if (angular.isNumber(arg1)) {\r\n // removes items from arg1 (including) through arg2 (excluding)\r\n for (let i = arg1; i < arg2; i++) {\r\n elementRoutines.removeElement(buffer[i]);\r\n }\r\n return buffer.splice(arg1, arg2 - arg1);\r\n }\r\n // removes single item (wrapper) from the buffer\r\n buffer.splice(buffer.indexOf(arg1), 1);\r\n if (arg1.shiftTop && buffer.first === this.getAbsMinIndex()) {\r\n this.incrementMinIndex();\r\n }\r\n else {\r\n this.decrementMaxIndex();\r\n }\r\n if (arg1.shiftTop) {\r\n buffer.first++;\r\n }\r\n else {\r\n buffer.next--;\r\n }\r\n if (!buffer.length) {\r\n buffer.minIndex = Math.min(buffer.maxIndex, buffer.minIndex);\r\n }\r\n\r\n return elementRoutines.removeElementAnimated(arg1);\r\n },\r\n\r\n incrementMinIndex() {\r\n if (buffer.minIndexUser !== null) {\r\n if (buffer.minIndex > buffer.minIndexUser) {\r\n buffer.minIndexUser++;\r\n return;\r\n }\r\n if (buffer.minIndex === buffer.minIndexUser) {\r\n buffer.minIndexUser++;\r\n }\r\n }\r\n buffer.minIndex++;\r\n },\r\n\r\n decrementMaxIndex() {\r\n if (buffer.maxIndexUser !== null && buffer.maxIndex <= buffer.maxIndexUser) {\r\n buffer.maxIndexUser--;\r\n }\r\n buffer.maxIndex--;\r\n },\r\n\r\n getAbsMinIndex() {\r\n if (buffer.minIndexUser !== null) {\r\n return Math.min(buffer.minIndexUser, buffer.minIndex);\r\n }\r\n return buffer.minIndex;\r\n },\r\n\r\n getAbsMaxIndex() {\r\n if (buffer.maxIndexUser !== null) {\r\n return Math.max(buffer.maxIndexUser, buffer.maxIndex);\r\n }\r\n return buffer.maxIndex;\r\n },\r\n\r\n effectiveHeight(elements) {\r\n if (!elements.length) {\r\n return 0;\r\n }\r\n let top = Number.MAX_VALUE;\r\n let bottom = Number.NEGATIVE_INFINITY;\r\n elements.forEach((wrapper) => {\r\n if (wrapper.element[0].offsetParent) {\r\n // element style is not display:none\r\n top = Math.min(top, wrapper.element.offset().top);\r\n bottom = Math.max(bottom, wrapper.element.offset().top + wrapper.element.outerHeight(true));\r\n }\r\n });\r\n return Math.max(0, bottom - top);\r\n },\r\n\r\n getItems() {\r\n return buffer.filter(item => item.op === OPERATIONS.NONE);\r\n },\r\n\r\n getFirstItem() {\r\n const list = buffer.getItems();\r\n if (!list.length) {\r\n return null;\r\n }\r\n return list[0].item;\r\n },\r\n\r\n getLastItem() {\r\n const list = buffer.getItems();\r\n if (!list.length) {\r\n return null;\r\n }\r\n return list[list.length - 1].item;\r\n }\r\n\r\n });\r\n\r\n buffer.reset(startIndex);\r\n\r\n return buffer;\r\n}\r\n","// Can't just extend the Array, due to Babel does not support built-in classes extending\r\n// This solution was taken from https://stackoverflow.com/questions/46897414/es6-class-extends-array-workaround-for-es5-babel-transpile\r\nclass CacheProto {\r\n add(item) {\r\n for (let i = this.length - 1; i >= 0; i--) {\r\n if (this[i].index === item.scope.$index) {\r\n this[i].height = item.element.outerHeight();\r\n return;\r\n }\r\n }\r\n this.push({\r\n index: item.scope.$index,\r\n height: item.element.outerHeight()\r\n });\r\n this.sort((a, b) => ((a.index < b.index) ? -1 : ((a.index > b.index) ? 1 : 0)));\r\n }\r\n\r\n remove(argument, _shiftTop) {\r\n const index = argument % 1 === 0 ? argument : argument.scope.$index;\r\n const shiftTop = argument % 1 === 0 ? _shiftTop : argument.shiftTop;\r\n for (let i = this.length - 1; i >= 0; i--) {\r\n if (this[i].index === index) {\r\n this.splice(i, 1);\r\n break;\r\n }\r\n }\r\n if (!shiftTop) {\r\n for (let i = this.length - 1; i >= 0; i--) {\r\n if (this[i].index > index) {\r\n this[i].index--;\r\n }\r\n }\r\n }\r\n }\r\n\r\n clear() {\r\n this.length = 0;\r\n }\r\n}\r\n\r\nfunction Cache() {\r\n const instance = [];\r\n instance.push.apply(instance, arguments);\r\n Object.setPrototypeOf(instance, Cache.prototype);\r\n return instance;\r\n}\r\nCache.prototype = Object.create(Array.prototype);\r\nObject.getOwnPropertyNames(CacheProto.prototype).forEach(methodName =>\r\n Cache.prototype[methodName] = CacheProto.prototype[methodName]\r\n);\r\n\r\nfunction generateElement(template) {\r\n if (template.nodeType !== Node.ELEMENT_NODE) {\r\n throw new Error('ui-scroll directive requires an Element node for templating the view');\r\n }\r\n let element;\r\n switch (template.tagName.toLowerCase()) {\r\n case 'dl':\r\n throw new Error(`ui-scroll directive does not support <${template.tagName}> as a repeating tag: ${template.outerHTML}`);\r\n case 'tr':\r\n let table = angular.element('
    ');\r\n element = table.find('tr');\r\n break;\r\n case 'li':\r\n element = angular.element('
  • ');\r\n break;\r\n default:\r\n element = angular.element('
    ');\r\n }\r\n return element;\r\n}\r\n\r\nclass Padding {\r\n constructor(template) {\r\n this.element = generateElement(template);\r\n this.cache = new Cache();\r\n }\r\n\r\n height() {\r\n return this.element.height.apply(this.element, arguments);\r\n }\r\n}\r\n\r\nexport default Padding;","import Padding from './padding';\r\n\r\nexport default function Viewport(elementRoutines, buffer, element, viewportController, $rootScope, padding) {\r\n let topPadding = null;\r\n let bottomPadding = null;\r\n const viewport = viewportController && viewportController.viewport ? viewportController.viewport : angular.element(window);\r\n const container = viewportController && viewportController.container ? viewportController.container : undefined;\r\n const scope = viewportController && viewportController.scope ? viewportController.scope : $rootScope;\r\n\r\n viewport.css({\r\n 'overflow-anchor': 'none',\r\n 'overflow-y': 'auto',\r\n 'display': 'block'\r\n });\r\n\r\n function bufferPadding() {\r\n return viewport.outerHeight() * padding; // some extra space to initiate preload\r\n }\r\n\r\n angular.extend(viewport, {\r\n getScope() {\r\n return scope;\r\n },\r\n\r\n createPaddingElements(template) {\r\n topPadding = new Padding(template);\r\n bottomPadding = new Padding(template);\r\n element.before(topPadding.element);\r\n element.after(bottomPadding.element);\r\n topPadding.height(0);\r\n bottomPadding.height(0);\r\n },\r\n\r\n applyContainerStyle() {\r\n if (!container) {\r\n return true;\r\n }\r\n if (container !== viewport) {\r\n viewport.css('height', window.getComputedStyle(container[0]).height);\r\n }\r\n return viewport.height() > 0;\r\n },\r\n\r\n bottomDataPos() {\r\n let scrollHeight = viewport[0].scrollHeight;\r\n scrollHeight = scrollHeight != null ? scrollHeight : viewport[0].document.documentElement.scrollHeight;\r\n return scrollHeight - bottomPadding.height();\r\n },\r\n\r\n topDataPos() {\r\n return topPadding.height();\r\n },\r\n\r\n bottomVisiblePos() {\r\n return viewport.scrollTop() + viewport.outerHeight();\r\n },\r\n\r\n topVisiblePos() {\r\n return viewport.scrollTop();\r\n },\r\n\r\n insertElement(e, sibling) {\r\n return elementRoutines.insertElement(e, sibling || topPadding.element);\r\n },\r\n\r\n insertElementAnimated(e, sibling) {\r\n return elementRoutines.insertElementAnimated(e, sibling || topPadding.element);\r\n },\r\n\r\n shouldLoadBottom() {\r\n return !buffer.eof && viewport.bottomDataPos() < viewport.bottomVisiblePos() + bufferPadding();\r\n },\r\n\r\n clipBottom() {\r\n // clip the invisible items off the bottom\r\n let overage = 0;\r\n let overageHeight = 0;\r\n let itemHeight = 0;\r\n let emptySpaceHeight = viewport.bottomDataPos() - viewport.bottomVisiblePos() - bufferPadding();\r\n\r\n for (let i = buffer.length - 1; i >= 0; i--) {\r\n itemHeight = buffer[i].element.outerHeight(true);\r\n if (overageHeight + itemHeight > emptySpaceHeight) {\r\n break;\r\n }\r\n bottomPadding.cache.add(buffer[i]);\r\n overageHeight += itemHeight;\r\n overage++;\r\n }\r\n\r\n if (overage > 0) {\r\n buffer.eof = false;\r\n buffer.remove(buffer.length - overage, buffer.length);\r\n buffer.next -= overage;\r\n viewport.adjustPaddings();\r\n }\r\n },\r\n\r\n shouldLoadTop() {\r\n return !buffer.bof && (viewport.topDataPos() > viewport.topVisiblePos() - bufferPadding());\r\n },\r\n\r\n clipTop() {\r\n // clip the invisible items off the top\r\n let overage = 0;\r\n let overageHeight = 0;\r\n let itemHeight = 0;\r\n let emptySpaceHeight = viewport.topVisiblePos() - viewport.topDataPos() - bufferPadding();\r\n\r\n for (let i = 0; i < buffer.length; i++) {\r\n itemHeight = buffer[i].element.outerHeight(true);\r\n if (overageHeight + itemHeight > emptySpaceHeight) {\r\n break;\r\n }\r\n topPadding.cache.add(buffer[i]);\r\n overageHeight += itemHeight;\r\n overage++;\r\n }\r\n\r\n if (overage > 0) {\r\n // we need to adjust top padding element before items are removed from top\r\n // to avoid strange behaviour of scroll bar during remove top items when we are at the very bottom\r\n topPadding.height(topPadding.height() + overageHeight);\r\n buffer.bof = false;\r\n buffer.remove(0, overage);\r\n buffer.first += overage;\r\n }\r\n },\r\n\r\n adjustPaddings() {\r\n if (!buffer.length) {\r\n return;\r\n }\r\n\r\n // precise heights calculation based on items that are in buffer or that were in buffer once\r\n const visibleItemsHeight = buffer.reduce((summ, item) => summ + item.element.outerHeight(true), 0);\r\n\r\n let topPaddingHeight = 0, topCount = 0;\r\n topPadding.cache.forEach(item => {\r\n if (item.index < buffer.first) {\r\n topPaddingHeight += item.height;\r\n topCount++;\r\n }\r\n });\r\n\r\n let bottomPaddingHeight = 0, bottomCount = 0;\r\n bottomPadding.cache.forEach(item => {\r\n if (item.index >= buffer.next) {\r\n bottomPaddingHeight += item.height;\r\n bottomCount++;\r\n }\r\n });\r\n\r\n const totalHeight = visibleItemsHeight + topPaddingHeight + bottomPaddingHeight;\r\n const averageItemHeight = totalHeight / (topCount + bottomCount + buffer.length);\r\n\r\n // average heights calculation, items that have never been reached\r\n let adjustTopPadding = buffer.minIndexUser !== null && buffer.minIndex > buffer.minIndexUser;\r\n let adjustBottomPadding = buffer.maxIndexUser !== null && buffer.maxIndex < buffer.maxIndexUser;\r\n let topPaddingHeightAdd = adjustTopPadding ? (buffer.minIndex - buffer.minIndexUser) * averageItemHeight : 0;\r\n let bottomPaddingHeightAdd = adjustBottomPadding ? (buffer.maxIndexUser - buffer.maxIndex) * averageItemHeight : 0;\r\n\r\n // paddings combine adjustment\r\n topPadding.height(topPaddingHeight + topPaddingHeightAdd);\r\n bottomPadding.height(bottomPaddingHeight + bottomPaddingHeightAdd);\r\n },\r\n\r\n onAfterMinIndexSet(topPaddingHeightOld) {\r\n // additional scrollTop adjustment in case of datasource.minIndex external set\r\n if (buffer.minIndexUser !== null && buffer.minIndex > buffer.minIndexUser) {\r\n let diff = topPadding.height() - topPaddingHeightOld;\r\n viewport.scrollTop(viewport.scrollTop() + diff);\r\n while((diff -= viewport.scrollTop()) > 0) {\r\n bottomPadding.height(bottomPadding.height() + diff);\r\n viewport.scrollTop(viewport.scrollTop() + diff);\r\n }\r\n }\r\n },\r\n\r\n onAfterPrepend(updates) {\r\n if (!updates.prepended.length) {\r\n return;\r\n }\r\n const height = buffer.effectiveHeight(updates.prepended);\r\n const paddingHeight = topPadding.height() - height;\r\n if (paddingHeight >= 0) {\r\n topPadding.height(paddingHeight);\r\n return;\r\n }\r\n const position = viewport.scrollTop();\r\n const newPosition = position - paddingHeight;\r\n viewport.synthetic = { previous: position, next: newPosition };\r\n topPadding.height(0);\r\n viewport.scrollTop(newPosition);\r\n },\r\n\r\n resetTopPadding() {\r\n topPadding.height(0);\r\n topPadding.cache.clear();\r\n },\r\n\r\n resetBottomPadding() {\r\n bottomPadding.height(0);\r\n bottomPadding.cache.clear();\r\n },\r\n\r\n removeCacheItem(item, shiftTop) {\r\n topPadding.cache.remove(item, shiftTop);\r\n bottomPadding.cache.remove(item, shiftTop);\r\n },\r\n\r\n removeItem(item) {\r\n this.removeCacheItem(item);\r\n return buffer.remove(item);\r\n }\r\n });\r\n\r\n return viewport;\r\n}\r\n","import { OPERATIONS } from './utils';\r\n\r\nclass Adapter {\r\n\r\n constructor($scope, $parse, $attr, viewport, buffer, doAdjust, reload) {\r\n this.$parse = $parse;\r\n this.$attr = $attr;\r\n this.viewport = viewport;\r\n this.buffer = buffer;\r\n\r\n this.doAdjust = doAdjust;\r\n this.reload = reload;\r\n\r\n this.isLoading = false;\r\n this.disabled = false;\r\n\r\n const viewportScope = viewport.getScope();\r\n this.startScope = viewportScope.$parent ? viewportScope : $scope;\r\n\r\n this.publicContext = {};\r\n this.assignAdapter($attr.adapter);\r\n this.generatePublicContext();\r\n }\r\n\r\n assignAdapter(adapterAttr) {\r\n if (!adapterAttr || !(adapterAttr = adapterAttr.replace(/^\\s+|\\s+$/gm, ''))) {\r\n return;\r\n }\r\n let adapterOnScope;\r\n\r\n try {\r\n this.$parse(adapterAttr).assign(this.startScope, {});\r\n adapterOnScope = this.$parse(adapterAttr)(this.startScope);\r\n }\r\n catch (error) {\r\n error.message = `Angular ui-scroll Adapter assignment exception.\\n` +\r\n `Can't parse \"${adapterAttr}\" expression.\\n` +\r\n error.message;\r\n throw error;\r\n }\r\n\r\n angular.extend(adapterOnScope, this.publicContext);\r\n this.publicContext = adapterOnScope;\r\n }\r\n\r\n generatePublicContext() {\r\n // these methods will be accessible out of ui-scroll via user defined adapter\r\n const publicMethods = ['reload', 'applyUpdates', 'append', 'prepend', 'isBOF', 'isEOF', 'isEmpty'];\r\n for (let i = publicMethods.length - 1; i >= 0; i--) {\r\n this.publicContext[publicMethods[i]] = this[publicMethods[i]].bind(this);\r\n }\r\n\r\n // these read-only props will be accessible out of ui-scroll via user defined adapter\r\n const publicProps = ['isLoading', 'topVisible', 'topVisibleElement', 'topVisibleScope', 'bottomVisible', 'bottomVisibleElement', 'bottomVisibleScope'];\r\n for (let i = publicProps.length - 1; i >= 0; i--) {\r\n let property, attr = this.$attr[publicProps[i]];\r\n Object.defineProperty(this, publicProps[i], {\r\n get: () => property,\r\n set: (value) => {\r\n property = value;\r\n this.publicContext[publicProps[i]] = value;\r\n if (attr) {\r\n this.$parse(attr).assign(this.startScope, value);\r\n }\r\n }\r\n });\r\n }\r\n\r\n // read-only immediately calculated public properties\r\n const publicPropsImmediate = ['bufferFirst', 'bufferLast', 'bufferLength'];\r\n for (let i = publicPropsImmediate.length - 1; i >= 0; i--) {\r\n Object.defineProperty(this.publicContext, publicPropsImmediate[i], {\r\n get: () => this[publicPropsImmediate[i]]\r\n });\r\n }\r\n\r\n // non-read-only public property\r\n Object.defineProperty(this.publicContext, 'disabled', {\r\n get: () => this.disabled,\r\n set: (value) => (!(this.disabled = value)) ? this.doAdjust() : null\r\n });\r\n }\r\n\r\n loading(value) {\r\n this.isLoading = value;\r\n }\r\n\r\n isBOF() {\r\n return this.buffer.bof;\r\n }\r\n\r\n isEOF() {\r\n return this.buffer.eof;\r\n }\r\n\r\n isEmpty() {\r\n return !this.buffer.length;\r\n }\r\n\r\n get bufferLength() {\r\n return this.buffer.getItems().length;\r\n }\r\n\r\n get bufferFirst() {\r\n return this.buffer.getFirstItem();\r\n }\r\n\r\n get bufferLast() {\r\n return this.buffer.getLastItem();\r\n }\r\n\r\n append(newItems) {\r\n this.buffer.append(newItems);\r\n this.doAdjust();\r\n this.viewport.clipTop();\r\n this.viewport.clipBottom();\r\n }\r\n\r\n prepend(newItems, options = {}) {\r\n this.buffer.prepend(newItems, options.immutableTop);\r\n this.doAdjust();\r\n this.viewport.clipTop();\r\n this.viewport.clipBottom();\r\n }\r\n\r\n applyUpdates(arg1, arg2, arg3) {\r\n if (typeof arg1 === 'function') {\r\n this.applyUpdatesFunc(arg1, arg2);\r\n } else {\r\n this.applyUpdatesIndex(arg1, arg2, arg3);\r\n }\r\n this.doAdjust();\r\n }\r\n\r\n applyUpdatesFunc(cb, options = {}) {\r\n this.buffer.slice(0).forEach((wrapper) => {\r\n // we need to do it on the buffer clone, because buffer content\r\n // may change as we iterate through\r\n this.applyUpdate(wrapper, cb(wrapper.item, wrapper.scope, wrapper.element), options);\r\n });\r\n }\r\n\r\n applyUpdatesIndex(index, newItems, options = {}) {\r\n if (index % 1 !== 0) {\r\n throw new Error('applyUpdates - ' + index + ' is not a valid index (should be an integer)');\r\n }\r\n const _index = index - this.buffer.first;\r\n\r\n // apply updates only within buffer\r\n if (_index >= 0 && _index < this.buffer.length) {\r\n this.applyUpdate(this.buffer[_index], newItems, options);\r\n }\r\n // out-of-buffer case: deletion may affect Paddings\r\n else if(index >= this.buffer.getAbsMinIndex() && index <= this.buffer.getAbsMaxIndex()) {\r\n if(angular.isArray(newItems) && !newItems.length) {\r\n this.viewport.removeCacheItem(index, !options.immutableTop && index === this.buffer.minIndex);\r\n if (!options.immutableTop && index === this.buffer.getAbsMinIndex()) {\r\n this.buffer.incrementMinIndex();\r\n }\r\n else {\r\n this.buffer.decrementMaxIndex();\r\n }\r\n }\r\n }\r\n }\r\n\r\n applyUpdate(wrapper, newItems, options = {}) {\r\n if (!angular.isArray(newItems)) {\r\n return;\r\n }\r\n let position = this.buffer.indexOf(wrapper);\r\n if (!newItems.reverse().some(newItem => newItem === wrapper.item)) {\r\n wrapper.op = OPERATIONS.REMOVE;\r\n // try to catch \"first\" edge case on remove\r\n if (!options.immutableTop && !newItems.length) {\r\n // this is the first item, or the previous one's part of the \"shift-top\" group\r\n if (\r\n (position === 0 && this.buffer.bof) ||\r\n (position !== 0 && this.buffer[position - 1].shiftTop)\r\n ) {\r\n wrapper.shiftTop = true;\r\n }\r\n }\r\n }\r\n newItems.forEach((newItem) => {\r\n if (newItem === wrapper.item) {\r\n position--;\r\n } else {\r\n // 3 parameter (shiftTop) is to catch \"first\" edge case on insert\r\n this.buffer.insert(position + 1, newItem, !options.immutableTop && position === -1);\r\n }\r\n });\r\n }\r\n\r\n calculateProperties() {\r\n let rowTop = null, topHeight = 0;\r\n let topDone = false, bottomDone = false;\r\n const length = this.buffer.length;\r\n\r\n for (let i = 0; i < length; i++) {\r\n const item = this.buffer[i];\r\n const itemTop = item.element.offset().top;\r\n\r\n if (rowTop !== itemTop) { // a new row condition\r\n const itemHeight = item.element.outerHeight(true);\r\n const top = this.viewport.topDataPos() + topHeight + itemHeight;\r\n\r\n if (!topDone && top > this.viewport.topVisiblePos()) {\r\n topDone = true;\r\n this['topVisible'] = item.item;\r\n this['topVisibleElement'] = item.element;\r\n this['topVisibleScope'] = item.scope;\r\n }\r\n if (!bottomDone && (top >= this.viewport.bottomVisiblePos() || (i === length - 1 && this.isEOF()))) {\r\n bottomDone = true;\r\n this['bottomVisible'] = item.item;\r\n this['bottomVisibleElement'] = item.element;\r\n this['bottomVisibleScope'] = item.scope;\r\n }\r\n topHeight += itemHeight;\r\n }\r\n rowTop = itemTop;\r\n\r\n if (topDone && bottomDone) {\r\n break;\r\n }\r\n }\r\n }\r\n\r\n}\r\n\r\nexport default Adapter;\r\n","import JQLiteExtras from './modules/jqLiteExtras';\r\nimport ElementRoutines from './modules/elementRoutines.js';\r\nimport ScrollBuffer from './modules/buffer.js';\r\nimport Viewport from './modules/viewport.js';\r\nimport Adapter from './modules/adapter.js';\r\nimport { OPERATIONS } from './modules/utils';\r\n\r\nangular.module('ui.scroll', [])\r\n\r\n .constant('JQLiteExtras', JQLiteExtras)\r\n .run(['JQLiteExtras', (JQLiteExtras) => {\r\n const elt = angular.element;\r\n !(window.jQuery && elt.fn && elt.fn.jquery) ? (new JQLiteExtras()).registerFor(elt) : null;\r\n ElementRoutines.addCSSRules();\r\n }])\r\n\r\n .directive('uiScrollViewport', function () {\r\n return {\r\n restrict: 'A',\r\n controller: [\r\n '$scope',\r\n '$element',\r\n function (scope, element) {\r\n this.container = element;\r\n this.viewport = element;\r\n this.scope = scope;\r\n\r\n angular.forEach(element.children(), child => {\r\n if (child.tagName.toLowerCase() === 'tbody') {\r\n this.viewport = angular.element(child);\r\n }\r\n });\r\n\r\n return this;\r\n }\r\n ]\r\n };\r\n })\r\n\r\n .directive('uiScroll', [\r\n '$log',\r\n '$injector',\r\n '$rootScope',\r\n '$timeout',\r\n '$interval',\r\n '$q',\r\n '$parse',\r\n function (console, $injector, $rootScope, $timeout, $interval, $q, $parse) {\r\n\r\n return {\r\n require: ['?^uiScrollViewport'],\r\n restrict: 'A',\r\n transclude: 'element',\r\n priority: 1000,\r\n terminal: true,\r\n link: link\r\n };\r\n\r\n function link($scope, element, $attr, controllers, linker) {\r\n const match = $attr.uiScroll.match(/^\\s*(\\w+)\\s+in\\s+([(\\w|\\$)\\.]+)\\s*$/);\r\n if (!match) {\r\n throw new Error('Expected uiScroll in form of \\'_item_ in _datasource_\\' but got \\'' + $attr.uiScroll + '\\'');\r\n }\r\n\r\n function parseNumber(value, defaultValue, isFloat) {\r\n if (!isFloat) {\r\n value = value === null ? defaultValue : Math.floor(value);\r\n }\r\n return isNaN(value) ? defaultValue : value;\r\n }\r\n\r\n function parseNumericAttr(value, defaultValue, isFloat) {\r\n const result = $parse(value)($scope);\r\n return parseNumber(result, defaultValue, isFloat);\r\n }\r\n\r\n function parseBooleanAttr(value, defaultValue) {\r\n const result = $parse(value)($scope);\r\n return typeof result === 'boolean' ? result : defaultValue;\r\n }\r\n\r\n const BUFFER_MIN = 3;\r\n const BUFFER_DEFAULT = 10;\r\n const PADDING_MIN = 0.3;\r\n const PADDING_DEFAULT = 0.5;\r\n const HANDLE_INERTIA_DEFAULT = true;\r\n const START_INDEX_DEFAULT = 1;\r\n const MAX_VIEWPORT_DELAY = 500;\r\n const VIEWPORT_POLLING_INTERVAL = 50;\r\n\r\n let datasource = null;\r\n const itemName = match[1];\r\n const datasourceName = match[2];\r\n const viewportController = controllers[0];\r\n const bufferSize = Math.max(BUFFER_MIN, parseNumericAttr($attr.bufferSize, BUFFER_DEFAULT));\r\n const padding = Math.max(PADDING_MIN, parseNumericAttr($attr.padding, PADDING_DEFAULT, true));\r\n const handleInertia = parseBooleanAttr($attr.handleInertia, HANDLE_INERTIA_DEFAULT);\r\n let startIndex = parseNumericAttr($attr.startIndex, START_INDEX_DEFAULT);\r\n let ridActual = 0; // current data revision id\r\n let pending = [];\r\n\r\n const elementRoutines = new ElementRoutines($injector, $q);\r\n const buffer = new ScrollBuffer(elementRoutines, bufferSize, startIndex);\r\n const viewport = new Viewport(elementRoutines, buffer, element, viewportController, $rootScope, padding);\r\n const adapter = new Adapter($scope, $parse, $attr, viewport, buffer, doAdjust, reload);\r\n\r\n if (viewportController) {\r\n viewportController.adapter = adapter;\r\n }\r\n\r\n const isDatasourceValid = () =>\r\n Object.prototype.toString.call(datasource) === '[object Object]' && typeof datasource.get === 'function';\r\n\r\n datasource = $parse(datasourceName)($scope); // try to get datasource on scope\r\n if (!isDatasourceValid()) {\r\n datasource = $injector.get(datasourceName); // try to inject datasource as service\r\n if (!isDatasourceValid()) {\r\n throw new Error(datasourceName + ' is not a valid datasource');\r\n }\r\n }\r\n\r\n let onRenderHandlers = [];\r\n function onRenderHandlersRunner() {\r\n onRenderHandlers.forEach(handler => handler.run());\r\n onRenderHandlers = [];\r\n }\r\n function persistDatasourceIndex(datasource, propName) {\r\n let getter;\r\n // need to postpone min/maxIndexUser processing if the view is empty\r\n if (angular.isNumber(datasource[propName])) {\r\n getter = datasource[propName];\r\n if (angular.isNumber(getter)) {\r\n onRenderHandlers = onRenderHandlers.filter(handler => handler.id !== propName);\r\n onRenderHandlers.push({\r\n id: propName,\r\n run: () => datasource[propName] = getter\r\n });\r\n }\r\n }\r\n }\r\n\r\n function defineDatasourceIndex(datasource, propName, propUserName) {\r\n const descriptor = Object.getOwnPropertyDescriptor(datasource, propName);\r\n if (descriptor && (descriptor.set || descriptor.get)) {\r\n return;\r\n }\r\n let getter;\r\n persistDatasourceIndex(datasource, propName);\r\n Object.defineProperty(datasource, propName, {\r\n set: (value) => {\r\n getter = value;\r\n if (pending.length && !buffer.length) {\r\n persistDatasourceIndex(datasource, propName);\r\n return;\r\n }\r\n buffer[propUserName] = value;\r\n const topPaddingHeightOld = viewport.topDataPos();\r\n viewport.adjustPaddings();\r\n if (propName === 'minIndex') {\r\n viewport.onAfterMinIndexSet(topPaddingHeightOld);\r\n }\r\n },\r\n get: () => getter\r\n });\r\n }\r\n\r\n defineDatasourceIndex(datasource, 'minIndex', 'minIndexUser');\r\n defineDatasourceIndex(datasource, 'maxIndex', 'maxIndexUser');\r\n\r\n const fetchNext = (datasource.get.length !== 2) ?\r\n (success) => datasource.get(buffer.next, bufferSize, success) :\r\n (success) => {\r\n datasource.get({\r\n index: buffer.next,\r\n append: buffer.length ? buffer[buffer.length - 1].item : void 0,\r\n count: bufferSize\r\n }, success);\r\n };\r\n\r\n const fetchPrevious = (datasource.get.length !== 2) ?\r\n (success) => datasource.get(buffer.first - bufferSize, bufferSize, success) :\r\n (success) => {\r\n datasource.get({\r\n index: buffer.first - bufferSize,\r\n prepend: buffer.length ? buffer[0].item : void 0,\r\n count: bufferSize\r\n }, success);\r\n };\r\n\r\n const initialize = () => {\r\n let tryCount = 0;\r\n if (!viewport.applyContainerStyle()) {\r\n const timer = $interval(() => {\r\n tryCount++;\r\n if (viewport.applyContainerStyle()) {\r\n $interval.cancel(timer);\r\n doAdjust();\r\n }\r\n if (tryCount * VIEWPORT_POLLING_INTERVAL >= MAX_VIEWPORT_DELAY) {\r\n $interval.cancel(timer);\r\n throw Error(`ui-scroll directive requires a viewport with non-zero height in ${MAX_VIEWPORT_DELAY}ms`);\r\n }\r\n }, VIEWPORT_POLLING_INTERVAL);\r\n }\r\n else {\r\n doAdjust();\r\n }\r\n };\r\n\r\n /**\r\n * Build padding elements\r\n *\r\n * Calling linker is the only way I found to get access to the tag name of the template\r\n * to prevent the directive scope from pollution a new scope is created and destroyed\r\n * right after the builder creation is completed\r\n */\r\n linker((clone, scope) => {\r\n viewport.createPaddingElements(clone[0]);\r\n // we do not include the clone in the DOM. It means that the nested directives will not\r\n // be able to reach the parent directives, but in this case it is intentional because we\r\n // created the clone to access the template tag name\r\n scope.$destroy();\r\n clone.remove();\r\n });\r\n\r\n $scope.$on('$destroy', () => {\r\n unbindEvents();\r\n viewport.off('mousewheel', wheelHandler);\r\n });\r\n\r\n viewport.on('mousewheel', wheelHandler);\r\n\r\n initialize();\r\n\r\n /* Private function definitions */\r\n\r\n function isInvalid(rid) {\r\n return (rid && rid !== ridActual) || $scope.$$destroyed;\r\n }\r\n\r\n function bindEvents() {\r\n viewport.on('resize', resizeAndScrollHandler);\r\n viewport.on('scroll', resizeAndScrollHandler);\r\n }\r\n\r\n function unbindEvents() {\r\n viewport.off('resize', resizeAndScrollHandler);\r\n viewport.off('scroll', resizeAndScrollHandler);\r\n }\r\n\r\n function reload() {\r\n unbindEvents();\r\n viewport.resetTopPadding();\r\n viewport.resetBottomPadding();\r\n if (arguments.length) {\r\n startIndex = parseNumber(arguments[0], START_INDEX_DEFAULT, false);\r\n }\r\n buffer.reset(startIndex);\r\n persistDatasourceIndex(datasource, 'minIndex');\r\n persistDatasourceIndex(datasource, 'maxIndex');\r\n doAdjust();\r\n }\r\n\r\n function isElementVisible(wrapper) {\r\n return wrapper.element.height() && wrapper.element[0].offsetParent;\r\n }\r\n\r\n function visibilityWatcher(wrapper) {\r\n if (isElementVisible(wrapper)) {\r\n buffer.forEach((item) => {\r\n if (typeof item.unregisterVisibilityWatcher === 'function') {\r\n item.unregisterVisibilityWatcher();\r\n delete item.unregisterVisibilityWatcher;\r\n }\r\n });\r\n if (!pending.length) {\r\n $timeout(() => doAdjust());\r\n }\r\n }\r\n }\r\n\r\n function insertWrapperContent(wrapper, insertAfter) {\r\n createElement(wrapper, insertAfter, viewport.insertElement);\r\n if (!isElementVisible(wrapper)) {\r\n wrapper.unregisterVisibilityWatcher = wrapper.scope.$watch(() => visibilityWatcher(wrapper));\r\n }\r\n elementRoutines.hideElement(wrapper); // hide inserted elements before data binding\r\n }\r\n\r\n function createElement(wrapper, insertAfter, insertElement) {\r\n let promises = null;\r\n const sibling = (insertAfter > 0) ? buffer[insertAfter - 1].element : undefined;\r\n linker((clone, scope) => {\r\n promises = insertElement(clone, sibling);\r\n wrapper.element = clone;\r\n wrapper.scope = scope;\r\n scope[itemName] = wrapper.item;\r\n });\r\n // ui-scroll-grid apply\r\n if (adapter.transform) {\r\n const tdInitializer = wrapper.scope.uiScrollTdInitializer;\r\n if (tdInitializer && tdInitializer.linking) {\r\n adapter.transform(wrapper.scope, wrapper.element);\r\n } else {\r\n wrapper.scope.uiScrollTdInitializer = {\r\n onLink: () => adapter.transform(wrapper.scope, wrapper.element),\r\n scope: wrapper.scope\r\n };\r\n }\r\n }\r\n return promises;\r\n }\r\n\r\n function updateDOM() {\r\n let promises = [];\r\n const toBePrepended = [];\r\n const toBeRemoved = [];\r\n const inserted = [];\r\n\r\n buffer.forEach((wrapper, i) => {\r\n switch (wrapper.op) {\r\n case OPERATIONS.PREPEND:\r\n toBePrepended.unshift(wrapper);\r\n break;\r\n case OPERATIONS.APPEND:\r\n insertWrapperContent(wrapper, i);\r\n wrapper.op = OPERATIONS.NONE;\r\n inserted.push(wrapper);\r\n break;\r\n case OPERATIONS.INSERT:\r\n promises = promises.concat(createElement(wrapper, i, viewport.insertElementAnimated));\r\n wrapper.op = OPERATIONS.NONE;\r\n inserted.push(wrapper);\r\n break;\r\n case OPERATIONS.REMOVE:\r\n toBeRemoved.push(wrapper);\r\n }\r\n });\r\n\r\n toBeRemoved.forEach((wrapper) => promises = promises.concat(viewport.removeItem(wrapper)));\r\n\r\n if (toBePrepended.length)\r\n toBePrepended.forEach((wrapper) => {\r\n insertWrapperContent(wrapper);\r\n wrapper.op = OPERATIONS.NONE;\r\n });\r\n\r\n buffer.forEach((item, i) => item.scope.$index = buffer.first + i);\r\n\r\n return {\r\n prepended: toBePrepended,\r\n removed: toBeRemoved,\r\n inserted: inserted,\r\n animated: promises\r\n };\r\n\r\n }\r\n\r\n function updatePaddings(rid, updates) {\r\n // schedule another doAdjust after animation completion\r\n if (updates.animated.length) {\r\n $q.all(updates.animated).then(() => {\r\n viewport.adjustPaddings();\r\n doAdjust(rid);\r\n });\r\n } else {\r\n viewport.adjustPaddings();\r\n }\r\n }\r\n\r\n function enqueueFetch(rid, updates) {\r\n if (viewport.shouldLoadBottom()) {\r\n if (!updates || buffer.effectiveHeight(updates.inserted) > 0) {\r\n // this means that at least one item appended in the last batch has height > 0\r\n if (pending.push(true) === 1) {\r\n adapter.loading(true);\r\n fetch(rid);\r\n }\r\n }\r\n } else if (viewport.shouldLoadTop()) {\r\n if ((!updates || buffer.effectiveHeight(updates.prepended) > 0) || pending[0]) {\r\n // this means that at least one item appended in the last batch has height > 0\r\n // pending[0] = true means that previous fetch was appending. We need to force at least one prepend\r\n // BTW there will always be at least 1 element in the pending array because bottom is fetched first\r\n if (pending.push(false) === 1) {\r\n adapter.loading(true);\r\n fetch(rid);\r\n }\r\n }\r\n }\r\n }\r\n\r\n function processUpdates() {\r\n const updates = updateDOM();\r\n\r\n // We need the item bindings to be processed before we can do adjustments\r\n !$scope.$$phase && !$rootScope.$$phase && $scope.$digest();\r\n\r\n updates.inserted.forEach(w => elementRoutines.showElement(w));\r\n updates.prepended.forEach(w => elementRoutines.showElement(w));\r\n return updates;\r\n }\r\n\r\n function doAdjust(rid) {\r\n if (!rid) { // dismiss pending requests\r\n pending = [];\r\n rid = ++ridActual;\r\n }\r\n\r\n const updates = processUpdates();\r\n\r\n if (isInvalid(rid)) {\r\n return;\r\n }\r\n\r\n updatePaddings(rid, updates);\r\n enqueueFetch(rid);\r\n\r\n if (!pending.length) {\r\n adapter.calculateProperties();\r\n }\r\n }\r\n\r\n function doAdjustAfterFetch(rid) {\r\n const updates = processUpdates();\r\n\r\n viewport.onAfterPrepend(updates);\r\n\r\n if (isInvalid(rid)) {\r\n return;\r\n }\r\n\r\n updatePaddings(rid, updates);\r\n onRenderHandlersRunner();\r\n enqueueFetch(rid, updates);\r\n pending.shift();\r\n\r\n if (pending.length)\r\n fetch(rid);\r\n else {\r\n adapter.loading(false);\r\n bindEvents();\r\n adapter.calculateProperties();\r\n }\r\n }\r\n\r\n function fetch(rid) {\r\n if (pending[0]) {// scrolling down\r\n if (buffer.length && !viewport.shouldLoadBottom()) {\r\n doAdjustAfterFetch(rid);\r\n } else {\r\n fetchNext((result) => {\r\n if (isInvalid(rid)) {\r\n return;\r\n }\r\n\r\n if (result.length < bufferSize) {\r\n buffer.eof = true;\r\n }\r\n\r\n if (result.length > 0) {\r\n viewport.clipTop();\r\n buffer.append(result);\r\n }\r\n\r\n doAdjustAfterFetch(rid);\r\n });\r\n }\r\n } else { // scrolling up\r\n if (buffer.length && !viewport.shouldLoadTop()) {\r\n doAdjustAfterFetch(rid);\r\n } else {\r\n fetchPrevious((result) => {\r\n if (isInvalid(rid)) {\r\n return;\r\n }\r\n\r\n if (result.length < bufferSize) {\r\n buffer.bof = true;\r\n // log 'bof is reached'\r\n }\r\n\r\n if (result.length > 0) {\r\n if (buffer.length) {\r\n viewport.clipBottom();\r\n }\r\n buffer.prepend(result);\r\n }\r\n\r\n doAdjustAfterFetch(rid);\r\n });\r\n }\r\n }\r\n }\r\n\r\n function fixInertia() {\r\n if (!viewport.synthetic) {\r\n return;\r\n }\r\n const oldPosition = viewport.synthetic.previous;\r\n const newPosition = viewport.synthetic.next;\r\n if (viewport.scrollTop() !== newPosition) {\r\n requestAnimationFrame(() => {\r\n const position = viewport.scrollTop();\r\n const diff = oldPosition - position;\r\n if (diff > 0) { // inertia over synthetic\r\n viewport.scrollTop(newPosition - diff);\r\n } else {\r\n viewport.scrollTop(newPosition);\r\n }\r\n viewport.synthetic = null;\r\n });\r\n return true;\r\n }\r\n viewport.synthetic = null;\r\n }\r\n\r\n function resizeAndScrollHandler() {\r\n if (handleInertia && fixInertia()) {\r\n return;\r\n }\r\n if (!$rootScope.$$phase && !adapter.isLoading && !adapter.disabled) {\r\n\r\n enqueueFetch(ridActual);\r\n\r\n if (pending.length) {\r\n unbindEvents();\r\n } else {\r\n adapter.calculateProperties();\r\n !$scope.$$phase && $scope.$digest();\r\n }\r\n }\r\n }\r\n\r\n function wheelHandler(event) {\r\n if (!adapter.disabled) {\r\n const scrollTop = viewport[0].scrollTop;\r\n const yMax = viewport[0].scrollHeight - viewport[0].clientHeight;\r\n\r\n if ((scrollTop === 0 && !buffer.bof) || (scrollTop === yMax && !buffer.eof)) {\r\n event.preventDefault();\r\n }\r\n }\r\n }\r\n }\r\n\r\n }\r\n ]);\r\n"],"names":["JQLiteExtras","_classCallCheck","_createClass","key","value","registerFor","element","convertToPx","css","getStyle","isWindow","angular","prototype","name","self","elem","nodeType","style","call","obj","document","location","alert","setInterval","scrollTo","direction","_top$left$direction","_slicedToArray","top","left","method","prop","preserve","isValueDefined","documentElement","window","getComputedStyle","parseFloat","currentStyle","result","rs","rsLeft","core_pnum","source","rnumnonpx","RegExp","test","runtimeStyle","pixelLeft","getMeasurements","measure","base","borderA","borderB","computedMarginA","computedMarginB","computedStyle","dirA","dirB","marginA","marginB","paddingA","paddingB","height","width","padding","border","margin","_width$height$measure","offsetWidth","offsetHeight","getWidthHeight","measurements","outer","outerfull","forEach","before","newElem","children","i","j","parent","ref","contents","prepend","length","after","Error","outerHTML","isNumber","outerHeight","option","outerWidth","offset","docElem","win","box","doc","ownerDocument","arguments","undefined","getBoundingClientRect","defaultView","parentWindow","pageYOffset","scrollTop","clientTop","pageXOffset","scrollLeft","clientLeft","default","hideClassToken","ElementRoutines","$injector","$q","$animate","has","get","isAngularVersionLessThen1_3","version","major","minor","hideElement","wrapper","addClass","showElement","removeClass","insertElement","newElement","previousElement","removeElement","remove","scope","$destroy","insertElementAnimated","deferred","defer","enter","resolve","promise","removeElementAnimated","leave","then","addCSSRules","selector","rules","sheet","styleSheets","index","cssRules","err","insertRule","addRule","OPERATIONS","PREPEND","APPEND","INSERT","REMOVE","NONE","ScrollBuffer","elementRoutines","bufferSize","startIndex","buffer","Object","create","Array","extend","size","reset","eof","bof","first","next","minIndex","maxIndex","minIndexUser","maxIndexUser","append","items","item","insert","Math","max","immutableTop","reverse","min","operation","shiftTop","op","splice","push","unshift","arg1","arg2","indexOf","getAbsMinIndex","incrementMinIndex","decrementMaxIndex","getAbsMaxIndex","effectiveHeight","elements","Number","MAX_VALUE","bottom","NEGATIVE_INFINITY","offsetParent","getItems","filter","getFirstItem","list","getLastItem","CacheProto","add","$index","sort","a","b","argument","_shiftTop","clear","Cache","instance","apply","setPrototypeOf","getOwnPropertyNames","methodName","generateElement","template","Node","ELEMENT_NODE","tagName","toLowerCase","concat","table","find","Padding","cache","Viewport","viewportController","$rootScope","topPadding","bottomPadding","viewport","container","bufferPadding","getScope","createPaddingElements","applyContainerStyle","bottomDataPos","scrollHeight","topDataPos","bottomVisiblePos","topVisiblePos","e","sibling","shouldLoadBottom","clipBottom","overage","overageHeight","itemHeight","emptySpaceHeight","adjustPaddings","shouldLoadTop","clipTop","visibleItemsHeight","reduce","summ","topPaddingHeight","topCount","bottomPaddingHeight","bottomCount","totalHeight","averageItemHeight","adjustTopPadding","adjustBottomPadding","topPaddingHeightAdd","bottomPaddingHeightAdd","onAfterMinIndexSet","topPaddingHeightOld","diff","onAfterPrepend","updates","prepended","paddingHeight","position","newPosition","synthetic","previous","resetTopPadding","resetBottomPadding","removeCacheItem","removeItem","Adapter","$scope","$parse","$attr","doAdjust","reload","isLoading","disabled","viewportScope","startScope","$parent","publicContext","assignAdapter","adapter","generatePublicContext","adapterAttr","replace","adapterOnScope","assign","error","message","_this","publicMethods","bind","publicProps","_loop","_i","property","attr","defineProperty","set","publicPropsImmediate","_loop2","_i2","loading","isBOF","isEOF","isEmpty","newItems","options","applyUpdates","arg3","applyUpdatesFunc","applyUpdatesIndex","cb","_this2","slice","applyUpdate","_index","isArray","_this3","some","newItem","calculateProperties","rowTop","topHeight","topDone","bottomDone","itemTop","module","constant","run","elt","jQuery","fn","jquery","directive","restrict","controller","child","console","$timeout","$interval","require","transclude","priority","terminal","link","controllers","linker","match","uiScroll","parseNumber","defaultValue","isFloat","floor","isNaN","parseNumericAttr","parseBooleanAttr","BUFFER_MIN","BUFFER_DEFAULT","PADDING_MIN","PADDING_DEFAULT","HANDLE_INERTIA_DEFAULT","START_INDEX_DEFAULT","MAX_VIEWPORT_DELAY","VIEWPORT_POLLING_INTERVAL","datasource","itemName","datasourceName","handleInertia","ridActual","pending","isDatasourceValid","toString","onRenderHandlers","onRenderHandlersRunner","handler","persistDatasourceIndex","propName","getter","id","defineDatasourceIndex","propUserName","descriptor","getOwnPropertyDescriptor","fetchNext","success","count","fetchPrevious","initialize","tryCount","timer","cancel","clone","$on","unbindEvents","off","wheelHandler","on","isInvalid","rid","$$destroyed","bindEvents","resizeAndScrollHandler","isElementVisible","visibilityWatcher","unregisterVisibilityWatcher","insertWrapperContent","insertAfter","createElement","$watch","promises","transform","tdInitializer","uiScrollTdInitializer","linking","onLink","updateDOM","toBePrepended","toBeRemoved","inserted","removed","animated","updatePaddings","all","enqueueFetch","fetch","processUpdates","$$phase","$digest","w","doAdjustAfterFetch","shift","fixInertia","oldPosition","requestAnimationFrame","event","yMax","clientHeight","preventDefault"],"sourceRoot":""} \ No newline at end of file diff --git a/dist/ui-scroll.min.js b/dist/ui-scroll.min.js index 2853092..ce39730 100644 --- a/dist/ui-scroll.min.js +++ b/dist/ui-scroll.min.js @@ -1,2 +1,2 @@ -(()=>{"use strict";function e(t){return e="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},e(t)}function t(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,i,o,a,u=[],l=!0,s=!1;try{if(o=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;l=!1}else for(;!(l=(r=o.call(n)).done)&&(u.push(r.value),u.length!==t);l=!0);}catch(e){s=!0,i=e}finally{try{if(!l&&null!=n.return&&(a=n.return(),Object(a)!==a))return}finally{if(s)throw i}}return u}}(e,t)||function(e,t){if(!e)return;if("string"==typeof e)return n(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);"Object"===r&&e.constructor&&(r=e.constructor.name);if("Map"===r||"Set"===r)return Array.from(e);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return n(e,t)}(e,t)||function(){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 n(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n0?{base:l.base-l.padding-l.border,outer:l.base,outerfull:l.base+l.margin}[a]:(((u=i(e)[r])<0||null===u)&&(u=e.style[r]||0),{base:(u=parseFloat(u)||0)-l.padding-l.border,outer:u,outerfull:u+l.padding+l.border+l.margin}[a])}return r=angular.element.prototype.css,e.prototype.css=function(e,t){var n=this[0];if(n&&3!==n.nodeType&&8!==n.nodeType&&n.style)return r.call(this,e,t)},o=function(e){return e&&e.document&&e.location&&e.alert&&e.setInterval},window.getComputedStyle?(i=function(e){return window.getComputedStyle(e,null)},n=function(e,t){return parseFloat(t)}):(i=function(e){return e.currentStyle},n=function(e,t){var n,r,i,o,a;return new RegExp("^("+/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source+")(?!px)[a-z%]+$","i").test(t)?(n=(a=e.style).left,o=(i=e.runtimeStyle)&&i.left,i&&(i.left=a.left),a.left=t,r=a.pixelLeft,a.left=n,o&&(i.left=o),r):parseFloat(t)}),angular.forEach({before:function(e){var t,n,r,i,o,a;if(n=this[0],(t=(o=this.parent()).contents())[0]===n)return o.prepend(e);for(r=i=1,a=t.length-1;1<=a?i<=a:i>=a;r=1<=a?++i:--i)if(t[r]===n)return void angular.element(t[r-1]).after(e);throw new Error("invalid DOM structure "+n.outerHTML)},height:function(e){return void 0!==e?(angular.isNumber(e)&&(e+="px"),r.call(this,"height",e)):u(this[0],"height","base")},outerHeight:function(e){return u(this[0],"height",e?"outerfull":"outer")},outerWidth:function(e){return u(this[0],"width",e?"outerfull":"outer")},offset:function(e){var t,n,r={top:0,left:0},i=this[0],o=i&&i.ownerDocument;if(arguments.length){if(void 0===e)return this;throw new Error("offset setter method is not implemented")}if(o)return t=o.documentElement,null!=i.getBoundingClientRect&&(r=i.getBoundingClientRect()),n=o.defaultView||o.parentWindow,{top:r.top+(n.pageYOffset||t.scrollTop)-(t.clientTop||0),left:r.left+(n.pageXOffset||t.scrollLeft)-(t.clientLeft||0)}},scrollTop:function(e){return a(this,"top",e)},scrollLeft:function(e){return a(this,"left",e)}},(function(t,n){if(!e.prototype[n])return e.prototype[n]=t}))}}],i&&r(n.prototype,i),o&&r(n,o),Object.defineProperty(n,"prototype",{writable:!1}),e}();function o(e){return o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},o(e)}function a(e,t){for(var n=0;nr.minIndexUser)return void r.minIndexUser++;r.minIndex===r.minIndexUser&&r.minIndexUser++}r.minIndex++},decrementMaxIndex:function(){null!==r.maxIndexUser&&r.maxIndex<=r.maxIndexUser&&r.maxIndexUser--,r.maxIndex--},getAbsMinIndex:function(){return null!==r.minIndexUser?Math.min(r.minIndexUser,r.minIndex):r.minIndex},getAbsMaxIndex:function(){return null!==r.maxIndexUser?Math.max(r.maxIndexUser,r.maxIndex):r.maxIndex},effectiveHeight:function(e){if(!e.length)return 0;var t=Number.MAX_VALUE,n=Number.NEGATIVE_INFINITY;return e.forEach((function(e){e.element[0].offsetParent&&(t=Math.min(t,e.element.offset().top),n=Math.max(n,e.element.offset().top+e.element.outerHeight(!0)))})),Math.max(0,n-t)},getItems:function(){return r.filter((function(e){return e.op===s.NONE}))},getFirstItem:function(){var e=r.getItems();return e.length?e[0].item:null},getLastItem:function(){var e=r.getItems();return e.length?e[e.length-1].item:null}}),r.reset(n),r}function c(e){return c="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},c(e)}function h(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function p(e,t){for(var n=0;n=0;t--)if(this[t].index===e.scope.$index)return void(this[t].height=e.element.outerHeight());this.push({index:e.scope.$index,height:e.element.outerHeight()}),this.sort((function(e,t){return e.indext.index?1:0}))}},{key:"remove",value:function(e,t){for(var n=e%1==0?e:e.scope.$index,r=e%1==0?t:e.shiftTop,i=this.length-1;i>=0;i--)if(this[i].index===n){this.splice(i,1);break}if(!r)for(var o=this.length-1;o>=0;o--)this[o].index>n&&this[o].index--}},{key:"clear",value:function(){this.length=0}}]),e}();function g(){var e=[];return e.push.apply(e,arguments),Object.setPrototypeOf(e,g.prototype),e}g.prototype=Object.create(Array.prototype),Object.getOwnPropertyNames(m.prototype).forEach((function(e){return g.prototype[e]=m.prototype[e]}));const b=function(){function e(t){h(this,e),this.element=function(e){if(e.nodeType!==Node.ELEMENT_NODE)throw new Error("ui-scroll directive requires an Element node for templating the view");var t;switch(e.tagName.toLowerCase()){case"dl":throw new Error("ui-scroll directive does not support <".concat(e.tagName,"> as a repeating tag: ").concat(e.outerHTML));case"tr":t=angular.element("
    ").find("tr");break;case"li":t=angular.element("
  • ");break;default:t=angular.element("
    ")}return t}(t),this.cache=new g}return d(e,[{key:"height",value:function(){return this.element.height.apply(this.element,arguments)}}]),e}();function v(e,t,n,r,i,o){var a=null,u=null,l=r&&r.viewport?r.viewport:angular.element(window),s=r&&r.container?r.container:void 0,f=r&&r.scope?r.scope:i;function c(){return l.outerHeight()*o}return l.css({"overflow-anchor":"none","overflow-y":"auto",display:"block"}),angular.extend(l,{getScope:function(){return f},createPaddingElements:function(e){a=new b(e),u=new b(e),n.before(a.element),n.after(u.element),a.height(0),u.height(0)},applyContainerStyle:function(){return!s||(s!==l&&l.css("height",window.getComputedStyle(s[0]).height),l.height()>0)},bottomDataPos:function(){var e=l[0].scrollHeight;return(e=null!=e?e:l[0].document.documentElement.scrollHeight)-u.height()},topDataPos:function(){return a.height()},bottomVisiblePos:function(){return l.scrollTop()+l.outerHeight()},topVisiblePos:function(){return l.scrollTop()},insertElement:function(t,n){return e.insertElement(t,n||a.element)},insertElementAnimated:function(t,n){return e.insertElementAnimated(t,n||a.element)},shouldLoadBottom:function(){return!t.eof&&l.bottomDataPos()=0&&!(n+(r=t[o].element.outerHeight(!0))>i);o--)u.cache.add(t[o]),n+=r,e++;e>0&&(t.eof=!1,t.remove(t.length-e,t.length),t.next-=e,l.adjustPaddings())},shouldLoadTop:function(){return!t.bof&&l.topDataPos()>l.topVisiblePos()-c()},clipTop:function(){for(var e=0,n=0,r=0,i=l.topVisiblePos()-l.topDataPos()-c(),o=0;oi);o++)a.cache.add(t[o]),n+=r,e++;e>0&&(a.height(a.height()+n),t.bof=!1,t.remove(0,e),t.first+=e)},adjustPaddings:function(){if(t.length){var e=t.reduce((function(e,t){return e+t.element.outerHeight(!0)}),0),n=0,r=0;a.cache.forEach((function(e){e.index=t.next&&(i+=e.height,o++)}));var l=(e+n+i)/(r+o+t.length),s=null!==t.minIndexUser&&t.minIndex>t.minIndexUser,f=null!==t.maxIndexUser&&t.maxIndext.minIndexUser){var n=a.height()-e;for(l.scrollTop(l.scrollTop()+n);(n-=l.scrollTop())>0;)u.height(u.height()+n),l.scrollTop(l.scrollTop()+n)}},onAfterPrepend:function(e){if(e.prepended.length){var n=t.effectiveHeight(e.prepended),r=a.height()-n;if(r>=0)a.height(r);else{var i=l.scrollTop(),o=i-r;l.synthetic={previous:i,next:o},a.height(0),l.scrollTop(o)}}},resetTopPadding:function(){a.height(0),a.cache.clear()},resetBottomPadding:function(){u.height(0),u.cache.clear()},removeCacheItem:function(e,t){a.cache.remove(e,t),u.cache.remove(e,t)},removeItem:function(e){return this.removeCacheItem(e),t.remove(e)}}),l}function y(e){return y="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},y(e)}function x(e,t){for(var n=0;n=0;n--)this.publicContext[t[n]]=this[t[n]].bind(this);for(var r=["isLoading","topVisible","topVisibleElement","topVisibleScope","bottomVisible","bottomVisibleElement","bottomVisibleScope"],i=function(t){var n,i=e.$attr[r[t]];Object.defineProperty(e,r[t],{get:function(){return n},set:function(o){n=o,e.publicContext[r[t]]=o,i&&e.$parse(i).assign(e.startScope,o)}})},o=6;o>=0;o--)i(o);for(var a=["bufferFirst","bufferLast","bufferLength"],u=function(t){Object.defineProperty(e.publicContext,a[t],{get:function(){return e[a[t]]}})},l=2;l>=0;l--)u(l);Object.defineProperty(this.publicContext,"disabled",{get:function(){return e.disabled},set:function(t){return(e.disabled=t)?null:e.doAdjust()}})}},{key:"loading",value:function(e){this.isLoading=e}},{key:"isBOF",value:function(){return this.buffer.bof}},{key:"isEOF",value:function(){return this.buffer.eof}},{key:"isEmpty",value:function(){return!this.buffer.length}},{key:"bufferLength",get:function(){return this.buffer.getItems().length}},{key:"bufferFirst",get:function(){return this.buffer.getFirstItem()}},{key:"bufferLast",get:function(){return this.buffer.getLastItem()}},{key:"append",value:function(e){this.buffer.append(e),this.doAdjust(),this.viewport.clipTop(),this.viewport.clipBottom()}},{key:"prepend",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};this.buffer.prepend(e,t.immutableTop),this.doAdjust(),this.viewport.clipTop(),this.viewport.clipBottom()}},{key:"applyUpdates",value:function(e,t,n){"function"==typeof e?this.applyUpdatesFunc(e,t):this.applyUpdatesIndex(e,t,n),this.doAdjust()}},{key:"applyUpdatesFunc",value:function(e){var t=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};this.buffer.slice(0).forEach((function(r){t.applyUpdate(r,e(r.item,r.scope,r.element),n)}))}},{key:"applyUpdatesIndex",value:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(e%1!=0)throw new Error("applyUpdates - "+e+" is not a valid index (should be an integer)");var r=e-this.buffer.first;r>=0&&r=this.buffer.getAbsMinIndex()&&e<=this.buffer.getAbsMaxIndex()&&angular.isArray(t)&&!t.length&&(this.viewport.removeCacheItem(e,!n.immutableTop&&e===this.buffer.minIndex),n.immutableTop||e!==this.buffer.getAbsMinIndex()?this.buffer.decrementMaxIndex():this.buffer.incrementMinIndex())}},{key:"applyUpdate",value:function(e,t){var n=this,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(angular.isArray(t)){var i=this.buffer.indexOf(e);t.reverse().some((function(t){return t===e.item}))||(e.op=s.REMOVE,r.immutableTop||t.length||(0===i&&this.buffer.bof||0!==i&&this.buffer[i-1].shiftTop)&&(e.shiftTop=!0)),t.forEach((function(t){t===e.item?i--:n.buffer.insert(i+1,t,!r.immutableTop&&-1===i)}))}}},{key:"calculateProperties",value:function(){for(var e=null,t=0,n=!1,r=!1,i=this.buffer.length,o=0;othis.viewport.topVisiblePos()&&(n=!0,this.topVisible=a.item,this.topVisibleElement=a.element,this.topVisibleScope=a.scope),!r&&(s>=this.viewport.bottomVisiblePos()||o===i-1&&this.isEOF())&&(r=!0,this.bottomVisible=a.item,this.bottomVisibleElement=a.element,this.bottomVisibleScope=a.scope),t+=l}if(e=u,n&&r)break}}}],n&&x(t.prototype,n),r&&x(t,r),Object.defineProperty(t,"prototype",{writable:!1}),e}();angular.module("ui.scroll",[]).constant("JQLiteExtras",i).run(["JQLiteExtras",function(e){var t=angular.element;!(window.jQuery&&t.fn&&t.fn.jquery)&&(new e).registerFor(t),l.addCSSRules()}]).directive("uiScrollViewport",(function(){return{restrict:"A",controller:["$scope","$element",function(e,t){var n=this;return this.container=t,this.viewport=t,this.scope=e,angular.forEach(t.children(),(function(e){"tbody"===e.tagName.toLowerCase()&&(n.viewport=angular.element(e))})),this}]}})).directive("uiScroll",["$log","$injector","$rootScope","$timeout","$interval","$q","$parse",function(e,t,n,r,i,o,a){return{require:["?^uiScrollViewport"],restrict:"A",transclude:"element",priority:1e3,terminal:!0,link:function(e,u,c,h,p){var d=c.uiScroll.match(/^\s*(\w+)\s+in\s+([(\w|\$)\.]+)\s*$/);if(!d)throw new Error("Expected uiScroll in form of '_item_ in _datasource_' but got '"+c.uiScroll+"'");function m(e,t,n){return n||(e=null===e?t:Math.floor(e)),isNaN(e)?t:e}function g(t,n,r){return m(a(t)(e),n,r)}var b=null,y=d[1],x=d[2],w=h[0],I=Math.max(3,g(c.bufferSize,10)),P=Math.max(.3,g(c.padding,.5,!0)),S=(U=c.handleInertia,L=!0,V=a(U)(e),"boolean"==typeof V?V:L),T=g(c.startIndex,1),$=0,A=[],j=new l(t,o),O=new f(j,I,T),k=new v(j,O,u,w,n,P),N=new E(e,a,c,k,O,J,(function(){W(),k.resetTopPadding(),k.resetBottomPadding(),arguments.length&&(T=m(arguments[0],1,!1));O.reset(T),H(b,"minIndex"),H(b,"maxIndex"),J()}));var U,L,V;w&&(w.adapter=N);var M=function(){return"[object Object]"===Object.prototype.toString.call(b)&&"function"==typeof b.get};if(!(b=a(x)(e),M()||(b=t.get(x),M())))throw new Error(x+" is not a valid datasource");var C=[];function H(e,t){var n;angular.isNumber(e[t])&&(n=e[t],angular.isNumber(n)&&(C=C.filter((function(e){return e.id!==t}))).push({id:t,run:function(){return e[t]=n}}))}function D(e,t,n){var r,i=Object.getOwnPropertyDescriptor(e,t);i&&(i.set||i.get)||(H(e,t),Object.defineProperty(e,t,{set:function(i){if(r=i,!A.length||O.length){O[n]=i;var o=k.topDataPos();k.adjustPaddings(),"minIndex"===t&&k.onAfterMinIndexSet(o)}else H(e,t)},get:function(){return r}}))}D(b,"minIndex","minIndexUser"),D(b,"maxIndex","maxIndexUser");var R=2!==b.get.length?function(e){return b.get(O.next,I,e)}:function(e){b.get({index:O.next,append:O.length?O[O.length-1].item:void 0,count:I},e)},F=2!==b.get.length?function(e){return b.get(O.first-I,I,e)}:function(e){b.get({index:O.first-I,prepend:O.length?O[0].item:void 0,count:I},e)};function B(t){return t&&t!==$||e.$$destroyed}function W(){k.off("resize",Z),k.off("scroll",Z)}function _(e){return e.element.height()&&e.element[0].offsetParent}function q(e,t){z(e,t,k.insertElement),_(e)||(e.unregisterVisibilityWatcher=e.scope.$watch((function(){return function(e){_(e)&&(O.forEach((function(e){"function"==typeof e.unregisterVisibilityWatcher&&(e.unregisterVisibilityWatcher(),delete e.unregisterVisibilityWatcher)})),A.length||r((function(){return J()})))}(e)}))),j.hideElement(e)}function z(e,t,n){var r=null,i=t>0?O[t-1].element:void 0;if(p((function(t,o){r=n(t,i),e.element=t,e.scope=o,o[y]=e.item})),N.transform){var o=e.scope.uiScrollTdInitializer;o&&o.linking?N.transform(e.scope,e.element):e.scope.uiScrollTdInitializer={onLink:function(){return N.transform(e.scope,e.element)},scope:e.scope}}return r}function Q(e,t){t.animated.length?o.all(t.animated).then((function(){k.adjustPaddings(),J(e)})):k.adjustPaddings()}function X(e,t){k.shouldLoadBottom()?(!t||O.effectiveHeight(t.inserted)>0)&&1===A.push(!0)&&(N.loading(!0),K(e)):k.shouldLoadTop()&&(!t||O.effectiveHeight(t.prepended)>0||A[0])&&1===A.push(!1)&&(N.loading(!0),K(e))}function Y(){var t,r,i,o,a=(t=[],r=[],i=[],o=[],O.forEach((function(e,n){switch(e.op){case s.PREPEND:r.unshift(e);break;case s.APPEND:q(e,n),e.op=s.NONE,o.push(e);break;case s.INSERT:t=t.concat(z(e,n,k.insertElementAnimated)),e.op=s.NONE,o.push(e);break;case s.REMOVE:i.push(e)}})),i.forEach((function(e){return t=t.concat(k.removeItem(e))})),r.length&&r.forEach((function(e){q(e),e.op=s.NONE})),O.forEach((function(e,t){return e.scope.$index=O.first+t})),{prepended:r,removed:i,inserted:o,animated:t});return!e.$$phase&&!n.$$phase&&e.$digest(),a.inserted.forEach((function(e){return j.showElement(e)})),a.prepended.forEach((function(e){return j.showElement(e)})),a}function J(e){e||(A=[],e=++$);var t=Y();B(e)||(Q(e,t),X(e),A.length||N.calculateProperties())}function G(e){var t=Y();k.onAfterPrepend(t),B(e)||(Q(e,t),C.forEach((function(e){return e.run()})),C=[],X(e,t),A.shift(),A.length?K(e):(N.loading(!1),k.on("resize",Z),k.on("scroll",Z),N.calculateProperties()))}function K(e){A[0]?O.length&&!k.shouldLoadBottom()?G(e):R((function(t){B(e)||(t.length0&&(k.clipTop(),O.append(t)),G(e))})):O.length&&!k.shouldLoadTop()?G(e):F((function(t){B(e)||(t.length0&&(O.length&&k.clipBottom(),O.prepend(t)),G(e))}))}function Z(){S&&function(){if(k.synthetic){var e=k.synthetic.previous,t=k.synthetic.next;if(k.scrollTop()!==t)return requestAnimationFrame((function(){var n=k.scrollTop(),r=e-n;r>0?k.scrollTop(t-r):k.scrollTop(t),k.synthetic=null})),!0;k.synthetic=null}}()||n.$$phase||N.isLoading||N.disabled||(X($),A.length?W():(N.calculateProperties(),!e.$$phase&&e.$digest()))}function ee(e){if(!N.disabled){var t=k[0].scrollTop,n=k[0].scrollHeight-k[0].clientHeight;(0===t&&!O.bof||t===n&&!O.eof)&&e.preventDefault()}}p((function(e,t){k.createPaddingElements(e[0]),t.$destroy(),e.remove()})),e.$on("$destroy",(function(){W(),k.off("mousewheel",ee)})),k.on("mousewheel",ee),function(){var e=0;if(k.applyContainerStyle())J();else var t=i((function(){if(e++,k.applyContainerStyle()&&(i.cancel(t),J()),50*e>=500)throw i.cancel(t),Error("ui-scroll directive requires a viewport with non-zero height in ".concat(500,"ms"))}),50)}()}}}])})(); +(()=>{"use strict";function e(t){return e="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},e(t)}function t(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,i,o,a,u=[],l=!0,s=!1;try{if(o=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;l=!1}else for(;!(l=(r=o.call(n)).done)&&(u.push(r.value),u.length!==t);l=!0);}catch(e){s=!0,i=e}finally{try{if(!l&&null!=n.return&&(a=n.return(),Object(a)!==a))return}finally{if(s)throw i}}return u}}(e,t)||function(e,t){if(!e)return;if("string"==typeof e)return n(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);"Object"===r&&e.constructor&&(r=e.constructor.name);if("Map"===r||"Set"===r)return Array.from(e);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return n(e,t)}(e,t)||function(){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 n(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n0?{base:l.base-l.padding-l.border,outer:l.base,outerfull:l.base+l.margin}[a]:(((u=i(e)[r])<0||null===u)&&(u=e.style[r]||0),{base:(u=parseFloat(u)||0)-l.padding-l.border,outer:u,outerfull:u+l.padding+l.border+l.margin}[a])}return r=angular.element.prototype.css,e.prototype.css=function(e,t){var n=this[0];if(n&&3!==n.nodeType&&8!==n.nodeType&&n.style)return r.call(this,e,t)},o=function(e){return e&&e.document&&e.location&&e.alert&&e.setInterval},window.getComputedStyle?(i=function(e){return window.getComputedStyle(e,null)},n=function(e,t){return parseFloat(t)}):(i=function(e){return e.currentStyle},n=function(e,t){var n,r,i,o,a;return new RegExp("^("+/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source+")(?!px)[a-z%]+$","i").test(t)?(n=(a=e.style).left,o=(i=e.runtimeStyle)&&i.left,i&&(i.left=a.left),a.left=t,r=a.pixelLeft,a.left=n,o&&(i.left=o),r):parseFloat(t)}),angular.forEach({before:function(e){var t,n,r,i,o,a;if(n=this[0],(t=(o=this.parent()).contents())[0]===n)return o.prepend(e);for(r=i=1,a=t.length-1;1<=a?i<=a:i>=a;r=1<=a?++i:--i)if(t[r]===n)return void angular.element(t[r-1]).after(e);throw new Error("invalid DOM structure "+n.outerHTML)},height:function(e){return void 0!==e?(angular.isNumber(e)&&(e+="px"),r.call(this,"height",e)):u(this[0],"height","base")},outerHeight:function(e){return u(this[0],"height",e?"outerfull":"outer")},outerWidth:function(e){return u(this[0],"width",e?"outerfull":"outer")},offset:function(e){var t,n,r={top:0,left:0},i=this[0],o=i&&i.ownerDocument;if(arguments.length){if(void 0===e)return this;throw new Error("offset setter method is not implemented")}if(o)return t=o.documentElement,null!=i.getBoundingClientRect&&(r=i.getBoundingClientRect()),n=o.defaultView||o.parentWindow,{top:r.top+(n.pageYOffset||t.scrollTop)-(t.clientTop||0),left:r.left+(n.pageXOffset||t.scrollLeft)-(t.clientLeft||0)}},scrollTop:function(e){return a(this,"top",e)},scrollLeft:function(e){return a(this,"left",e)}},(function(t,n){if(!e.prototype[n])return e.prototype[n]=t}))}}],i&&r(n.prototype,i),o&&r(n,o),Object.defineProperty(n,"prototype",{writable:!1}),e}();function o(e){return o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},o(e)}function a(e,t){for(var n=0;nr.minIndexUser)return void r.minIndexUser++;r.minIndex===r.minIndexUser&&r.minIndexUser++}r.minIndex++},decrementMaxIndex:function(){null!==r.maxIndexUser&&r.maxIndex<=r.maxIndexUser&&r.maxIndexUser--,r.maxIndex--},getAbsMinIndex:function(){return null!==r.minIndexUser?Math.min(r.minIndexUser,r.minIndex):r.minIndex},getAbsMaxIndex:function(){return null!==r.maxIndexUser?Math.max(r.maxIndexUser,r.maxIndex):r.maxIndex},effectiveHeight:function(e){if(!e.length)return 0;var t=Number.MAX_VALUE,n=Number.NEGATIVE_INFINITY;return e.forEach((function(e){e.element[0].offsetParent&&(t=Math.min(t,e.element.offset().top),n=Math.max(n,e.element.offset().top+e.element.outerHeight(!0)))})),Math.max(0,n-t)},getItems:function(){return r.filter((function(e){return e.op===s.NONE}))},getFirstItem:function(){var e=r.getItems();return e.length?e[0].item:null},getLastItem:function(){var e=r.getItems();return e.length?e[e.length-1].item:null}}),r.reset(n),r}function c(e){return c="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},c(e)}function h(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function p(e,t){for(var n=0;n=0;t--)if(this[t].index===e.scope.$index)return void(this[t].height=e.element.outerHeight());this.push({index:e.scope.$index,height:e.element.outerHeight()}),this.sort((function(e,t){return e.indext.index?1:0}))}},{key:"remove",value:function(e,t){for(var n=e%1==0?e:e.scope.$index,r=e%1==0?t:e.shiftTop,i=this.length-1;i>=0;i--)if(this[i].index===n){this.splice(i,1);break}if(!r)for(var o=this.length-1;o>=0;o--)this[o].index>n&&this[o].index--}},{key:"clear",value:function(){this.length=0}}]),e}();function g(){var e=[];return e.push.apply(e,arguments),Object.setPrototypeOf(e,g.prototype),e}g.prototype=Object.create(Array.prototype),Object.getOwnPropertyNames(m.prototype).forEach((function(e){return g.prototype[e]=m.prototype[e]}));const b=function(){function e(t){h(this,e),this.element=function(e){if(e.nodeType!==Node.ELEMENT_NODE)throw new Error("ui-scroll directive requires an Element node for templating the view");var t;switch(e.tagName.toLowerCase()){case"dl":throw new Error("ui-scroll directive does not support <".concat(e.tagName,"> as a repeating tag: ").concat(e.outerHTML));case"tr":t=angular.element("
    ").find("tr");break;case"li":t=angular.element("
  • ");break;default:t=angular.element("
    ")}return t}(t),this.cache=new g}return d(e,[{key:"height",value:function(){return this.element.height.apply(this.element,arguments)}}]),e}();function v(e,t,n,r,i,o){var a=null,u=null,l=r&&r.viewport?r.viewport:angular.element(window),s=r&&r.container?r.container:void 0,f=r&&r.scope?r.scope:i;function c(){return l.outerHeight()*o}return l.css({"overflow-anchor":"none","overflow-y":"auto",display:"block"}),angular.extend(l,{getScope:function(){return f},createPaddingElements:function(e){a=new b(e),u=new b(e),n.before(a.element),n.after(u.element),a.height(0),u.height(0)},applyContainerStyle:function(){return!s||(s!==l&&l.css("height",window.getComputedStyle(s[0]).height),l.height()>0)},bottomDataPos:function(){var e=l[0].scrollHeight;return(e=null!=e?e:l[0].document.documentElement.scrollHeight)-u.height()},topDataPos:function(){return a.height()},bottomVisiblePos:function(){return l.scrollTop()+l.outerHeight()},topVisiblePos:function(){return l.scrollTop()},insertElement:function(t,n){return e.insertElement(t,n||a.element)},insertElementAnimated:function(t,n){return e.insertElementAnimated(t,n||a.element)},shouldLoadBottom:function(){return!t.eof&&l.bottomDataPos()=0&&!(n+(r=t[o].element.outerHeight(!0))>i);o--)u.cache.add(t[o]),n+=r,e++;e>0&&(t.eof=!1,t.remove(t.length-e,t.length),t.next-=e,l.adjustPaddings())},shouldLoadTop:function(){return!t.bof&&l.topDataPos()>l.topVisiblePos()-c()},clipTop:function(){for(var e=0,n=0,r=0,i=l.topVisiblePos()-l.topDataPos()-c(),o=0;oi);o++)a.cache.add(t[o]),n+=r,e++;e>0&&(a.height(a.height()+n),t.bof=!1,t.remove(0,e),t.first+=e)},adjustPaddings:function(){if(t.length){var e=t.reduce((function(e,t){return e+t.element.outerHeight(!0)}),0),n=0,r=0;a.cache.forEach((function(e){e.index=t.next&&(i+=e.height,o++)}));var l=(e+n+i)/(r+o+t.length),s=null!==t.minIndexUser&&t.minIndex>t.minIndexUser,f=null!==t.maxIndexUser&&t.maxIndext.minIndexUser){var n=a.height()-e;for(l.scrollTop(l.scrollTop()+n);(n-=l.scrollTop())>0;)u.height(u.height()+n),l.scrollTop(l.scrollTop()+n)}},onAfterPrepend:function(e){if(e.prepended.length){var n=t.effectiveHeight(e.prepended),r=a.height()-n;if(r>=0)a.height(r);else{var i=l.scrollTop(),o=i-r;l.synthetic={previous:i,next:o},a.height(0),l.scrollTop(o)}}},resetTopPadding:function(){a.height(0),a.cache.clear()},resetBottomPadding:function(){u.height(0),u.cache.clear()},removeCacheItem:function(e,t){a.cache.remove(e,t),u.cache.remove(e,t)},removeItem:function(e){return this.removeCacheItem(e),t.remove(e)}}),l}function y(e){return y="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},y(e)}function x(e,t){for(var n=0;n=0;n--)this.publicContext[t[n]]=this[t[n]].bind(this);for(var r=["isLoading","topVisible","topVisibleElement","topVisibleScope","bottomVisible","bottomVisibleElement","bottomVisibleScope"],i=function(t){var n,i=e.$attr[r[t]];Object.defineProperty(e,r[t],{get:function(){return n},set:function(o){n=o,e.publicContext[r[t]]=o,i&&e.$parse(i).assign(e.startScope,o)}})},o=r.length-1;o>=0;o--)i(o);for(var a=["bufferFirst","bufferLast","bufferLength"],u=function(t){Object.defineProperty(e.publicContext,a[t],{get:function(){return e[a[t]]}})},l=a.length-1;l>=0;l--)u(l);Object.defineProperty(this.publicContext,"disabled",{get:function(){return e.disabled},set:function(t){return(e.disabled=t)?null:e.doAdjust()}})}},{key:"loading",value:function(e){this.isLoading=e}},{key:"isBOF",value:function(){return this.buffer.bof}},{key:"isEOF",value:function(){return this.buffer.eof}},{key:"isEmpty",value:function(){return!this.buffer.length}},{key:"bufferLength",get:function(){return this.buffer.getItems().length}},{key:"bufferFirst",get:function(){return this.buffer.getFirstItem()}},{key:"bufferLast",get:function(){return this.buffer.getLastItem()}},{key:"append",value:function(e){this.buffer.append(e),this.doAdjust(),this.viewport.clipTop(),this.viewport.clipBottom()}},{key:"prepend",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};this.buffer.prepend(e,t.immutableTop),this.doAdjust(),this.viewport.clipTop(),this.viewport.clipBottom()}},{key:"applyUpdates",value:function(e,t,n){"function"==typeof e?this.applyUpdatesFunc(e,t):this.applyUpdatesIndex(e,t,n),this.doAdjust()}},{key:"applyUpdatesFunc",value:function(e){var t=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};this.buffer.slice(0).forEach((function(r){t.applyUpdate(r,e(r.item,r.scope,r.element),n)}))}},{key:"applyUpdatesIndex",value:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(e%1!=0)throw new Error("applyUpdates - "+e+" is not a valid index (should be an integer)");var r=e-this.buffer.first;r>=0&&r=this.buffer.getAbsMinIndex()&&e<=this.buffer.getAbsMaxIndex()&&angular.isArray(t)&&!t.length&&(this.viewport.removeCacheItem(e,!n.immutableTop&&e===this.buffer.minIndex),n.immutableTop||e!==this.buffer.getAbsMinIndex()?this.buffer.decrementMaxIndex():this.buffer.incrementMinIndex())}},{key:"applyUpdate",value:function(e,t){var n=this,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(angular.isArray(t)){var i=this.buffer.indexOf(e);t.reverse().some((function(t){return t===e.item}))||(e.op=s.REMOVE,r.immutableTop||t.length||(0===i&&this.buffer.bof||0!==i&&this.buffer[i-1].shiftTop)&&(e.shiftTop=!0)),t.forEach((function(t){t===e.item?i--:n.buffer.insert(i+1,t,!r.immutableTop&&-1===i)}))}}},{key:"calculateProperties",value:function(){for(var e=null,t=0,n=!1,r=!1,i=this.buffer.length,o=0;othis.viewport.topVisiblePos()&&(n=!0,this.topVisible=a.item,this.topVisibleElement=a.element,this.topVisibleScope=a.scope),!r&&(s>=this.viewport.bottomVisiblePos()||o===i-1&&this.isEOF())&&(r=!0,this.bottomVisible=a.item,this.bottomVisibleElement=a.element,this.bottomVisibleScope=a.scope),t+=l}if(e=u,n&&r)break}}}],n&&x(t.prototype,n),r&&x(t,r),Object.defineProperty(t,"prototype",{writable:!1}),e}();angular.module("ui.scroll",[]).constant("JQLiteExtras",i).run(["JQLiteExtras",function(e){var t=angular.element;!(window.jQuery&&t.fn&&t.fn.jquery)&&(new e).registerFor(t),l.addCSSRules()}]).directive("uiScrollViewport",(function(){return{restrict:"A",controller:["$scope","$element",function(e,t){var n=this;return this.container=t,this.viewport=t,this.scope=e,angular.forEach(t.children(),(function(e){"tbody"===e.tagName.toLowerCase()&&(n.viewport=angular.element(e))})),this}]}})).directive("uiScroll",["$log","$injector","$rootScope","$timeout","$interval","$q","$parse",function(e,t,n,r,i,o,a){return{require:["?^uiScrollViewport"],restrict:"A",transclude:"element",priority:1e3,terminal:!0,link:function(e,u,c,h,p){var d=c.uiScroll.match(/^\s*(\w+)\s+in\s+([(\w|\$)\.]+)\s*$/);if(!d)throw new Error("Expected uiScroll in form of '_item_ in _datasource_' but got '"+c.uiScroll+"'");function m(e,t,n){return n||(e=null===e?t:Math.floor(e)),isNaN(e)?t:e}function g(t,n,r){return m(a(t)(e),n,r)}var b=null,y=d[1],x=d[2],w=h[0],I=Math.max(3,g(c.bufferSize,10)),P=Math.max(.3,g(c.padding,.5,!0)),S=(U=c.handleInertia,L=!0,V=a(U)(e),"boolean"==typeof V?V:L),T=g(c.startIndex,1),$=0,A=[],j=new l(t,o),O=new f(j,I,T),k=new v(j,O,u,w,n,P),N=new E(e,a,c,k,O,J,(function(){W(),k.resetTopPadding(),k.resetBottomPadding(),arguments.length&&(T=m(arguments[0],1,!1));O.reset(T),H(b,"minIndex"),H(b,"maxIndex"),J()}));var U,L,V;w&&(w.adapter=N);var M=function(){return"[object Object]"===Object.prototype.toString.call(b)&&"function"==typeof b.get};if(!(b=a(x)(e),M()||(b=t.get(x),M())))throw new Error(x+" is not a valid datasource");var C=[];function H(e,t){var n;angular.isNumber(e[t])&&(n=e[t],angular.isNumber(n)&&(C=C.filter((function(e){return e.id!==t}))).push({id:t,run:function(){return e[t]=n}}))}function D(e,t,n){var r,i=Object.getOwnPropertyDescriptor(e,t);i&&(i.set||i.get)||(H(e,t),Object.defineProperty(e,t,{set:function(i){if(r=i,!A.length||O.length){O[n]=i;var o=k.topDataPos();k.adjustPaddings(),"minIndex"===t&&k.onAfterMinIndexSet(o)}else H(e,t)},get:function(){return r}}))}D(b,"minIndex","minIndexUser"),D(b,"maxIndex","maxIndexUser");var R=2!==b.get.length?function(e){return b.get(O.next,I,e)}:function(e){b.get({index:O.next,append:O.length?O[O.length-1].item:void 0,count:I},e)},F=2!==b.get.length?function(e){return b.get(O.first-I,I,e)}:function(e){b.get({index:O.first-I,prepend:O.length?O[0].item:void 0,count:I},e)};function B(t){return t&&t!==$||e.$$destroyed}function W(){k.off("resize",Z),k.off("scroll",Z)}function _(e){return e.element.height()&&e.element[0].offsetParent}function q(e,t){z(e,t,k.insertElement),_(e)||(e.unregisterVisibilityWatcher=e.scope.$watch((function(){return function(e){_(e)&&(O.forEach((function(e){"function"==typeof e.unregisterVisibilityWatcher&&(e.unregisterVisibilityWatcher(),delete e.unregisterVisibilityWatcher)})),A.length||r((function(){return J()})))}(e)}))),j.hideElement(e)}function z(e,t,n){var r=null,i=t>0?O[t-1].element:void 0;if(p((function(t,o){r=n(t,i),e.element=t,e.scope=o,o[y]=e.item})),N.transform){var o=e.scope.uiScrollTdInitializer;o&&o.linking?N.transform(e.scope,e.element):e.scope.uiScrollTdInitializer={onLink:function(){return N.transform(e.scope,e.element)},scope:e.scope}}return r}function Q(e,t){t.animated.length?o.all(t.animated).then((function(){k.adjustPaddings(),J(e)})):k.adjustPaddings()}function X(e,t){k.shouldLoadBottom()?(!t||O.effectiveHeight(t.inserted)>0)&&1===A.push(!0)&&(N.loading(!0),K(e)):k.shouldLoadTop()&&(!t||O.effectiveHeight(t.prepended)>0||A[0])&&1===A.push(!1)&&(N.loading(!0),K(e))}function Y(){var t,r,i,o,a=(t=[],r=[],i=[],o=[],O.forEach((function(e,n){switch(e.op){case s.PREPEND:r.unshift(e);break;case s.APPEND:q(e,n),e.op=s.NONE,o.push(e);break;case s.INSERT:t=t.concat(z(e,n,k.insertElementAnimated)),e.op=s.NONE,o.push(e);break;case s.REMOVE:i.push(e)}})),i.forEach((function(e){return t=t.concat(k.removeItem(e))})),r.length&&r.forEach((function(e){q(e),e.op=s.NONE})),O.forEach((function(e,t){return e.scope.$index=O.first+t})),{prepended:r,removed:i,inserted:o,animated:t});return!e.$$phase&&!n.$$phase&&e.$digest(),a.inserted.forEach((function(e){return j.showElement(e)})),a.prepended.forEach((function(e){return j.showElement(e)})),a}function J(e){e||(A=[],e=++$);var t=Y();B(e)||(Q(e,t),X(e),A.length||N.calculateProperties())}function G(e){var t=Y();k.onAfterPrepend(t),B(e)||(Q(e,t),C.forEach((function(e){return e.run()})),C=[],X(e,t),A.shift(),A.length?K(e):(N.loading(!1),k.on("resize",Z),k.on("scroll",Z),N.calculateProperties()))}function K(e){A[0]?O.length&&!k.shouldLoadBottom()?G(e):R((function(t){B(e)||(t.length0&&(k.clipTop(),O.append(t)),G(e))})):O.length&&!k.shouldLoadTop()?G(e):F((function(t){B(e)||(t.length0&&(O.length&&k.clipBottom(),O.prepend(t)),G(e))}))}function Z(){S&&function(){if(k.synthetic){var e=k.synthetic.previous,t=k.synthetic.next;if(k.scrollTop()!==t)return requestAnimationFrame((function(){var n=k.scrollTop(),r=e-n;r>0?k.scrollTop(t-r):k.scrollTop(t),k.synthetic=null})),!0;k.synthetic=null}}()||n.$$phase||N.isLoading||N.disabled||(X($),A.length?W():(N.calculateProperties(),!e.$$phase&&e.$digest()))}function ee(e){if(!N.disabled){var t=k[0].scrollTop,n=k[0].scrollHeight-k[0].clientHeight;(0===t&&!O.bof||t===n&&!O.eof)&&e.preventDefault()}}p((function(e,t){k.createPaddingElements(e[0]),t.$destroy(),e.remove()})),e.$on("$destroy",(function(){W(),k.off("mousewheel",ee)})),k.on("mousewheel",ee),function(){var e=0;if(k.applyContainerStyle())J();else var t=i((function(){if(e++,k.applyContainerStyle()&&(i.cancel(t),J()),50*e>=500)throw i.cancel(t),Error("ui-scroll directive requires a viewport with non-zero height in ".concat(500,"ms"))}),50)}()}}}])})(); //# sourceMappingURL=ui-scroll.min.js.map \ No newline at end of file diff --git a/dist/ui-scroll.min.js.map b/dist/ui-scroll.min.js.map index 7e13436..3ce29c5 100644 --- a/dist/ui-scroll.min.js.map +++ b/dist/ui-scroll.min.js.map @@ -1 +1 @@ -{"version":3,"file":"ui-scroll.min.js","mappings":"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","sources":["webpack://angular-ui-scroll/./src/modules/jqLiteExtras.js","webpack://angular-ui-scroll/./src/modules/elementRoutines.js","webpack://angular-ui-scroll/./src/modules/utils.js","webpack://angular-ui-scroll/./src/modules/buffer.js","webpack://angular-ui-scroll/./src/modules/padding.js","webpack://angular-ui-scroll/./src/modules/viewport.js","webpack://angular-ui-scroll/./src/modules/adapter.js","webpack://angular-ui-scroll/./src/ui-scroll.js"],"sourcesContent":["/*!\r\n globals: angular, window\r\n List of used element methods available in JQuery but not in JQuery Lite\r\n element.before(elem)\r\n element.height()\r\n element.outerHeight(true)\r\n element.height(value) = only for Top/Bottom padding elements\r\n element.scrollTop()\r\n element.scrollTop(value)\r\n */\r\n\r\nexport default class JQLiteExtras {\r\n\r\n registerFor(element) {\r\n let convertToPx, css, getStyle, isWindow;\r\n // angular implementation blows up if elem is the window\r\n css = angular.element.prototype.css;\r\n\r\n element.prototype.css = function (name, value) {\r\n let self = this;\r\n let elem = self[0];\r\n if (!(!elem || elem.nodeType === 3 || elem.nodeType === 8 || !elem.style)) {\r\n return css.call(self, name, value);\r\n }\r\n };\r\n\r\n // as defined in angularjs v1.0.5\r\n isWindow = (obj) => obj && obj.document && obj.location && obj.alert && obj.setInterval;\r\n\r\n function scrollTo(self, direction, value) {\r\n let elem = self[0];\r\n let [method, prop, preserve] = {\r\n top: [\r\n 'scrollTop',\r\n 'pageYOffset',\r\n 'scrollLeft'\r\n ],\r\n left: [\r\n 'scrollLeft',\r\n 'pageXOffset',\r\n 'scrollTop'\r\n ]\r\n }[direction];\r\n\r\n const isValueDefined = typeof value !== 'undefined';\r\n if (isWindow(elem)) {\r\n if (isValueDefined) {\r\n return elem.scrollTo(self[preserve].call(self), value);\r\n }\r\n return (prop in elem) ? elem[prop] : elem.document.documentElement[method];\r\n } else {\r\n if (isValueDefined) {\r\n elem[method] = value;\r\n }\r\n return elem[method];\r\n }\r\n }\r\n\r\n if (window.getComputedStyle) {\r\n getStyle = (elem) => window.getComputedStyle(elem, null);\r\n convertToPx = (elem, value) => parseFloat(value);\r\n } else {\r\n getStyle = (elem) => elem.currentStyle;\r\n convertToPx = (elem, value) => {\r\n let left, result, rs, rsLeft, style;\r\n let core_pnum = /[+-]?(?:\\d*\\.|)\\d+(?:[eE][+-]?\\d+|)/.source;\r\n let rnumnonpx = new RegExp('^(' + core_pnum + ')(?!px)[a-z%]+$', 'i');\r\n\r\n if (!rnumnonpx.test(value)) {\r\n return parseFloat(value);\r\n }\r\n\r\n // ported from JQuery\r\n style = elem.style;\r\n left = style.left;\r\n rs = elem.runtimeStyle;\r\n rsLeft = rs && rs.left;\r\n if (rs) {\r\n rs.left = style.left;\r\n }\r\n // put in the new values to get a computed style out\r\n style.left = value;\r\n result = style.pixelLeft;\r\n style.left = left;\r\n if (rsLeft) {\r\n rs.left = rsLeft;\r\n }\r\n return result;\r\n };\r\n }\r\n\r\n function getMeasurements(elem, measure) {\r\n let base, borderA, borderB, computedMarginA, computedMarginB, computedStyle, dirA, dirB, marginA, marginB, paddingA, paddingB;\r\n\r\n if (isWindow(elem)) {\r\n base = document.documentElement[{height: 'clientHeight', width: 'clientWidth'}[measure]];\r\n\r\n return {\r\n base: base,\r\n padding: 0,\r\n border: 0,\r\n margin: 0\r\n };\r\n }\r\n\r\n // Start with offset property\r\n [\r\n base,\r\n dirA,\r\n dirB\r\n ] = {\r\n width: [\r\n elem.offsetWidth,\r\n 'Left',\r\n 'Right'\r\n ],\r\n height: [\r\n elem.offsetHeight,\r\n 'Top',\r\n 'Bottom'\r\n ]\r\n }[measure];\r\n\r\n computedStyle = getStyle(elem);\r\n paddingA = convertToPx(elem, computedStyle['padding' + dirA]) || 0;\r\n paddingB = convertToPx(elem, computedStyle['padding' + dirB]) || 0;\r\n borderA = convertToPx(elem, computedStyle['border' + dirA + 'Width']) || 0;\r\n borderB = convertToPx(elem, computedStyle['border' + dirB + 'Width']) || 0;\r\n computedMarginA = computedStyle['margin' + dirA];\r\n computedMarginB = computedStyle['margin' + dirB];\r\n\r\n // I do not care for width for now, so this hack is irrelevant\r\n // if ( !supportsPercentMargin )\r\n // computedMarginA = hackPercentMargin( elem, computedStyle, computedMarginA )\r\n // computedMarginB = hackPercentMargin( elem, computedStyle, computedMarginB )\r\n marginA = convertToPx(elem, computedMarginA) || 0;\r\n marginB = convertToPx(elem, computedMarginB) || 0;\r\n\r\n return {\r\n base: base,\r\n padding: paddingA + paddingB,\r\n border: borderA + borderB,\r\n margin: marginA + marginB\r\n };\r\n }\r\n\r\n function getWidthHeight(elem, direction, measure) {\r\n let computedStyle, result;\r\n\r\n let measurements = getMeasurements(elem, direction);\r\n\r\n if (measurements.base > 0) {\r\n return {\r\n base: measurements.base - measurements.padding - measurements.border,\r\n outer: measurements.base,\r\n outerfull: measurements.base + measurements.margin\r\n }[measure];\r\n }\r\n\r\n // Fall back to computed then uncomputed css if necessary\r\n computedStyle = getStyle(elem);\r\n result = computedStyle[direction];\r\n\r\n if (result < 0 || result === null) {\r\n result = elem.style[direction] || 0;\r\n }\r\n\r\n // Normalize \"\", auto, and prepare for extra\r\n result = parseFloat(result) || 0;\r\n\r\n return {\r\n base: result - measurements.padding - measurements.border,\r\n outer: result,\r\n outerfull: result + measurements.padding + measurements.border + measurements.margin\r\n }[measure];\r\n }\r\n\r\n // define missing methods\r\n return angular.forEach({\r\n before(newElem) {\r\n var children, elem, i, j, parent, ref, self;\r\n self = this;\r\n elem = self[0];\r\n parent = self.parent();\r\n children = parent.contents();\r\n if (children[0] === elem) {\r\n return parent.prepend(newElem);\r\n } else {\r\n for (i = j = 1, ref = children.length - 1; 1 <= ref ? j <= ref : j >= ref; i = 1 <= ref ? ++j : --j) {\r\n if (children[i] === elem) {\r\n angular.element(children[i - 1]).after(newElem);\r\n return;\r\n }\r\n }\r\n throw new Error('invalid DOM structure ' + elem.outerHTML);\r\n }\r\n },\r\n height (value){\r\n var self;\r\n self = this;\r\n if (typeof value !== 'undefined') {\r\n if (angular.isNumber(value)) {\r\n value = value + 'px';\r\n }\r\n return css.call(self, 'height', value);\r\n } else {\r\n return getWidthHeight(this[0], 'height', 'base');\r\n }\r\n },\r\n outerHeight(option) {\r\n return getWidthHeight(this[0], 'height', option ? 'outerfull' : 'outer');\r\n },\r\n outerWidth(option) {\r\n return getWidthHeight(this[0], 'width', option ? 'outerfull' : 'outer');\r\n },\r\n\r\n /*\r\n The offset setter method is not implemented\r\n */\r\n offset(value) {\r\n let docElem, win;\r\n let self = this;\r\n let box = {\r\n top: 0,\r\n left: 0\r\n };\r\n let elem = self[0];\r\n let doc = elem && elem.ownerDocument;\r\n\r\n if (arguments.length) {\r\n if (value === undefined) {\r\n return self;\r\n }\r\n // TODO: implement setter\r\n throw new Error('offset setter method is not implemented');\r\n }\r\n\r\n if (!doc) {\r\n return;\r\n }\r\n\r\n docElem = doc.documentElement;\r\n\r\n // TODO: Make sure it's not a disconnected DOM node\r\n\r\n if (elem.getBoundingClientRect != null) {\r\n box = elem.getBoundingClientRect();\r\n }\r\n\r\n win = doc.defaultView || doc.parentWindow;\r\n\r\n return {\r\n top: box.top + (win.pageYOffset || docElem.scrollTop) - (docElem.clientTop || 0),\r\n left: box.left + (win.pageXOffset || docElem.scrollLeft) - (docElem.clientLeft || 0)\r\n };\r\n },\r\n scrollTop(value) {\r\n return scrollTo(this, 'top', value);\r\n },\r\n scrollLeft(value) {\r\n return scrollTo(this, 'left', value);\r\n }\r\n }, (value, key) => {\r\n if (!element.prototype[key]) {\r\n return element.prototype[key] = value;\r\n }\r\n });\r\n }\r\n\r\n}\r\n","const hideClassToken = 'ng-ui-scroll-hide';\r\n\r\nexport default class ElementRoutines {\r\n\r\n static addCSSRules() {\r\n const selector = '.' + hideClassToken;\r\n const rules = 'display: none';\r\n const sheet = document.styleSheets[0];\r\n let index;\r\n try {\r\n index = sheet.cssRules.length;\r\n } catch (err) {\r\n index = 0;\r\n }\r\n if('insertRule' in sheet) {\r\n sheet.insertRule(selector + '{' + rules + '}', index);\r\n }\r\n else if('addRule' in sheet) {\r\n sheet.addRule(selector, rules, index);\r\n }\r\n }\r\n\r\n constructor($injector, $q) {\r\n this.$animate = ($injector.has && $injector.has('$animate')) ? $injector.get('$animate') : null;\r\n this.isAngularVersionLessThen1_3 = angular.version.major === 1 && angular.version.minor < 3;\r\n this.$q = $q;\r\n }\r\n\r\n hideElement(wrapper) {\r\n wrapper.element.addClass(hideClassToken);\r\n }\r\n\r\n showElement(wrapper) {\r\n wrapper.element.removeClass(hideClassToken);\r\n }\r\n\r\n insertElement(newElement, previousElement) {\r\n previousElement.after(newElement);\r\n return [];\r\n }\r\n\r\n removeElement(wrapper) {\r\n wrapper.element.remove();\r\n wrapper.scope.$destroy();\r\n return [];\r\n }\r\n\r\n insertElementAnimated(newElement, previousElement) {\r\n if (!this.$animate) {\r\n return this.insertElement(newElement, previousElement);\r\n }\r\n\r\n if (this.isAngularVersionLessThen1_3) {\r\n const deferred = this.$q.defer();\r\n // no need for parent - previous element is never null\r\n this.$animate.enter(newElement, null, previousElement, () => deferred.resolve());\r\n\r\n return [deferred.promise];\r\n }\r\n\r\n // no need for parent - previous element is never null\r\n return [this.$animate.enter(newElement, null, previousElement)];\r\n }\r\n\r\n removeElementAnimated(wrapper) {\r\n if (!this.$animate) {\r\n return this.removeElement(wrapper);\r\n }\r\n\r\n if (this.isAngularVersionLessThen1_3) {\r\n const deferred = this.$q.defer();\r\n this.$animate.leave(wrapper.element, () => {\r\n wrapper.scope.$destroy();\r\n return deferred.resolve();\r\n });\r\n\r\n return [deferred.promise];\r\n }\r\n\r\n return [(this.$animate.leave(wrapper.element)).then(() => wrapper.scope.$destroy())];\r\n }\r\n}","export const OPERATIONS = {\r\n PREPEND: 'prepend',\r\n APPEND: 'append',\r\n INSERT: 'insert',\r\n REMOVE: 'remove',\r\n NONE: 'none'\r\n};\r\n","import { OPERATIONS } from './utils';\r\n\r\nexport default function ScrollBuffer(elementRoutines, bufferSize, startIndex) {\r\n const buffer = Object.create(Array.prototype);\r\n\r\n angular.extend(buffer, {\r\n size: bufferSize,\r\n\r\n reset(startIndex) {\r\n buffer.remove(0, buffer.length);\r\n buffer.eof = false;\r\n buffer.bof = false;\r\n buffer.first = startIndex;\r\n buffer.next = startIndex;\r\n buffer.minIndex = startIndex;\r\n buffer.maxIndex = startIndex;\r\n buffer.minIndexUser = null;\r\n buffer.maxIndexUser = null;\r\n },\r\n\r\n append(items) {\r\n items.forEach((item) => {\r\n ++buffer.next;\r\n buffer.insert(OPERATIONS.APPEND, item);\r\n });\r\n buffer.maxIndex = buffer.eof ? buffer.next - 1 : Math.max(buffer.next - 1, buffer.maxIndex);\r\n },\r\n\r\n prepend(items, immutableTop) {\r\n items.reverse().forEach((item) => {\r\n if (immutableTop) {\r\n ++buffer.next;\r\n }\r\n else {\r\n --buffer.first;\r\n }\r\n buffer.insert(OPERATIONS.PREPEND, item);\r\n });\r\n buffer.minIndex = buffer.bof ? buffer.minIndex = buffer.first : Math.min(buffer.first, buffer.minIndex);\r\n },\r\n\r\n /**\r\n * inserts wrapped element in the buffer\r\n * the first argument is either operation keyword (see below) or a number for operation 'insert'\r\n * for insert the number is the index for the buffer element the new one have to be inserted after\r\n * operations: 'append', 'prepend', 'insert', 'remove', 'none'\r\n */\r\n insert(operation, item, shiftTop) {\r\n const wrapper = {\r\n item: item\r\n };\r\n\r\n if (operation % 1 === 0) { // it is an insert\r\n wrapper.op = OPERATIONS.INSERT;\r\n buffer.splice(operation, 0, wrapper);\r\n if (shiftTop) {\r\n buffer.first--;\r\n }\r\n else {\r\n buffer.next++;\r\n }\r\n } else {\r\n wrapper.op = operation;\r\n switch (operation) {\r\n case OPERATIONS.APPEND:\r\n buffer.push(wrapper);\r\n break;\r\n case OPERATIONS.PREPEND:\r\n buffer.unshift(wrapper);\r\n break;\r\n }\r\n }\r\n },\r\n\r\n // removes elements from buffer\r\n remove(arg1, arg2) {\r\n if (angular.isNumber(arg1)) {\r\n // removes items from arg1 (including) through arg2 (excluding)\r\n for (let i = arg1; i < arg2; i++) {\r\n elementRoutines.removeElement(buffer[i]);\r\n }\r\n return buffer.splice(arg1, arg2 - arg1);\r\n }\r\n // removes single item (wrapper) from the buffer\r\n buffer.splice(buffer.indexOf(arg1), 1);\r\n if (arg1.shiftTop && buffer.first === this.getAbsMinIndex()) {\r\n this.incrementMinIndex();\r\n }\r\n else {\r\n this.decrementMaxIndex();\r\n }\r\n if (arg1.shiftTop) {\r\n buffer.first++;\r\n }\r\n else {\r\n buffer.next--;\r\n }\r\n if (!buffer.length) {\r\n buffer.minIndex = Math.min(buffer.maxIndex, buffer.minIndex);\r\n }\r\n\r\n return elementRoutines.removeElementAnimated(arg1);\r\n },\r\n\r\n incrementMinIndex() {\r\n if (buffer.minIndexUser !== null) {\r\n if (buffer.minIndex > buffer.minIndexUser) {\r\n buffer.minIndexUser++;\r\n return;\r\n }\r\n if (buffer.minIndex === buffer.minIndexUser) {\r\n buffer.minIndexUser++;\r\n }\r\n }\r\n buffer.minIndex++;\r\n },\r\n\r\n decrementMaxIndex() {\r\n if (buffer.maxIndexUser !== null && buffer.maxIndex <= buffer.maxIndexUser) {\r\n buffer.maxIndexUser--;\r\n }\r\n buffer.maxIndex--;\r\n },\r\n\r\n getAbsMinIndex() {\r\n if (buffer.minIndexUser !== null) {\r\n return Math.min(buffer.minIndexUser, buffer.minIndex);\r\n }\r\n return buffer.minIndex;\r\n },\r\n\r\n getAbsMaxIndex() {\r\n if (buffer.maxIndexUser !== null) {\r\n return Math.max(buffer.maxIndexUser, buffer.maxIndex);\r\n }\r\n return buffer.maxIndex;\r\n },\r\n\r\n effectiveHeight(elements) {\r\n if (!elements.length) {\r\n return 0;\r\n }\r\n let top = Number.MAX_VALUE;\r\n let bottom = Number.NEGATIVE_INFINITY;\r\n elements.forEach((wrapper) => {\r\n if (wrapper.element[0].offsetParent) {\r\n // element style is not display:none\r\n top = Math.min(top, wrapper.element.offset().top);\r\n bottom = Math.max(bottom, wrapper.element.offset().top + wrapper.element.outerHeight(true));\r\n }\r\n });\r\n return Math.max(0, bottom - top);\r\n },\r\n\r\n getItems() {\r\n return buffer.filter(item => item.op === OPERATIONS.NONE);\r\n },\r\n\r\n getFirstItem() {\r\n const list = buffer.getItems();\r\n if (!list.length) {\r\n return null;\r\n }\r\n return list[0].item;\r\n },\r\n\r\n getLastItem() {\r\n const list = buffer.getItems();\r\n if (!list.length) {\r\n return null;\r\n }\r\n return list[list.length - 1].item;\r\n }\r\n\r\n });\r\n\r\n buffer.reset(startIndex);\r\n\r\n return buffer;\r\n}\r\n","// Can't just extend the Array, due to Babel does not support built-in classes extending\r\n// This solution was taken from https://stackoverflow.com/questions/46897414/es6-class-extends-array-workaround-for-es5-babel-transpile\r\nclass CacheProto {\r\n add(item) {\r\n for (let i = this.length - 1; i >= 0; i--) {\r\n if (this[i].index === item.scope.$index) {\r\n this[i].height = item.element.outerHeight();\r\n return;\r\n }\r\n }\r\n this.push({\r\n index: item.scope.$index,\r\n height: item.element.outerHeight()\r\n });\r\n this.sort((a, b) => ((a.index < b.index) ? -1 : ((a.index > b.index) ? 1 : 0)));\r\n }\r\n\r\n remove(argument, _shiftTop) {\r\n const index = argument % 1 === 0 ? argument : argument.scope.$index;\r\n const shiftTop = argument % 1 === 0 ? _shiftTop : argument.shiftTop;\r\n for (let i = this.length - 1; i >= 0; i--) {\r\n if (this[i].index === index) {\r\n this.splice(i, 1);\r\n break;\r\n }\r\n }\r\n if (!shiftTop) {\r\n for (let i = this.length - 1; i >= 0; i--) {\r\n if (this[i].index > index) {\r\n this[i].index--;\r\n }\r\n }\r\n }\r\n }\r\n\r\n clear() {\r\n this.length = 0;\r\n }\r\n}\r\n\r\nfunction Cache() {\r\n const instance = [];\r\n instance.push.apply(instance, arguments);\r\n Object.setPrototypeOf(instance, Cache.prototype);\r\n return instance;\r\n}\r\nCache.prototype = Object.create(Array.prototype);\r\nObject.getOwnPropertyNames(CacheProto.prototype).forEach(methodName =>\r\n Cache.prototype[methodName] = CacheProto.prototype[methodName]\r\n);\r\n\r\nfunction generateElement(template) {\r\n if (template.nodeType !== Node.ELEMENT_NODE) {\r\n throw new Error('ui-scroll directive requires an Element node for templating the view');\r\n }\r\n let element;\r\n switch (template.tagName.toLowerCase()) {\r\n case 'dl':\r\n throw new Error(`ui-scroll directive does not support <${template.tagName}> as a repeating tag: ${template.outerHTML}`);\r\n case 'tr':\r\n let table = angular.element('
    ');\r\n element = table.find('tr');\r\n break;\r\n case 'li':\r\n element = angular.element('
  • ');\r\n break;\r\n default:\r\n element = angular.element('
    ');\r\n }\r\n return element;\r\n}\r\n\r\nclass Padding {\r\n constructor(template) {\r\n this.element = generateElement(template);\r\n this.cache = new Cache();\r\n }\r\n\r\n height() {\r\n return this.element.height.apply(this.element, arguments);\r\n }\r\n}\r\n\r\nexport default Padding;","import Padding from './padding';\r\n\r\nexport default function Viewport(elementRoutines, buffer, element, viewportController, $rootScope, padding) {\r\n let topPadding = null;\r\n let bottomPadding = null;\r\n const viewport = viewportController && viewportController.viewport ? viewportController.viewport : angular.element(window);\r\n const container = viewportController && viewportController.container ? viewportController.container : undefined;\r\n const scope = viewportController && viewportController.scope ? viewportController.scope : $rootScope;\r\n\r\n viewport.css({\r\n 'overflow-anchor': 'none',\r\n 'overflow-y': 'auto',\r\n 'display': 'block'\r\n });\r\n\r\n function bufferPadding() {\r\n return viewport.outerHeight() * padding; // some extra space to initiate preload\r\n }\r\n\r\n angular.extend(viewport, {\r\n getScope() {\r\n return scope;\r\n },\r\n\r\n createPaddingElements(template) {\r\n topPadding = new Padding(template);\r\n bottomPadding = new Padding(template);\r\n element.before(topPadding.element);\r\n element.after(bottomPadding.element);\r\n topPadding.height(0);\r\n bottomPadding.height(0);\r\n },\r\n\r\n applyContainerStyle() {\r\n if (!container) {\r\n return true;\r\n }\r\n if (container !== viewport) {\r\n viewport.css('height', window.getComputedStyle(container[0]).height);\r\n }\r\n return viewport.height() > 0;\r\n },\r\n\r\n bottomDataPos() {\r\n let scrollHeight = viewport[0].scrollHeight;\r\n scrollHeight = scrollHeight != null ? scrollHeight : viewport[0].document.documentElement.scrollHeight;\r\n return scrollHeight - bottomPadding.height();\r\n },\r\n\r\n topDataPos() {\r\n return topPadding.height();\r\n },\r\n\r\n bottomVisiblePos() {\r\n return viewport.scrollTop() + viewport.outerHeight();\r\n },\r\n\r\n topVisiblePos() {\r\n return viewport.scrollTop();\r\n },\r\n\r\n insertElement(e, sibling) {\r\n return elementRoutines.insertElement(e, sibling || topPadding.element);\r\n },\r\n\r\n insertElementAnimated(e, sibling) {\r\n return elementRoutines.insertElementAnimated(e, sibling || topPadding.element);\r\n },\r\n\r\n shouldLoadBottom() {\r\n return !buffer.eof && viewport.bottomDataPos() < viewport.bottomVisiblePos() + bufferPadding();\r\n },\r\n\r\n clipBottom() {\r\n // clip the invisible items off the bottom\r\n let overage = 0;\r\n let overageHeight = 0;\r\n let itemHeight = 0;\r\n let emptySpaceHeight = viewport.bottomDataPos() - viewport.bottomVisiblePos() - bufferPadding();\r\n\r\n for (let i = buffer.length - 1; i >= 0; i--) {\r\n itemHeight = buffer[i].element.outerHeight(true);\r\n if (overageHeight + itemHeight > emptySpaceHeight) {\r\n break;\r\n }\r\n bottomPadding.cache.add(buffer[i]);\r\n overageHeight += itemHeight;\r\n overage++;\r\n }\r\n\r\n if (overage > 0) {\r\n buffer.eof = false;\r\n buffer.remove(buffer.length - overage, buffer.length);\r\n buffer.next -= overage;\r\n viewport.adjustPaddings();\r\n }\r\n },\r\n\r\n shouldLoadTop() {\r\n return !buffer.bof && (viewport.topDataPos() > viewport.topVisiblePos() - bufferPadding());\r\n },\r\n\r\n clipTop() {\r\n // clip the invisible items off the top\r\n let overage = 0;\r\n let overageHeight = 0;\r\n let itemHeight = 0;\r\n let emptySpaceHeight = viewport.topVisiblePos() - viewport.topDataPos() - bufferPadding();\r\n\r\n for (let i = 0; i < buffer.length; i++) {\r\n itemHeight = buffer[i].element.outerHeight(true);\r\n if (overageHeight + itemHeight > emptySpaceHeight) {\r\n break;\r\n }\r\n topPadding.cache.add(buffer[i]);\r\n overageHeight += itemHeight;\r\n overage++;\r\n }\r\n\r\n if (overage > 0) {\r\n // we need to adjust top padding element before items are removed from top\r\n // to avoid strange behaviour of scroll bar during remove top items when we are at the very bottom\r\n topPadding.height(topPadding.height() + overageHeight);\r\n buffer.bof = false;\r\n buffer.remove(0, overage);\r\n buffer.first += overage;\r\n }\r\n },\r\n\r\n adjustPaddings() {\r\n if (!buffer.length) {\r\n return;\r\n }\r\n\r\n // precise heights calculation based on items that are in buffer or that were in buffer once\r\n const visibleItemsHeight = buffer.reduce((summ, item) => summ + item.element.outerHeight(true), 0);\r\n\r\n let topPaddingHeight = 0, topCount = 0;\r\n topPadding.cache.forEach(item => {\r\n if (item.index < buffer.first) {\r\n topPaddingHeight += item.height;\r\n topCount++;\r\n }\r\n });\r\n\r\n let bottomPaddingHeight = 0, bottomCount = 0;\r\n bottomPadding.cache.forEach(item => {\r\n if (item.index >= buffer.next) {\r\n bottomPaddingHeight += item.height;\r\n bottomCount++;\r\n }\r\n });\r\n\r\n const totalHeight = visibleItemsHeight + topPaddingHeight + bottomPaddingHeight;\r\n const averageItemHeight = totalHeight / (topCount + bottomCount + buffer.length);\r\n\r\n // average heights calculation, items that have never been reached\r\n let adjustTopPadding = buffer.minIndexUser !== null && buffer.minIndex > buffer.minIndexUser;\r\n let adjustBottomPadding = buffer.maxIndexUser !== null && buffer.maxIndex < buffer.maxIndexUser;\r\n let topPaddingHeightAdd = adjustTopPadding ? (buffer.minIndex - buffer.minIndexUser) * averageItemHeight : 0;\r\n let bottomPaddingHeightAdd = adjustBottomPadding ? (buffer.maxIndexUser - buffer.maxIndex) * averageItemHeight : 0;\r\n\r\n // paddings combine adjustment\r\n topPadding.height(topPaddingHeight + topPaddingHeightAdd);\r\n bottomPadding.height(bottomPaddingHeight + bottomPaddingHeightAdd);\r\n },\r\n\r\n onAfterMinIndexSet(topPaddingHeightOld) {\r\n // additional scrollTop adjustment in case of datasource.minIndex external set\r\n if (buffer.minIndexUser !== null && buffer.minIndex > buffer.minIndexUser) {\r\n let diff = topPadding.height() - topPaddingHeightOld;\r\n viewport.scrollTop(viewport.scrollTop() + diff);\r\n while((diff -= viewport.scrollTop()) > 0) {\r\n bottomPadding.height(bottomPadding.height() + diff);\r\n viewport.scrollTop(viewport.scrollTop() + diff);\r\n }\r\n }\r\n },\r\n\r\n onAfterPrepend(updates) {\r\n if (!updates.prepended.length) {\r\n return;\r\n }\r\n const height = buffer.effectiveHeight(updates.prepended);\r\n const paddingHeight = topPadding.height() - height;\r\n if (paddingHeight >= 0) {\r\n topPadding.height(paddingHeight);\r\n return;\r\n }\r\n const position = viewport.scrollTop();\r\n const newPosition = position - paddingHeight;\r\n viewport.synthetic = { previous: position, next: newPosition };\r\n topPadding.height(0);\r\n viewport.scrollTop(newPosition);\r\n },\r\n\r\n resetTopPadding() {\r\n topPadding.height(0);\r\n topPadding.cache.clear();\r\n },\r\n\r\n resetBottomPadding() {\r\n bottomPadding.height(0);\r\n bottomPadding.cache.clear();\r\n },\r\n\r\n removeCacheItem(item, shiftTop) {\r\n topPadding.cache.remove(item, shiftTop);\r\n bottomPadding.cache.remove(item, shiftTop);\r\n },\r\n\r\n removeItem(item) {\r\n this.removeCacheItem(item);\r\n return buffer.remove(item);\r\n }\r\n });\r\n\r\n return viewport;\r\n}\r\n","import { OPERATIONS } from './utils';\r\n\r\nclass Adapter {\r\n\r\n constructor($scope, $parse, $attr, viewport, buffer, doAdjust, reload) {\r\n this.$parse = $parse;\r\n this.$attr = $attr;\r\n this.viewport = viewport;\r\n this.buffer = buffer;\r\n\r\n this.doAdjust = doAdjust;\r\n this.reload = reload;\r\n\r\n this.isLoading = false;\r\n this.disabled = false;\r\n\r\n const viewportScope = viewport.getScope();\r\n this.startScope = viewportScope.$parent ? viewportScope : $scope;\r\n\r\n this.publicContext = {};\r\n this.assignAdapter($attr.adapter);\r\n this.generatePublicContext();\r\n }\r\n\r\n assignAdapter(adapterAttr) {\r\n if (!adapterAttr || !(adapterAttr = adapterAttr.replace(/^\\s+|\\s+$/gm, ''))) {\r\n return;\r\n }\r\n let adapterOnScope;\r\n\r\n try {\r\n this.$parse(adapterAttr).assign(this.startScope, {});\r\n adapterOnScope = this.$parse(adapterAttr)(this.startScope);\r\n }\r\n catch (error) {\r\n error.message = `Angular ui-scroll Adapter assignment exception.\\n` +\r\n `Can't parse \"${adapterAttr}\" expression.\\n` +\r\n error.message;\r\n throw error;\r\n }\r\n\r\n angular.extend(adapterOnScope, this.publicContext);\r\n this.publicContext = adapterOnScope;\r\n }\r\n\r\n generatePublicContext() {\r\n // these methods will be accessible out of ui-scroll via user defined adapter\r\n const publicMethods = ['reload', 'applyUpdates', 'append', 'prepend', 'isBOF', 'isEOF', 'isEmpty'];\r\n for (let i = publicMethods.length - 1; i >= 0; i--) {\r\n this.publicContext[publicMethods[i]] = this[publicMethods[i]].bind(this);\r\n }\r\n\r\n // these read-only props will be accessible out of ui-scroll via user defined adapter\r\n const publicProps = ['isLoading', 'topVisible', 'topVisibleElement', 'topVisibleScope', 'bottomVisible', 'bottomVisibleElement', 'bottomVisibleScope'];\r\n for (let i = publicProps.length - 1; i >= 0; i--) {\r\n let property, attr = this.$attr[publicProps[i]];\r\n Object.defineProperty(this, publicProps[i], {\r\n get: () => property,\r\n set: (value) => {\r\n property = value;\r\n this.publicContext[publicProps[i]] = value;\r\n if (attr) {\r\n this.$parse(attr).assign(this.startScope, value);\r\n }\r\n }\r\n });\r\n }\r\n\r\n // read-only immediately calculated public properties\r\n const publicPropsImmediate = ['bufferFirst', 'bufferLast', 'bufferLength'];\r\n for (let i = publicPropsImmediate.length - 1; i >= 0; i--) {\r\n Object.defineProperty(this.publicContext, publicPropsImmediate[i], {\r\n get: () => this[publicPropsImmediate[i]]\r\n });\r\n }\r\n\r\n // non-read-only public property\r\n Object.defineProperty(this.publicContext, 'disabled', {\r\n get: () => this.disabled,\r\n set: (value) => (!(this.disabled = value)) ? this.doAdjust() : null\r\n });\r\n }\r\n\r\n loading(value) {\r\n this.isLoading = value;\r\n }\r\n\r\n isBOF() {\r\n return this.buffer.bof;\r\n }\r\n\r\n isEOF() {\r\n return this.buffer.eof;\r\n }\r\n\r\n isEmpty() {\r\n return !this.buffer.length;\r\n }\r\n\r\n get bufferLength() {\r\n return this.buffer.getItems().length;\r\n }\r\n\r\n get bufferFirst() {\r\n return this.buffer.getFirstItem();\r\n }\r\n\r\n get bufferLast() {\r\n return this.buffer.getLastItem();\r\n }\r\n\r\n append(newItems) {\r\n this.buffer.append(newItems);\r\n this.doAdjust();\r\n this.viewport.clipTop();\r\n this.viewport.clipBottom();\r\n }\r\n\r\n prepend(newItems, options = {}) {\r\n this.buffer.prepend(newItems, options.immutableTop);\r\n this.doAdjust();\r\n this.viewport.clipTop();\r\n this.viewport.clipBottom();\r\n }\r\n\r\n applyUpdates(arg1, arg2, arg3) {\r\n if (typeof arg1 === 'function') {\r\n this.applyUpdatesFunc(arg1, arg2);\r\n } else {\r\n this.applyUpdatesIndex(arg1, arg2, arg3);\r\n }\r\n this.doAdjust();\r\n }\r\n\r\n applyUpdatesFunc(cb, options = {}) {\r\n this.buffer.slice(0).forEach((wrapper) => {\r\n // we need to do it on the buffer clone, because buffer content\r\n // may change as we iterate through\r\n this.applyUpdate(wrapper, cb(wrapper.item, wrapper.scope, wrapper.element), options);\r\n });\r\n }\r\n\r\n applyUpdatesIndex(index, newItems, options = {}) {\r\n if (index % 1 !== 0) {\r\n throw new Error('applyUpdates - ' + index + ' is not a valid index (should be an integer)');\r\n }\r\n const _index = index - this.buffer.first;\r\n\r\n // apply updates only within buffer\r\n if (_index >= 0 && _index < this.buffer.length) {\r\n this.applyUpdate(this.buffer[_index], newItems, options);\r\n }\r\n // out-of-buffer case: deletion may affect Paddings\r\n else if(index >= this.buffer.getAbsMinIndex() && index <= this.buffer.getAbsMaxIndex()) {\r\n if(angular.isArray(newItems) && !newItems.length) {\r\n this.viewport.removeCacheItem(index, !options.immutableTop && index === this.buffer.minIndex);\r\n if (!options.immutableTop && index === this.buffer.getAbsMinIndex()) {\r\n this.buffer.incrementMinIndex();\r\n }\r\n else {\r\n this.buffer.decrementMaxIndex();\r\n }\r\n }\r\n }\r\n }\r\n\r\n applyUpdate(wrapper, newItems, options = {}) {\r\n if (!angular.isArray(newItems)) {\r\n return;\r\n }\r\n let position = this.buffer.indexOf(wrapper);\r\n if (!newItems.reverse().some(newItem => newItem === wrapper.item)) {\r\n wrapper.op = OPERATIONS.REMOVE;\r\n // try to catch \"first\" edge case on remove\r\n if (!options.immutableTop && !newItems.length) {\r\n // this is the first item, or the previous one's part of the \"shift-top\" group\r\n if (\r\n (position === 0 && this.buffer.bof) ||\r\n (position !== 0 && this.buffer[position - 1].shiftTop)\r\n ) {\r\n wrapper.shiftTop = true;\r\n }\r\n }\r\n }\r\n newItems.forEach((newItem) => {\r\n if (newItem === wrapper.item) {\r\n position--;\r\n } else {\r\n // 3 parameter (shiftTop) is to catch \"first\" edge case on insert\r\n this.buffer.insert(position + 1, newItem, !options.immutableTop && position === -1);\r\n }\r\n });\r\n }\r\n\r\n calculateProperties() {\r\n let rowTop = null, topHeight = 0;\r\n let topDone = false, bottomDone = false;\r\n const length = this.buffer.length;\r\n\r\n for (let i = 0; i < length; i++) {\r\n const item = this.buffer[i];\r\n const itemTop = item.element.offset().top;\r\n\r\n if (rowTop !== itemTop) { // a new row condition\r\n const itemHeight = item.element.outerHeight(true);\r\n const top = this.viewport.topDataPos() + topHeight + itemHeight;\r\n\r\n if (!topDone && top > this.viewport.topVisiblePos()) {\r\n topDone = true;\r\n this['topVisible'] = item.item;\r\n this['topVisibleElement'] = item.element;\r\n this['topVisibleScope'] = item.scope;\r\n }\r\n if (!bottomDone && (top >= this.viewport.bottomVisiblePos() || (i === length - 1 && this.isEOF()))) {\r\n bottomDone = true;\r\n this['bottomVisible'] = item.item;\r\n this['bottomVisibleElement'] = item.element;\r\n this['bottomVisibleScope'] = item.scope;\r\n }\r\n topHeight += itemHeight;\r\n }\r\n rowTop = itemTop;\r\n\r\n if (topDone && bottomDone) {\r\n break;\r\n }\r\n }\r\n }\r\n\r\n}\r\n\r\nexport default Adapter;\r\n","import JQLiteExtras from './modules/jqLiteExtras';\r\nimport ElementRoutines from './modules/elementRoutines.js';\r\nimport ScrollBuffer from './modules/buffer.js';\r\nimport Viewport from './modules/viewport.js';\r\nimport Adapter from './modules/adapter.js';\r\nimport { OPERATIONS } from './modules/utils';\r\n\r\nangular.module('ui.scroll', [])\r\n\r\n .constant('JQLiteExtras', JQLiteExtras)\r\n .run(['JQLiteExtras', (JQLiteExtras) => {\r\n const elt = angular.element;\r\n !(window.jQuery && elt.fn && elt.fn.jquery) ? (new JQLiteExtras()).registerFor(elt) : null;\r\n ElementRoutines.addCSSRules();\r\n }])\r\n\r\n .directive('uiScrollViewport', function () {\r\n return {\r\n restrict: 'A',\r\n controller: [\r\n '$scope',\r\n '$element',\r\n function (scope, element) {\r\n this.container = element;\r\n this.viewport = element;\r\n this.scope = scope;\r\n\r\n angular.forEach(element.children(), child => {\r\n if (child.tagName.toLowerCase() === 'tbody') {\r\n this.viewport = angular.element(child);\r\n }\r\n });\r\n\r\n return this;\r\n }\r\n ]\r\n };\r\n })\r\n\r\n .directive('uiScroll', [\r\n '$log',\r\n '$injector',\r\n '$rootScope',\r\n '$timeout',\r\n '$interval',\r\n '$q',\r\n '$parse',\r\n function (console, $injector, $rootScope, $timeout, $interval, $q, $parse) {\r\n\r\n return {\r\n require: ['?^uiScrollViewport'],\r\n restrict: 'A',\r\n transclude: 'element',\r\n priority: 1000,\r\n terminal: true,\r\n link: link\r\n };\r\n\r\n function link($scope, element, $attr, controllers, linker) {\r\n const match = $attr.uiScroll.match(/^\\s*(\\w+)\\s+in\\s+([(\\w|\\$)\\.]+)\\s*$/);\r\n if (!match) {\r\n throw new Error('Expected uiScroll in form of \\'_item_ in _datasource_\\' but got \\'' + $attr.uiScroll + '\\'');\r\n }\r\n\r\n function parseNumber(value, defaultValue, isFloat) {\r\n if (!isFloat) {\r\n value = value === null ? defaultValue : Math.floor(value);\r\n }\r\n return isNaN(value) ? defaultValue : value;\r\n }\r\n\r\n function parseNumericAttr(value, defaultValue, isFloat) {\r\n const result = $parse(value)($scope);\r\n return parseNumber(result, defaultValue, isFloat);\r\n }\r\n\r\n function parseBooleanAttr(value, defaultValue) {\r\n const result = $parse(value)($scope);\r\n return typeof result === 'boolean' ? result : defaultValue;\r\n }\r\n\r\n const BUFFER_MIN = 3;\r\n const BUFFER_DEFAULT = 10;\r\n const PADDING_MIN = 0.3;\r\n const PADDING_DEFAULT = 0.5;\r\n const HANDLE_INERTIA_DEFAULT = true;\r\n const START_INDEX_DEFAULT = 1;\r\n const MAX_VIEWPORT_DELAY = 500;\r\n const VIEWPORT_POLLING_INTERVAL = 50;\r\n\r\n let datasource = null;\r\n const itemName = match[1];\r\n const datasourceName = match[2];\r\n const viewportController = controllers[0];\r\n const bufferSize = Math.max(BUFFER_MIN, parseNumericAttr($attr.bufferSize, BUFFER_DEFAULT));\r\n const padding = Math.max(PADDING_MIN, parseNumericAttr($attr.padding, PADDING_DEFAULT, true));\r\n const handleInertia = parseBooleanAttr($attr.handleInertia, HANDLE_INERTIA_DEFAULT);\r\n let startIndex = parseNumericAttr($attr.startIndex, START_INDEX_DEFAULT);\r\n let ridActual = 0; // current data revision id\r\n let pending = [];\r\n\r\n const elementRoutines = new ElementRoutines($injector, $q);\r\n const buffer = new ScrollBuffer(elementRoutines, bufferSize, startIndex);\r\n const viewport = new Viewport(elementRoutines, buffer, element, viewportController, $rootScope, padding);\r\n const adapter = new Adapter($scope, $parse, $attr, viewport, buffer, doAdjust, reload);\r\n\r\n if (viewportController) {\r\n viewportController.adapter = adapter;\r\n }\r\n\r\n const isDatasourceValid = () =>\r\n Object.prototype.toString.call(datasource) === '[object Object]' && typeof datasource.get === 'function';\r\n\r\n datasource = $parse(datasourceName)($scope); // try to get datasource on scope\r\n if (!isDatasourceValid()) {\r\n datasource = $injector.get(datasourceName); // try to inject datasource as service\r\n if (!isDatasourceValid()) {\r\n throw new Error(datasourceName + ' is not a valid datasource');\r\n }\r\n }\r\n\r\n let onRenderHandlers = [];\r\n function onRenderHandlersRunner() {\r\n onRenderHandlers.forEach(handler => handler.run());\r\n onRenderHandlers = [];\r\n }\r\n function persistDatasourceIndex(datasource, propName) {\r\n let getter;\r\n // need to postpone min/maxIndexUser processing if the view is empty\r\n if(angular.isNumber(datasource[propName])) {\r\n getter = datasource[propName];\r\n if(angular.isNumber(getter)) {\r\n onRenderHandlers = onRenderHandlers.filter(handler => handler.id !== propName);\r\n onRenderHandlers.push({\r\n id: propName,\r\n run: () => datasource[propName] = getter\r\n });\r\n }\r\n }\r\n }\r\n\r\n function defineDatasourceIndex(datasource, propName, propUserName) {\r\n const descriptor = Object.getOwnPropertyDescriptor(datasource, propName);\r\n if (descriptor && (descriptor.set || descriptor.get)) {\r\n return;\r\n }\r\n let getter;\r\n persistDatasourceIndex(datasource, propName);\r\n Object.defineProperty(datasource, propName, {\r\n set: (value) => {\r\n getter = value;\r\n if(pending.length && !buffer.length) {\r\n persistDatasourceIndex(datasource, propName);\r\n return;\r\n }\r\n buffer[propUserName] = value;\r\n const topPaddingHeightOld = viewport.topDataPos();\r\n viewport.adjustPaddings();\r\n if (propName === 'minIndex') {\r\n viewport.onAfterMinIndexSet(topPaddingHeightOld);\r\n }\r\n },\r\n get: () => getter\r\n });\r\n }\r\n\r\n defineDatasourceIndex(datasource, 'minIndex', 'minIndexUser');\r\n defineDatasourceIndex(datasource, 'maxIndex', 'maxIndexUser');\r\n\r\n const fetchNext = (datasource.get.length !== 2) ?\r\n (success) => datasource.get(buffer.next, bufferSize, success) :\r\n (success) => {\r\n datasource.get({\r\n index: buffer.next,\r\n append: buffer.length ? buffer[buffer.length - 1].item : void 0,\r\n count: bufferSize\r\n }, success);\r\n };\r\n\r\n const fetchPrevious = (datasource.get.length !== 2) ?\r\n (success) => datasource.get(buffer.first - bufferSize, bufferSize, success) :\r\n (success) => {\r\n datasource.get({\r\n index: buffer.first - bufferSize,\r\n prepend: buffer.length ? buffer[0].item : void 0,\r\n count: bufferSize\r\n }, success);\r\n };\r\n\r\n const initialize = () => {\r\n let tryCount = 0;\r\n if(!viewport.applyContainerStyle()) {\r\n const timer = $interval(() => {\r\n tryCount++;\r\n if(viewport.applyContainerStyle()) {\r\n $interval.cancel(timer);\r\n doAdjust();\r\n }\r\n if(tryCount * VIEWPORT_POLLING_INTERVAL >= MAX_VIEWPORT_DELAY) {\r\n $interval.cancel(timer);\r\n throw Error(`ui-scroll directive requires a viewport with non-zero height in ${MAX_VIEWPORT_DELAY}ms`);\r\n }\r\n }, VIEWPORT_POLLING_INTERVAL);\r\n }\r\n else {\r\n doAdjust();\r\n }\r\n };\r\n\r\n /**\r\n * Build padding elements\r\n *\r\n * Calling linker is the only way I found to get access to the tag name of the template\r\n * to prevent the directive scope from pollution a new scope is created and destroyed\r\n * right after the builder creation is completed\r\n */\r\n linker((clone, scope) => {\r\n viewport.createPaddingElements(clone[0]);\r\n // we do not include the clone in the DOM. It means that the nested directives will not\r\n // be able to reach the parent directives, but in this case it is intentional because we\r\n // created the clone to access the template tag name\r\n scope.$destroy();\r\n clone.remove();\r\n });\r\n\r\n $scope.$on('$destroy', () => {\r\n unbindEvents();\r\n viewport.off('mousewheel', wheelHandler);\r\n });\r\n\r\n viewport.on('mousewheel', wheelHandler);\r\n\r\n initialize();\r\n\r\n /* Private function definitions */\r\n\r\n function isInvalid(rid) {\r\n return (rid && rid !== ridActual) || $scope.$$destroyed;\r\n }\r\n\r\n function bindEvents() {\r\n viewport.on('resize', resizeAndScrollHandler);\r\n viewport.on('scroll', resizeAndScrollHandler);\r\n }\r\n\r\n function unbindEvents() {\r\n viewport.off('resize', resizeAndScrollHandler);\r\n viewport.off('scroll', resizeAndScrollHandler);\r\n }\r\n\r\n function reload() {\r\n unbindEvents();\r\n viewport.resetTopPadding();\r\n viewport.resetBottomPadding();\r\n if (arguments.length) {\r\n startIndex = parseNumber(arguments[0], START_INDEX_DEFAULT, false);\r\n }\r\n buffer.reset(startIndex);\r\n persistDatasourceIndex(datasource, 'minIndex');\r\n persistDatasourceIndex(datasource, 'maxIndex');\r\n doAdjust();\r\n }\r\n\r\n function isElementVisible(wrapper) {\r\n return wrapper.element.height() && wrapper.element[0].offsetParent;\r\n }\r\n\r\n function visibilityWatcher(wrapper) {\r\n if (isElementVisible(wrapper)) {\r\n buffer.forEach((item) => {\r\n if (typeof item.unregisterVisibilityWatcher === 'function') {\r\n item.unregisterVisibilityWatcher();\r\n delete item.unregisterVisibilityWatcher;\r\n }\r\n });\r\n if (!pending.length) {\r\n $timeout(() => doAdjust());\r\n }\r\n }\r\n }\r\n\r\n function insertWrapperContent(wrapper, insertAfter) {\r\n createElement(wrapper, insertAfter, viewport.insertElement);\r\n if (!isElementVisible(wrapper)) {\r\n wrapper.unregisterVisibilityWatcher = wrapper.scope.$watch(() => visibilityWatcher(wrapper));\r\n }\r\n elementRoutines.hideElement(wrapper); // hide inserted elements before data binding\r\n }\r\n\r\n function createElement(wrapper, insertAfter, insertElement) {\r\n let promises = null;\r\n const sibling = (insertAfter > 0) ? buffer[insertAfter - 1].element : undefined;\r\n linker((clone, scope) => {\r\n promises = insertElement(clone, sibling);\r\n wrapper.element = clone;\r\n wrapper.scope = scope;\r\n scope[itemName] = wrapper.item;\r\n });\r\n // ui-scroll-grid apply\r\n if (adapter.transform) {\r\n const tdInitializer = wrapper.scope.uiScrollTdInitializer;\r\n if (tdInitializer && tdInitializer.linking) {\r\n adapter.transform(wrapper.scope, wrapper.element);\r\n } else {\r\n wrapper.scope.uiScrollTdInitializer = {\r\n onLink: () => adapter.transform(wrapper.scope, wrapper.element),\r\n scope: wrapper.scope\r\n };\r\n }\r\n }\r\n return promises;\r\n }\r\n\r\n function updateDOM() {\r\n let promises = [];\r\n const toBePrepended = [];\r\n const toBeRemoved = [];\r\n const inserted = [];\r\n\r\n buffer.forEach((wrapper, i) => {\r\n switch (wrapper.op) {\r\n case OPERATIONS.PREPEND:\r\n toBePrepended.unshift(wrapper);\r\n break;\r\n case OPERATIONS.APPEND:\r\n insertWrapperContent(wrapper, i);\r\n wrapper.op = OPERATIONS.NONE;\r\n inserted.push(wrapper);\r\n break;\r\n case OPERATIONS.INSERT:\r\n promises = promises.concat(createElement(wrapper, i, viewport.insertElementAnimated));\r\n wrapper.op = OPERATIONS.NONE;\r\n inserted.push(wrapper);\r\n break;\r\n case OPERATIONS.REMOVE:\r\n toBeRemoved.push(wrapper);\r\n }\r\n });\r\n\r\n toBeRemoved.forEach((wrapper) => promises = promises.concat(viewport.removeItem(wrapper)));\r\n\r\n if (toBePrepended.length)\r\n toBePrepended.forEach((wrapper) => {\r\n insertWrapperContent(wrapper);\r\n wrapper.op = OPERATIONS.NONE;\r\n });\r\n\r\n buffer.forEach((item, i) => item.scope.$index = buffer.first + i);\r\n\r\n return {\r\n prepended: toBePrepended,\r\n removed: toBeRemoved,\r\n inserted: inserted,\r\n animated: promises\r\n };\r\n\r\n }\r\n\r\n function updatePaddings(rid, updates) {\r\n // schedule another doAdjust after animation completion\r\n if (updates.animated.length) {\r\n $q.all(updates.animated).then(() => {\r\n viewport.adjustPaddings();\r\n doAdjust(rid);\r\n });\r\n } else {\r\n viewport.adjustPaddings();\r\n }\r\n }\r\n\r\n function enqueueFetch(rid, updates) {\r\n if (viewport.shouldLoadBottom()) {\r\n if (!updates || buffer.effectiveHeight(updates.inserted) > 0) {\r\n // this means that at least one item appended in the last batch has height > 0\r\n if (pending.push(true) === 1) {\r\n adapter.loading(true);\r\n fetch(rid);\r\n }\r\n }\r\n } else if (viewport.shouldLoadTop()) {\r\n if ((!updates || buffer.effectiveHeight(updates.prepended) > 0) || pending[0]) {\r\n // this means that at least one item appended in the last batch has height > 0\r\n // pending[0] = true means that previous fetch was appending. We need to force at least one prepend\r\n // BTW there will always be at least 1 element in the pending array because bottom is fetched first\r\n if (pending.push(false) === 1) {\r\n adapter.loading(true);\r\n fetch(rid);\r\n }\r\n }\r\n }\r\n }\r\n\r\n function processUpdates() {\r\n const updates = updateDOM();\r\n\r\n // We need the item bindings to be processed before we can do adjustments\r\n !$scope.$$phase && !$rootScope.$$phase && $scope.$digest();\r\n\r\n updates.inserted.forEach(w => elementRoutines.showElement(w));\r\n updates.prepended.forEach(w => elementRoutines.showElement(w));\r\n return updates;\r\n }\r\n\r\n function doAdjust(rid) {\r\n if (!rid) { // dismiss pending requests\r\n pending = [];\r\n rid = ++ridActual;\r\n }\r\n\r\n const updates = processUpdates();\r\n\r\n if (isInvalid(rid)) {\r\n return;\r\n }\r\n\r\n updatePaddings(rid, updates);\r\n enqueueFetch(rid);\r\n\r\n if (!pending.length) {\r\n adapter.calculateProperties();\r\n }\r\n }\r\n\r\n function doAdjustAfterFetch(rid) {\r\n const updates = processUpdates();\r\n\r\n viewport.onAfterPrepend(updates);\r\n\r\n if (isInvalid(rid)) {\r\n return;\r\n }\r\n\r\n updatePaddings(rid, updates);\r\n onRenderHandlersRunner();\r\n enqueueFetch(rid, updates);\r\n pending.shift();\r\n\r\n if (pending.length)\r\n fetch(rid);\r\n else {\r\n adapter.loading(false);\r\n bindEvents();\r\n adapter.calculateProperties();\r\n }\r\n }\r\n\r\n function fetch(rid) {\r\n if (pending[0]) {// scrolling down\r\n if (buffer.length && !viewport.shouldLoadBottom()) {\r\n doAdjustAfterFetch(rid);\r\n } else {\r\n fetchNext((result) => {\r\n if (isInvalid(rid)) {\r\n return;\r\n }\r\n\r\n if (result.length < bufferSize) {\r\n buffer.eof = true;\r\n }\r\n\r\n if (result.length > 0) {\r\n viewport.clipTop();\r\n buffer.append(result);\r\n }\r\n\r\n doAdjustAfterFetch(rid);\r\n });\r\n }\r\n } else { // scrolling up\r\n if (buffer.length && !viewport.shouldLoadTop()) {\r\n doAdjustAfterFetch(rid);\r\n } else {\r\n fetchPrevious((result) => {\r\n if (isInvalid(rid)) {\r\n return;\r\n }\r\n\r\n if (result.length < bufferSize) {\r\n buffer.bof = true;\r\n // log 'bof is reached'\r\n }\r\n\r\n if (result.length > 0) {\r\n if (buffer.length) {\r\n viewport.clipBottom();\r\n }\r\n buffer.prepend(result);\r\n }\r\n\r\n doAdjustAfterFetch(rid);\r\n });\r\n }\r\n }\r\n }\r\n\r\n function fixInertia() {\r\n if (!viewport.synthetic) {\r\n return;\r\n }\r\n const oldPosition = viewport.synthetic.previous;\r\n const newPosition = viewport.synthetic.next;\r\n if (viewport.scrollTop() !== newPosition) {\r\n requestAnimationFrame(() => {\r\n const position = viewport.scrollTop();\r\n const diff = oldPosition - position;\r\n if (diff > 0) { // inertia over synthetic\r\n viewport.scrollTop(newPosition - diff);\r\n } else {\r\n viewport.scrollTop(newPosition);\r\n }\r\n viewport.synthetic = null;\r\n });\r\n return true;\r\n }\r\n viewport.synthetic = null;\r\n }\r\n\r\n function resizeAndScrollHandler() {\r\n if (handleInertia && fixInertia()) {\r\n return;\r\n }\r\n if (!$rootScope.$$phase && !adapter.isLoading && !adapter.disabled) {\r\n\r\n enqueueFetch(ridActual);\r\n\r\n if (pending.length) {\r\n unbindEvents();\r\n } else {\r\n adapter.calculateProperties();\r\n !$scope.$$phase && $scope.$digest();\r\n }\r\n }\r\n }\r\n\r\n function wheelHandler(event) {\r\n if (!adapter.disabled) {\r\n const scrollTop = viewport[0].scrollTop;\r\n const yMax = viewport[0].scrollHeight - viewport[0].clientHeight;\r\n\r\n if ((scrollTop === 0 && !buffer.bof) || (scrollTop === yMax && !buffer.eof)) {\r\n event.preventDefault();\r\n }\r\n }\r\n }\r\n }\r\n\r\n }\r\n ]);\r\n"],"names":["JQLiteExtras","_classCallCheck","key","value","element","convertToPx","css","getStyle","isWindow","scrollTo","self","direction","elem","_top$left$direction","_slicedToArray","top","left","method","prop","preserve","isValueDefined","call","document","documentElement","getWidthHeight","measure","result","measurements","base","borderA","borderB","computedMarginA","computedMarginB","computedStyle","dirA","dirB","paddingA","paddingB","height","width","padding","border","margin","_width$height$measure","offsetWidth","offsetHeight","getMeasurements","outer","outerfull","style","parseFloat","angular","prototype","name","this","nodeType","obj","location","alert","setInterval","window","getComputedStyle","currentStyle","rs","rsLeft","RegExp","source","test","runtimeStyle","pixelLeft","forEach","before","newElem","children","i","j","parent","ref","contents","prepend","length","after","Error","outerHTML","isNumber","outerHeight","option","outerWidth","offset","docElem","win","box","doc","ownerDocument","arguments","undefined","getBoundingClientRect","defaultView","parentWindow","pageYOffset","scrollTop","clientTop","pageXOffset","scrollLeft","clientLeft","hideClassToken","ElementRoutines","$injector","$q","$animate","has","get","isAngularVersionLessThen1_3","version","major","minor","index","selector","rules","sheet","styleSheets","cssRules","err","insertRule","addRule","wrapper","addClass","removeClass","newElement","previousElement","remove","scope","$destroy","insertElement","deferred","defer","enter","resolve","promise","removeElement","leave","then","OPERATIONS","PREPEND","APPEND","INSERT","REMOVE","NONE","ScrollBuffer","elementRoutines","bufferSize","startIndex","buffer","Object","create","Array","extend","size","reset","eof","bof","first","next","minIndex","maxIndex","minIndexUser","maxIndexUser","append","items","item","insert","Math","max","immutableTop","reverse","min","operation","shiftTop","op","splice","push","unshift","arg1","arg2","indexOf","getAbsMinIndex","incrementMinIndex","decrementMaxIndex","removeElementAnimated","getAbsMaxIndex","effectiveHeight","elements","Number","MAX_VALUE","bottom","NEGATIVE_INFINITY","offsetParent","getItems","filter","getFirstItem","list","getLastItem","CacheProto","_createClass","$index","sort","a","b","argument","_shiftTop","Cache","instance","apply","setPrototypeOf","getOwnPropertyNames","methodName","Padding","template","Node","ELEMENT_NODE","tagName","toLowerCase","concat","find","generateElement","cache","Viewport","viewportController","$rootScope","topPadding","bottomPadding","viewport","container","bufferPadding","getScope","createPaddingElements","applyContainerStyle","bottomDataPos","scrollHeight","topDataPos","bottomVisiblePos","topVisiblePos","e","sibling","insertElementAnimated","shouldLoadBottom","clipBottom","overage","overageHeight","itemHeight","emptySpaceHeight","add","adjustPaddings","shouldLoadTop","clipTop","visibleItemsHeight","reduce","summ","topPaddingHeight","topCount","bottomPaddingHeight","bottomCount","averageItemHeight","adjustTopPadding","adjustBottomPadding","topPaddingHeightAdd","bottomPaddingHeightAdd","onAfterMinIndexSet","topPaddingHeightOld","diff","onAfterPrepend","updates","prepended","paddingHeight","position","newPosition","synthetic","previous","resetTopPadding","clear","resetBottomPadding","removeCacheItem","removeItem","Adapter","$scope","$parse","$attr","doAdjust","reload","isLoading","disabled","viewportScope","startScope","$parent","publicContext","assignAdapter","adapter","generatePublicContext","adapterAttr","replace","adapterOnScope","assign","error","message","_this","publicMethods","bind","publicProps","_loop","_i","property","attr","defineProperty","set","publicPropsImmediate","_loop2","_i2","newItems","options","arg3","applyUpdatesFunc","applyUpdatesIndex","cb","_this2","slice","applyUpdate","_index","isArray","_this3","some","newItem","rowTop","topHeight","topDone","bottomDone","itemTop","isEOF","module","constant","run","elt","jQuery","fn","jquery","registerFor","addCSSRules","directive","restrict","controller","child","console","$timeout","$interval","require","transclude","priority","terminal","link","controllers","linker","match","uiScroll","parseNumber","defaultValue","isFloat","floor","isNaN","parseNumericAttr","datasource","itemName","datasourceName","handleInertia","ridActual","pending","unbindEvents","persistDatasourceIndex","isDatasourceValid","toString","onRenderHandlers","propName","getter","handler","id","defineDatasourceIndex","propUserName","descriptor","getOwnPropertyDescriptor","fetchNext","success","count","fetchPrevious","isInvalid","rid","$$destroyed","off","resizeAndScrollHandler","isElementVisible","insertWrapperContent","insertAfter","createElement","unregisterVisibilityWatcher","$watch","visibilityWatcher","hideElement","promises","clone","transform","tdInitializer","uiScrollTdInitializer","linking","onLink","updatePaddings","animated","all","enqueueFetch","inserted","loading","fetch","processUpdates","toBePrepended","toBeRemoved","removed","$$phase","$digest","w","showElement","calculateProperties","doAdjustAfterFetch","shift","on","oldPosition","requestAnimationFrame","fixInertia","wheelHandler","event","yMax","clientHeight","preventDefault","$on","tryCount","timer","cancel","initialize"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"ui-scroll.min.js","mappings":"+vDAAA,IAWqBA,EAAY,oBAAAA,K,4FAAAC,CAAA,KAAAD,EAAA,C,UAgQ9B,O,EAhQ8BA,E,EAAA,EAAAE,IAAA,cAAAC,MAE/B,SAAYC,GACV,IAAIC,EAAaC,EAAKC,EAAUC,EAehC,SAASC,EAASC,EAAMC,EAAWR,GACjC,IAAIS,EAAOF,EAAK,GAChBG,EAAAC,EAA+B,CAC7BC,IAAK,CACH,YACA,cACA,cAEFC,KAAM,CACJ,aACA,cACA,cAEFL,GAAU,GAXPM,EAAMJ,EAAA,GAAEK,EAAIL,EAAA,GAAEM,EAAQN,EAAA,GAarBO,OAAkC,IAAVjB,EAC9B,OAAIK,EAASI,GACPQ,EACKR,EAAKH,SAASC,EAAKS,GAAUE,KAAKX,GAAOP,GAE1Ce,KAAQN,EAAQA,EAAKM,GAAQN,EAAKU,SAASC,gBAAgBN,IAE/DG,IACFR,EAAKK,GAAUd,GAEVS,EAAKK,GAEhB,CA0FA,SAASO,EAAeZ,EAAMD,EAAWc,GACvC,IAAmBC,EAEfC,EA1DN,SAAyBf,EAAMa,GAC7B,IAAIG,EAAMC,EAASC,EAASC,EAAiBC,EAAiBC,EAAeC,EAAMC,EAAwBC,EAAUC,EAErH,GAAI7B,EAASI,GAGX,MAAO,CACLgB,KAHFA,EAAON,SAASC,gBAAgB,CAACe,OAAQ,eAAgBC,MAAO,eAAed,IAI7Ee,QAAS,EACTC,OAAQ,EACRC,OAAQ,GAIZ,IAAAC,EAAA7B,EAKI,CACFyB,MAAO,CACL3B,EAAKgC,YACL,OACA,SAEFN,OAAQ,CACN1B,EAAKiC,aACL,MACA,WAEFpB,GAAQ,GAiBV,OA/BEG,EAAIe,EAAA,GACJT,EAAIS,EAAA,GACJR,EAAIQ,EAAA,GAcNV,EAAgB1B,EAASK,GACzBwB,EAAW/B,EAAYO,EAAMqB,EAAc,UAAYC,KAAU,EACjEG,EAAWhC,EAAYO,EAAMqB,EAAc,UAAYE,KAAU,EACjEN,EAAUxB,EAAYO,EAAMqB,EAAc,SAAWC,EAAO,WAAa,EACzEJ,EAAUzB,EAAYO,EAAMqB,EAAc,SAAWE,EAAO,WAAa,EACzEJ,EAAkBE,EAAc,SAAWC,GAC3CF,EAAkBC,EAAc,SAAWE,GASpC,CACLP,KAAMA,EACNY,QAASJ,EAAWC,EACpBI,OAAQZ,EAAUC,EAClBY,QAPQrC,EAAYO,EAAMmB,IAAoB,IACtC1B,EAAYO,EAAMoB,IAAoB,GAQlD,CAKqBc,CAAgBlC,EAAMD,GAEzC,OAAIgB,EAAaC,KAAO,EACf,CACLA,KAAMD,EAAaC,KAAOD,EAAaa,QAAUb,EAAac,OAC9DM,MAAOpB,EAAaC,KACpBoB,UAAWrB,EAAaC,KAAOD,EAAae,QAC5CjB,MAKJC,EADgBnB,EAASK,GACFD,IAEV,GAAgB,OAAXe,KAChBA,EAASd,EAAKqC,MAAMtC,IAAc,GAM7B,CACLiB,MAHFF,EAASwB,WAAWxB,IAAW,GAGdC,EAAaa,QAAUb,EAAac,OACnDM,MAAOrB,EACPsB,UAAWtB,EAASC,EAAaa,QAAUb,EAAac,OAASd,EAAae,QAC9EjB,GACJ,CAGA,OAlKAnB,EAAM6C,QAAQ/C,QAAQgD,UAAU9C,IAEhCF,EAAQgD,UAAU9C,IAAM,SAAU+C,EAAMlD,GACtC,IACIS,EADO0C,KACK,GAChB,GAAO1C,GAA0B,IAAlBA,EAAK2C,UAAoC,IAAlB3C,EAAK2C,UAAmB3C,EAAKqC,MACjE,OAAO3C,EAAIe,KAHFiC,KAGaD,EAAMlD,EAEhC,EAGAK,EAAW,SAACgD,GAAG,OAAKA,GAAOA,EAAIlC,UAAYkC,EAAIC,UAAYD,EAAIE,OAASF,EAAIG,WAAW,EA+BnFC,OAAOC,kBACTtD,EAAW,SAACK,GAAI,OAAKgD,OAAOC,iBAAiBjD,EAAM,KAAK,EACxDP,EAAc,SAACO,EAAMT,GAAK,OAAK+C,WAAW/C,EAAM,IAEhDI,EAAW,SAACK,GAAI,OAAKA,EAAKkD,YAAY,EACtCzD,EAAc,SAACO,EAAMT,GACnB,IAAIa,EAAMU,EAAQqC,EAAIC,EAAQf,EAI9B,OAFgB,IAAIgB,OAAO,KADX,sCAAsCC,OACR,kBAAmB,KAElDC,KAAKhE,IAMpBa,GADAiC,EAAQrC,EAAKqC,OACAjC,KAEbgD,GADAD,EAAKnD,EAAKwD,eACKL,EAAG/C,KACd+C,IACFA,EAAG/C,KAAOiC,EAAMjC,MAGlBiC,EAAMjC,KAAOb,EACbuB,EAASuB,EAAMoB,UACfpB,EAAMjC,KAAOA,EACTgD,IACFD,EAAG/C,KAAOgD,GAELtC,GAlBEwB,WAAW/C,EAmBtB,GA0FKgD,QAAQmB,QAAQ,CACrBC,OAAM,SAACC,GACL,IAAIC,EAAU7D,EAAM8D,EAAGC,EAAGC,EAAQC,EAKlC,GAHAjE,EADO0C,KACK,IAEZmB,GADAG,EAFOtB,KAEOsB,UACIE,YACL,KAAOlE,EAClB,OAAOgE,EAAOG,QAAQP,GAEtB,IAAKE,EAAIC,EAAI,EAAGE,EAAMJ,EAASO,OAAS,EAAG,GAAKH,EAAMF,GAAKE,EAAMF,GAAKE,EAAKH,EAAI,GAAKG,IAAQF,IAAMA,EAChG,GAAIF,EAASC,KAAO9D,EAElB,YADAuC,QAAQ/C,QAAQqE,EAASC,EAAI,IAAIO,MAAMT,GAI3C,MAAM,IAAIU,MAAM,yBAA2BtE,EAAKuE,UAEpD,EACA7C,OAAM,SAAEnC,GAGN,YAAqB,IAAVA,GACLgD,QAAQiC,SAASjF,KACnBA,GAAgB,MAEXG,EAAIe,KALNiC,KAKiB,SAAUnD,IAEzBqB,EAAe8B,KAAK,GAAI,SAAU,OAE7C,EACA+B,YAAW,SAACC,GACV,OAAO9D,EAAe8B,KAAK,GAAI,SAAUgC,EAAS,YAAc,QAClE,EACAC,WAAU,SAACD,GACT,OAAO9D,EAAe8B,KAAK,GAAI,QAASgC,EAAS,YAAc,QACjE,EAKAE,OAAM,SAACrF,GACL,IAAIsF,EAASC,EAETC,EAAM,CACR5E,IAAK,EACLC,KAAM,GAEJJ,EALO0C,KAKK,GACZsC,EAAMhF,GAAQA,EAAKiF,cAEvB,GAAIC,UAAUd,OAAQ,CACpB,QAAce,IAAV5F,EACF,OAVOmD,KAaT,MAAM,IAAI4B,MAAM,0CAClB,CAEA,GAAKU,EAcL,OAVAH,EAAUG,EAAIrE,gBAIoB,MAA9BX,EAAKoF,wBACPL,EAAM/E,EAAKoF,yBAGbN,EAAME,EAAIK,aAAeL,EAAIM,aAEtB,CACLnF,IAAK4E,EAAI5E,KAAO2E,EAAIS,aAAeV,EAAQW,YAAcX,EAAQY,WAAa,GAC9ErF,KAAM2E,EAAI3E,MAAQ0E,EAAIY,aAAeb,EAAQc,aAAed,EAAQe,YAAc,GAEtF,EACAJ,UAAS,SAACjG,GACR,OAAOM,EAAS6C,KAAM,MAAOnD,EAC/B,EACAoG,WAAU,SAACpG,GACT,OAAOM,EAAS6C,KAAM,OAAQnD,EAChC,IACC,SAACA,EAAOD,GACT,IAAKE,EAAQgD,UAAUlD,GACrB,OAAOE,EAAQgD,UAAUlD,GAAOC,CAEpC,GACF,I,iFAACH,CAAA,CAhQ8B,G,6sBCXjC,IAAMyG,EAAiB,oBAEFC,EAAe,WAoBlC,SAAAA,EAAYC,EAAWC,I,4FAAI3G,CAAA,KAAAyG,GACzBpD,KAAKuD,SAAYF,EAAUG,KAAOH,EAAUG,IAAI,YAAeH,EAAUI,IAAI,YAAc,KAC3FzD,KAAK0D,4BAAwD,IAA1B7D,QAAQ8D,QAAQC,OAAe/D,QAAQ8D,QAAQE,MAAQ,EAC1F7D,KAAKsD,GAAKA,CACZ,C,UANC,O,EAMAF,E,EAsDA,EAAAxG,IAAA,cAAAC,MA5ED,WACE,IAGIiH,EAHEC,EAAW,IAAMZ,EACjBa,EAAQ,gBACRC,EAAQjG,SAASkG,YAAY,GAEnC,IACEJ,EAAQG,EAAME,SAASzC,MACzB,CAAE,MAAO0C,GACPN,EAAQ,CACV,CACG,eAAgBG,EACjBA,EAAMI,WAAWN,EAAW,IAAMC,EAAQ,IAAKF,GAEzC,YAAaG,GACnBA,EAAMK,QAAQP,EAAUC,EAAOF,EAEnC,K,EAMC,EAAAlH,IAAA,cAAAC,MAED,SAAY0H,GACVA,EAAQzH,QAAQ0H,SAASrB,EAC3B,GAAC,CAAAvG,IAAA,cAAAC,MAED,SAAY0H,GACVA,EAAQzH,QAAQ2H,YAAYtB,EAC9B,GAAC,CAAAvG,IAAA,gBAAAC,MAED,SAAc6H,EAAYC,GAExB,OADAA,EAAgBhD,MAAM+C,GACf,EACT,GAAC,CAAA9H,IAAA,gBAAAC,MAED,SAAc0H,GAGZ,OAFAA,EAAQzH,QAAQ8H,SAChBL,EAAQM,MAAMC,WACP,EACT,GAAC,CAAAlI,IAAA,wBAAAC,MAED,SAAsB6H,EAAYC,GAChC,IAAK3E,KAAKuD,SACR,OAAOvD,KAAK+E,cAAcL,EAAYC,GAGxC,GAAI3E,KAAK0D,4BAA6B,CACpC,IAAMsB,EAAWhF,KAAKsD,GAAG2B,QAIzB,OAFAjF,KAAKuD,SAAS2B,MAAMR,EAAY,KAAMC,GAAiB,kBAAMK,EAASG,SAAS,IAExE,CAACH,EAASI,QACnB,CAGA,MAAO,CAACpF,KAAKuD,SAAS2B,MAAMR,EAAY,KAAMC,GAChD,GAAC,CAAA/H,IAAA,wBAAAC,MAED,SAAsB0H,GACpB,IAAKvE,KAAKuD,SACR,OAAOvD,KAAKqF,cAAcd,GAG5B,GAAIvE,KAAK0D,4BAA6B,CACpC,IAAMsB,EAAWhF,KAAKsD,GAAG2B,QAMzB,OALAjF,KAAKuD,SAAS+B,MAAMf,EAAQzH,SAAS,WAEnC,OADAyH,EAAQM,MAAMC,WACPE,EAASG,SAClB,IAEO,CAACH,EAASI,QACnB,CAEA,MAAO,CAAEpF,KAAKuD,SAAS+B,MAAMf,EAAQzH,SAAUyI,MAAK,kBAAMhB,EAAQM,MAAMC,UAAU,IACpF,M,8EA5DC1B,CAAA,CAlBiC,GCFvBoC,EAAa,CACxBC,QAAS,UACTC,OAAQ,SACRC,OAAQ,SACRC,OAAQ,SACRC,KAAM,QCHO,SAASC,EAAaC,EAAiBC,EAAYC,GAChE,IAAMC,EAASC,OAAOC,OAAOC,MAAMvG,WA+KnC,OA7KAD,QAAQyG,OAAOJ,EAAQ,CACrBK,KAAMP,EAENQ,MAAK,SAACP,GACJC,EAAOtB,OAAO,EAAGsB,EAAOxE,QACxBwE,EAAOO,KAAM,EACbP,EAAOQ,KAAM,EACbR,EAAOS,MAAQV,EACfC,EAAOU,KAAOX,EACdC,EAAOW,SAAWZ,EAClBC,EAAOY,SAAWb,EAClBC,EAAOa,aAAe,KACtBb,EAAOc,aAAe,IACxB,EAEAC,OAAM,SAACC,GACLA,EAAMlG,SAAQ,SAACmG,KACXjB,EAAOU,KACTV,EAAOkB,OAAO5B,EAAWE,OAAQyB,EACnC,IACAjB,EAAOY,SAAWZ,EAAOO,IAAMP,EAAOU,KAAO,EAAIS,KAAKC,IAAIpB,EAAOU,KAAO,EAAGV,EAAOY,SACpF,EAEArF,QAAO,SAACyF,EAAOK,GACbL,EAAMM,UAAUxG,SAAQ,SAACmG,GACnBI,IACArB,EAAOU,OAGPV,EAAOS,MAEXT,EAAOkB,OAAO5B,EAAWC,QAAS0B,EACpC,IACAjB,EAAOW,SAAWX,EAAOQ,IAAMR,EAAOW,SAAWX,EAAOS,MAAQU,KAAKI,IAAIvB,EAAOS,MAAOT,EAAOW,SAChG,EAQAO,OAAM,SAACM,EAAWP,EAAMQ,GACtB,IAAMpD,EAAU,CACd4C,KAAMA,GAGR,GAAIO,EAAY,GAAM,EACpBnD,EAAQqD,GAAKpC,EAAWG,OACxBO,EAAO2B,OAAOH,EAAW,EAAGnD,GACxBoD,EACFzB,EAAOS,QAGPT,EAAOU,YAIT,OADArC,EAAQqD,GAAKF,EACLA,GACN,KAAKlC,EAAWE,OACdQ,EAAO4B,KAAKvD,GACZ,MACF,KAAKiB,EAAWC,QACdS,EAAO6B,QAAQxD,GAIvB,EAGAK,OAAM,SAACoD,EAAMC,GACX,GAAIpI,QAAQiC,SAASkG,GAAO,CAE1B,IAAK,IAAI5G,EAAI4G,EAAM5G,EAAI6G,EAAM7G,IAC3B2E,EAAgBV,cAAca,EAAO9E,IAEvC,OAAO8E,EAAO2B,OAAOG,EAAMC,EAAOD,EACpC,CAmBA,OAjBA9B,EAAO2B,OAAO3B,EAAOgC,QAAQF,GAAO,GAChCA,EAAKL,UAAYzB,EAAOS,QAAU3G,KAAKmI,iBACzCnI,KAAKoI,oBAGLpI,KAAKqI,oBAEHL,EAAKL,SACPzB,EAAOS,QAGPT,EAAOU,OAEJV,EAAOxE,SACVwE,EAAOW,SAAWQ,KAAKI,IAAIvB,EAAOY,SAAUZ,EAAOW,WAG9Cd,EAAgBuC,sBAAsBN,EAC/C,EAEAI,kBAAiB,WACf,GAA4B,OAAxBlC,EAAOa,aAAuB,CAChC,GAAIb,EAAOW,SAAWX,EAAOa,aAE3B,YADAb,EAAOa,eAGLb,EAAOW,WAAaX,EAAOa,cAC7Bb,EAAOa,cAEX,CACAb,EAAOW,UACT,EAEAwB,kBAAiB,WACa,OAAxBnC,EAAOc,cAAyBd,EAAOY,UAAYZ,EAAOc,cAC5Dd,EAAOc,eAETd,EAAOY,UACT,EAEAqB,eAAc,WACZ,OAA4B,OAAxBjC,EAAOa,aACFM,KAAKI,IAAIvB,EAAOa,aAAcb,EAAOW,UAEvCX,EAAOW,QAChB,EAEA0B,eAAc,WACZ,OAA4B,OAAxBrC,EAAOc,aACFK,KAAKC,IAAIpB,EAAOc,aAAcd,EAAOY,UAEvCZ,EAAOY,QAChB,EAEA0B,gBAAe,SAACC,GACd,IAAKA,EAAS/G,OACZ,OAAO,EAET,IAAIjE,EAAMiL,OAAOC,UACbC,EAASF,OAAOG,kBAQpB,OAPAJ,EAASzH,SAAQ,SAACuD,GACZA,EAAQzH,QAAQ,GAAGgM,eAErBrL,EAAM4J,KAAKI,IAAIhK,EAAK8G,EAAQzH,QAAQoF,SAASzE,KAC7CmL,EAASvB,KAAKC,IAAIsB,EAAQrE,EAAQzH,QAAQoF,SAASzE,IAAM8G,EAAQzH,QAAQiF,aAAY,IAEzF,IACOsF,KAAKC,IAAI,EAAGsB,EAASnL,EAC9B,EAEAsL,SAAQ,WACN,OAAO7C,EAAO8C,QAAO,SAAA7B,GAAI,OAAIA,EAAKS,KAAOpC,EAAWK,IAAI,GAC1D,EAEAoD,aAAY,WACV,IAAMC,EAAOhD,EAAO6C,WACpB,OAAKG,EAAKxH,OAGHwH,EAAK,GAAG/B,KAFN,IAGX,EAEAgC,YAAW,WACT,IAAMD,EAAOhD,EAAO6C,WACpB,OAAKG,EAAKxH,OAGHwH,EAAKA,EAAKxH,OAAS,GAAGyF,KAFpB,IAGX,IAIFjB,EAAOM,MAAMP,GAENC,CACT,C,u5BClLA,IACMkD,EAAU,oBAAAA,IAAAzM,EAAA,KAAAyM,EAAA,CAmCb,OAnCaC,EAAAD,EAAA,EAAAxM,IAAA,MAAAC,MACd,SAAIsK,GACF,IAAK,IAAI/F,EAAIpB,KAAK0B,OAAS,EAAGN,GAAK,EAAGA,IACpC,GAAIpB,KAAKoB,GAAG0C,QAAUqD,EAAKtC,MAAMyE,OAE/B,YADAtJ,KAAKoB,GAAGpC,OAASmI,EAAKrK,QAAQiF,eAIlC/B,KAAK8H,KAAK,CACRhE,MAAOqD,EAAKtC,MAAMyE,OAClBtK,OAAQmI,EAAKrK,QAAQiF,gBAEvB/B,KAAKuJ,MAAK,SAACC,EAAGC,GAAC,OAAOD,EAAE1F,MAAQ2F,EAAE3F,OAAU,EAAM0F,EAAE1F,MAAQ2F,EAAE3F,MAAS,EAAI,CAAE,GAC/E,GAAC,CAAAlH,IAAA,SAAAC,MAED,SAAO6M,EAAUC,GAGf,IAFA,IAAM7F,EAAQ4F,EAAW,GAAM,EAAIA,EAAWA,EAAS7E,MAAMyE,OACvD3B,EAAW+B,EAAW,GAAM,EAAIC,EAAYD,EAAS/B,SAClDvG,EAAIpB,KAAK0B,OAAS,EAAGN,GAAK,EAAGA,IACpC,GAAIpB,KAAKoB,GAAG0C,QAAUA,EAAO,CAC3B9D,KAAK6H,OAAOzG,EAAG,GACf,KACF,CAEF,IAAKuG,EACH,IAAK,IAAIvG,EAAIpB,KAAK0B,OAAS,EAAGN,GAAK,EAAGA,IAChCpB,KAAKoB,GAAG0C,MAAQA,GAClB9D,KAAKoB,GAAG0C,OAIhB,GAAC,CAAAlH,IAAA,QAAAC,MAED,WACEmD,KAAK0B,OAAS,CAChB,KAAC0H,CAAA,CAnCa,GAsChB,SAASQ,IACP,IAAMC,EAAW,GAGjB,OAFAA,EAAS/B,KAAKgC,MAAMD,EAAUrH,WAC9B2D,OAAO4D,eAAeF,EAAUD,EAAM9J,WAC/B+J,CACT,CACAD,EAAM9J,UAAYqG,OAAOC,OAAOC,MAAMvG,WACtCqG,OAAO6D,oBAAoBZ,EAAWtJ,WAAWkB,SAAQ,SAAAiJ,GAAU,OACjEL,EAAM9J,UAAUmK,GAAcb,EAAWtJ,UAAUmK,EAAW,IAmChE,QAXa,WACX,SAAAC,EAAYC,GAAUxN,EAAA,KAAAuN,GACpBlK,KAAKlD,QAvBT,SAAyBqN,GACvB,GAAIA,EAASlK,WAAamK,KAAKC,aAC7B,MAAM,IAAIzI,MAAM,wEAElB,IAAI9E,EACJ,OAAQqN,EAASG,QAAQC,eACvB,IAAK,KACH,MAAM,IAAI3I,MAAM,yCAAD4I,OAA0CL,EAASG,QAAO,0BAAAE,OAAyBL,EAAStI,YAC7G,IAAK,KAEH/E,EADY+C,QAAQ/C,QAAQ,gDACZ2N,KAAK,MACrB,MACF,IAAK,KACH3N,EAAU+C,QAAQ/C,QAAQ,aAC1B,MACF,QACEA,EAAU+C,QAAQ/C,QAAQ,eAE9B,OAAOA,CACT,CAImB4N,CAAgBP,GAC/BnK,KAAK2K,MAAQ,IAAIf,CACnB,CAIC,OAJAP,EAAAa,EAAA,EAAAtN,IAAA,SAAAC,MAED,WACE,OAAOmD,KAAKlD,QAAQkC,OAAO8K,MAAM9J,KAAKlD,QAAS0F,UACjD,KAAC0H,CAAA,CARU,GCtEE,SAASU,EAAS7E,EAAiBG,EAAQpJ,EAAS+N,EAAoBC,EAAY5L,GACjG,IAAI6L,EAAa,KACbC,EAAgB,KACdC,EAAWJ,GAAsBA,EAAmBI,SAAWJ,EAAmBI,SAAWpL,QAAQ/C,QAAQwD,QAC7G4K,EAAYL,GAAsBA,EAAmBK,UAAYL,EAAmBK,eAAYzI,EAChGoC,EAAQgG,GAAsBA,EAAmBhG,MAAQgG,EAAmBhG,MAAQiG,EAQ1F,SAASK,IACP,OAAOF,EAASlJ,cAAgB7C,CAClC,CAwMA,OAhNA+L,EAASjO,IAAI,CACX,kBAAmB,OACnB,aAAc,OACd,QAAW,UAOb6C,QAAQyG,OAAO2E,EAAU,CACvBG,SAAQ,WACN,OAAOvG,CACT,EAEAwG,sBAAqB,SAAClB,GACpBY,EAAa,IAAIb,EAAQC,GACzBa,EAAgB,IAAId,EAAQC,GAC5BrN,EAAQmE,OAAO8J,EAAWjO,SAC1BA,EAAQ6E,MAAMqJ,EAAclO,SAC5BiO,EAAW/L,OAAO,GAClBgM,EAAchM,OAAO,EACvB,EAEAsM,oBAAmB,WACjB,OAAKJ,IAGDA,IAAcD,GAChBA,EAASjO,IAAI,SAAUsD,OAAOC,iBAAiB2K,EAAU,IAAIlM,QAExDiM,EAASjM,SAAW,EAC7B,EAEAuM,cAAa,WACX,IAAIC,EAAeP,EAAS,GAAGO,aAE/B,OADAA,EAA+B,MAAhBA,EAAuBA,EAAeP,EAAS,GAAGjN,SAASC,gBAAgBuN,cACpER,EAAchM,QACtC,EAEAyM,WAAU,WACR,OAAOV,EAAW/L,QACpB,EAEA0M,iBAAgB,WACd,OAAOT,EAASnI,YAAcmI,EAASlJ,aACzC,EAEA4J,cAAa,WACX,OAAOV,EAASnI,WAClB,EAEAiC,cAAa,SAAC6G,EAAGC,GACf,OAAO9F,EAAgBhB,cAAc6G,EAAGC,GAAWd,EAAWjO,QAChE,EAEAgP,sBAAqB,SAACF,EAAGC,GACvB,OAAO9F,EAAgB+F,sBAAsBF,EAAGC,GAAWd,EAAWjO,QACxE,EAEAiP,iBAAgB,WACd,OAAQ7F,EAAOO,KAAOwE,EAASM,gBAAkBN,EAASS,mBAAqBP,GACjF,EAEAa,WAAU,WAOR,IALA,IAAIC,EAAU,EACVC,EAAgB,EAChBC,EAAa,EACbC,EAAmBnB,EAASM,gBAAkBN,EAASS,mBAAqBP,IAEvE/J,EAAI8E,EAAOxE,OAAS,EAAGN,GAAK,KAE/B8K,GADJC,EAAajG,EAAO9E,GAAGtE,QAAQiF,aAAY,IACVqK,GAFKhL,IAKtC4J,EAAcL,MAAM0B,IAAInG,EAAO9E,IAC/B8K,GAAiBC,EACjBF,IAGEA,EAAU,IACZ/F,EAAOO,KAAM,EACbP,EAAOtB,OAAOsB,EAAOxE,OAASuK,EAAS/F,EAAOxE,QAC9CwE,EAAOU,MAAQqF,EACfhB,EAASqB,iBAEb,EAEAC,cAAa,WACX,OAAQrG,EAAOQ,KAAQuE,EAASQ,aAAeR,EAASU,gBAAkBR,GAC5E,EAEAqB,QAAO,WAOL,IALA,IAAIP,EAAU,EACVC,EAAgB,EAChBC,EAAa,EACbC,EAAmBnB,EAASU,gBAAkBV,EAASQ,aAAeN,IAEjE/J,EAAI,EAAGA,EAAI8E,EAAOxE,UAErBwK,GADJC,EAAajG,EAAO9E,GAAGtE,QAAQiF,aAAY,IACVqK,GAFAhL,IAKjC2J,EAAWJ,MAAM0B,IAAInG,EAAO9E,IAC5B8K,GAAiBC,EACjBF,IAGEA,EAAU,IAGZlB,EAAW/L,OAAO+L,EAAW/L,SAAWkN,GACxChG,EAAOQ,KAAM,EACbR,EAAOtB,OAAO,EAAGqH,GACjB/F,EAAOS,OAASsF,EAEpB,EAEAK,eAAc,WACZ,GAAKpG,EAAOxE,OAAZ,CAKA,IAAM+K,EAAqBvG,EAAOwG,QAAO,SAACC,EAAMxF,GAAI,OAAKwF,EAAOxF,EAAKrK,QAAQiF,aAAY,EAAK,GAAE,GAE5F6K,EAAmB,EAAGC,EAAW,EACrC9B,EAAWJ,MAAM3J,SAAQ,SAAAmG,GACnBA,EAAKrD,MAAQoC,EAAOS,QACtBiG,GAAoBzF,EAAKnI,OACzB6N,IAEJ,IAEA,IAAIC,EAAsB,EAAGC,EAAc,EAC3C/B,EAAcL,MAAM3J,SAAQ,SAAAmG,GACtBA,EAAKrD,OAASoC,EAAOU,OACvBkG,GAAuB3F,EAAKnI,OAC5B+N,IAEJ,IAEA,IACMC,GADcP,EAAqBG,EAAmBE,IACnBD,EAAWE,EAAc7G,EAAOxE,QAGrEuL,EAA2C,OAAxB/G,EAAOa,cAAyBb,EAAOW,SAAWX,EAAOa,aAC5EmG,EAA8C,OAAxBhH,EAAOc,cAAyBd,EAAOY,SAAWZ,EAAOc,aAC/EmG,EAAsBF,GAAoB/G,EAAOW,SAAWX,EAAOa,cAAgBiG,EAAoB,EACvGI,EAAyBF,GAAuBhH,EAAOc,aAAed,EAAOY,UAAYkG,EAAoB,EAGjHjC,EAAW/L,OAAO4N,EAAmBO,GACrCnC,EAAchM,OAAO8N,EAAsBM,EAhC3C,CAiCF,EAEAC,mBAAkB,SAACC,GAEjB,GAA4B,OAAxBpH,EAAOa,cAAyBb,EAAOW,SAAWX,EAAOa,aAAc,CACzE,IAAIwG,EAAOxC,EAAW/L,SAAWsO,EAEjC,IADArC,EAASnI,UAAUmI,EAASnI,YAAcyK,IACnCA,GAAQtC,EAASnI,aAAe,GACrCkI,EAAchM,OAAOgM,EAAchM,SAAWuO,GAC9CtC,EAASnI,UAAUmI,EAASnI,YAAcyK,EAE9C,CACF,EAEAC,eAAc,SAACC,GACb,GAAKA,EAAQC,UAAUhM,OAAvB,CAGA,IAAM1C,EAASkH,EAAOsC,gBAAgBiF,EAAQC,WACxCC,EAAgB5C,EAAW/L,SAAWA,EAC5C,GAAI2O,GAAiB,EACnB5C,EAAW/L,OAAO2O,OADpB,CAIA,IAAMC,EAAW3C,EAASnI,YACpB+K,EAAcD,EAAWD,EAC/B1C,EAAS6C,UAAY,CAAEC,SAAUH,EAAUhH,KAAMiH,GACjD9C,EAAW/L,OAAO,GAClBiM,EAASnI,UAAU+K,EALnB,CANA,CAYF,EAEAG,gBAAe,WACbjD,EAAW/L,OAAO,GAClB+L,EAAWJ,MAAMsD,OACnB,EAEAC,mBAAkB,WAChBlD,EAAchM,OAAO,GACrBgM,EAAcL,MAAMsD,OACtB,EAEAE,gBAAe,SAAChH,EAAMQ,GACpBoD,EAAWJ,MAAM/F,OAAOuC,EAAMQ,GAC9BqD,EAAcL,MAAM/F,OAAOuC,EAAMQ,EACnC,EAEAyG,WAAU,SAACjH,GAET,OADAnH,KAAKmO,gBAAgBhH,GACdjB,EAAOtB,OAAOuC,EACvB,IAGK8D,CACT,C,6sBCaA,QArOa,WAEX,SAAAoD,EAAYC,EAAQC,EAAQC,EAAOvD,EAAU/E,EAAQuI,EAAUC,I,4FAAQ/R,CAAA,KAAA0R,GACrErO,KAAKuO,OAASA,EACdvO,KAAKwO,MAAQA,EACbxO,KAAKiL,SAAWA,EAChBjL,KAAKkG,OAASA,EAEdlG,KAAKyO,SAAWA,EAChBzO,KAAK0O,OAASA,EAEd1O,KAAK2O,WAAY,EACjB3O,KAAK4O,UAAW,EAEhB,IAAMC,EAAgB5D,EAASG,WAC/BpL,KAAK8O,WAAaD,EAAcE,QAAUF,EAAgBP,EAE1DtO,KAAKgP,cAAgB,CAAC,EACtBhP,KAAKiP,cAAcT,EAAMU,SACzBlP,KAAKmP,uBACP,C,UA6MC,O,EA7MAd,E,EAAA,EAAAzR,IAAA,gBAAAC,MAED,SAAcuS,GACZ,GAAKA,IAAiBA,EAAcA,EAAYC,QAAQ,cAAe,KAAvE,CAGA,IAAIC,EAEJ,IACEtP,KAAKuO,OAAOa,GAAaG,OAAOvP,KAAK8O,WAAY,CAAC,GAClDQ,EAAiBtP,KAAKuO,OAAOa,EAAZpP,CAAyBA,KAAK8O,WACjD,CACA,MAAOU,GAIL,MAHAA,EAAMC,QAAU,qEAAAjF,OACE4E,EAAW,mBAC3BI,EAAMC,QACFD,CACR,CAEA3P,QAAQyG,OAAOgJ,EAAgBtP,KAAKgP,eACpChP,KAAKgP,cAAgBM,CAfrB,CAgBF,GAAC,CAAA1S,IAAA,wBAAAC,MAED,WAGE,IAHsB,IAAA6S,EAAA,KAEhBC,EAAgB,CAAC,SAAU,eAAgB,SAAU,UAAW,QAAS,QAAS,WAC/EvO,EAAIuO,EAAcjO,OAAS,EAAGN,GAAK,EAAGA,IAC7CpB,KAAKgP,cAAcW,EAAcvO,IAAMpB,KAAK2P,EAAcvO,IAAIwO,KAAK5P,MAKrE,IADA,IAAM6P,EAAc,CAAC,YAAa,aAAc,oBAAqB,kBAAmB,gBAAiB,uBAAwB,sBAAsBC,EAAA,SAAAC,GAErJ,IAAIC,EAAUC,EAAOP,EAAKlB,MAAMqB,EAAYzO,IAC5C+E,OAAO+J,eAAeR,EAAMG,EAAYzO,GAAI,CAC1CqC,IAAK,kBAAMuM,CAAQ,EACnBG,IAAK,SAACtT,GACJmT,EAAWnT,EACX6S,EAAKV,cAAca,EAAYzO,IAAMvE,EACjCoT,GACFP,EAAKnB,OAAO0B,GAAMV,OAAOG,EAAKZ,WAAYjS,EAE9C,GAEJ,EAZSuE,EAAIyO,EAAYnO,OAAS,EAAGN,GAAK,EAAGA,IAAG0O,EAAAC,GAgBhD,IADA,IAAMK,EAAuB,CAAC,cAAe,aAAc,gBAAgBC,EAAA,SAAAC,GAEzEnK,OAAO+J,eAAeR,EAAKV,cAAeoB,EAAqBhP,GAAI,CACjEqC,IAAK,kBAAMiM,EAAKU,EAAqBhP,GAAG,GAE5C,EAJSA,EAAIgP,EAAqB1O,OAAS,EAAGN,GAAK,EAAGA,IAAGiP,EAAAC,GAOzDnK,OAAO+J,eAAelQ,KAAKgP,cAAe,WAAY,CACpDvL,IAAK,kBAAMiM,EAAKd,QAAQ,EACxBuB,IAAK,SAACtT,GAAK,OAAQ6S,EAAKd,SAAW/R,GAA4B,KAAlB6S,EAAKjB,UAAiB,GAEvE,GAAC,CAAA7R,IAAA,UAAAC,MAED,SAAQA,GACNmD,KAAK2O,UAAY9R,CACnB,GAAC,CAAAD,IAAA,QAAAC,MAED,WACE,OAAOmD,KAAKkG,OAAOQ,GACrB,GAAC,CAAA9J,IAAA,QAAAC,MAED,WACE,OAAOmD,KAAKkG,OAAOO,GACrB,GAAC,CAAA7J,IAAA,UAAAC,MAED,WACE,OAAQmD,KAAKkG,OAAOxE,MACtB,GAAC,CAAA9E,IAAA,eAAA6G,IAED,WACE,OAAOzD,KAAKkG,OAAO6C,WAAWrH,MAChC,GAAC,CAAA9E,IAAA,cAAA6G,IAED,WACE,OAAOzD,KAAKkG,OAAO+C,cACrB,GAAC,CAAArM,IAAA,aAAA6G,IAED,WACE,OAAOzD,KAAKkG,OAAOiD,aACrB,GAAC,CAAAvM,IAAA,SAAAC,MAED,SAAO0T,GACLvQ,KAAKkG,OAAOe,OAAOsJ,GACnBvQ,KAAKyO,WACLzO,KAAKiL,SAASuB,UACdxM,KAAKiL,SAASe,YAChB,GAAC,CAAApP,IAAA,UAAAC,MAED,SAAQ0T,GAAwB,IAAdC,EAAOhO,UAAAd,OAAA,QAAAe,IAAAD,UAAA,GAAAA,UAAA,GAAG,CAAC,EAC3BxC,KAAKkG,OAAOzE,QAAQ8O,EAAUC,EAAQjJ,cACtCvH,KAAKyO,WACLzO,KAAKiL,SAASuB,UACdxM,KAAKiL,SAASe,YAChB,GAAC,CAAApP,IAAA,eAAAC,MAED,SAAamL,EAAMC,EAAMwI,GACH,mBAATzI,EACThI,KAAK0Q,iBAAiB1I,EAAMC,GAE5BjI,KAAK2Q,kBAAkB3I,EAAMC,EAAMwI,GAErCzQ,KAAKyO,UACP,GAAC,CAAA7R,IAAA,mBAAAC,MAED,SAAiB+T,GAAkB,IAAAC,EAAA,KAAdL,EAAOhO,UAAAd,OAAA,QAAAe,IAAAD,UAAA,GAAAA,UAAA,GAAG,CAAC,EAC9BxC,KAAKkG,OAAO4K,MAAM,GAAG9P,SAAQ,SAACuD,GAG5BsM,EAAKE,YAAYxM,EAASqM,EAAGrM,EAAQ4C,KAAM5C,EAAQM,MAAON,EAAQzH,SAAU0T,EAC9E,GACF,GAAC,CAAA5T,IAAA,oBAAAC,MAED,SAAkBiH,EAAOyM,GAAwB,IAAdC,EAAOhO,UAAAd,OAAA,QAAAe,IAAAD,UAAA,GAAAA,UAAA,GAAG,CAAC,EAC5C,GAAIsB,EAAQ,GAAM,EAChB,MAAM,IAAIlC,MAAM,kBAAoBkC,EAAQ,gDAE9C,IAAMkN,EAASlN,EAAQ9D,KAAKkG,OAAOS,MAG/BqK,GAAU,GAAKA,EAAShR,KAAKkG,OAAOxE,OACtC1B,KAAK+Q,YAAY/Q,KAAKkG,OAAO8K,GAAST,EAAUC,GAG1C1M,GAAS9D,KAAKkG,OAAOiC,kBAAoBrE,GAAS9D,KAAKkG,OAAOqC,kBACjE1I,QAAQoR,QAAQV,KAAcA,EAAS7O,SACxC1B,KAAKiL,SAASkD,gBAAgBrK,GAAQ0M,EAAQjJ,cAAgBzD,IAAU9D,KAAKkG,OAAOW,UAC/E2J,EAAQjJ,cAAgBzD,IAAU9D,KAAKkG,OAAOiC,iBAIjDnI,KAAKkG,OAAOmC,oBAHZrI,KAAKkG,OAAOkC,oBAOpB,GAAC,CAAAxL,IAAA,cAAAC,MAED,SAAY0H,EAASgM,GAAwB,IAAAW,EAAA,KAAdV,EAAOhO,UAAAd,OAAA,QAAAe,IAAAD,UAAA,GAAAA,UAAA,GAAG,CAAC,EACxC,GAAK3C,QAAQoR,QAAQV,GAArB,CAGA,IAAI3C,EAAW5N,KAAKkG,OAAOgC,QAAQ3D,GAC9BgM,EAAS/I,UAAU2J,MAAK,SAAAC,GAAO,OAAIA,IAAY7M,EAAQ4C,IAAI,MAC9D5C,EAAQqD,GAAKpC,EAAWI,OAEnB4K,EAAQjJ,cAAiBgJ,EAAS7O,SAGrB,IAAbkM,GAAkB5N,KAAKkG,OAAOQ,KACjB,IAAbkH,GAAkB5N,KAAKkG,OAAO0H,EAAW,GAAGjG,YAE7CpD,EAAQoD,UAAW,IAIzB4I,EAASvP,SAAQ,SAACoQ,GACZA,IAAY7M,EAAQ4C,KACtByG,IAGAsD,EAAKhL,OAAOkB,OAAOwG,EAAW,EAAGwD,GAAUZ,EAAQjJ,eAA8B,IAAdqG,EAEvE,GAtBA,CAuBF,GAAC,CAAAhR,IAAA,sBAAAC,MAED,WAKE,IAJA,IAAIwU,EAAS,KAAMC,EAAY,EAC3BC,GAAU,EAAOC,GAAa,EAC5B9P,EAAS1B,KAAKkG,OAAOxE,OAElBN,EAAI,EAAGA,EAAIM,EAAQN,IAAK,CAC/B,IAAM+F,EAAOnH,KAAKkG,OAAO9E,GACnBqQ,EAAUtK,EAAKrK,QAAQoF,SAASzE,IAEtC,GAAI4T,IAAWI,EAAS,CACtB,IAAMtF,EAAahF,EAAKrK,QAAQiF,aAAY,GACtCtE,EAAMuC,KAAKiL,SAASQ,aAAe6F,EAAYnF,GAEhDoF,GAAW9T,EAAMuC,KAAKiL,SAASU,kBAClC4F,GAAU,EACVvR,KAAiB,WAAImH,EAAKA,KAC1BnH,KAAwB,kBAAImH,EAAKrK,QACjCkD,KAAsB,gBAAImH,EAAKtC,QAE5B2M,IAAe/T,GAAOuC,KAAKiL,SAASS,oBAAuBtK,IAAMM,EAAS,GAAK1B,KAAK0R,WACvFF,GAAa,EACbxR,KAAoB,cAAImH,EAAKA,KAC7BnH,KAA2B,qBAAImH,EAAKrK,QACpCkD,KAAyB,mBAAImH,EAAKtC,OAEpCyM,GAAanF,CACf,CAGA,GAFAkF,EAASI,EAELF,GAAWC,EACb,KAEJ,CACF,I,iFAACnD,CAAA,CAjOU,GCKbxO,QAAQ8R,OAAO,YAAa,IAEzBC,SAAS,eAAgBlV,GACzBmV,IAAI,CAAC,eAAgB,SAACnV,GACrB,IAAMoV,EAAMjS,QAAQ/C,UAClBwD,OAAOyR,QAAUD,EAAIE,IAAMF,EAAIE,GAAGC,UAAW,IAAIvV,GAAgBwV,YAAYJ,GAC/E1O,EAAgB+O,aAClB,IAECC,UAAU,oBAAoB,WAC7B,MAAO,CACLC,SAAU,IACVC,WAAY,CACV,SACA,WACA,SAAUzN,EAAO/H,GAAS,IAAA4S,EAAA,KAWxB,OAVA1P,KAAKkL,UAAYpO,EACjBkD,KAAKiL,SAAWnO,EAChBkD,KAAK6E,MAAQA,EAEbhF,QAAQmB,QAAQlE,EAAQqE,YAAY,SAAAoR,GACE,UAAhCA,EAAMjI,QAAQC,gBAChBmF,EAAKzE,SAAWpL,QAAQ/C,QAAQyV,GAEpC,IAEOvS,IACT,GAGN,IAECoS,UAAU,WAAY,CACrB,OACA,YACA,aACA,WACA,YACA,KACA,SACA,SAAUI,EAASnP,EAAWyH,EAAY2H,EAAUC,EAAWpP,EAAIiL,GAEjE,MAAO,CACLoE,QAAS,CAAC,sBACVN,SAAU,IACVO,WAAY,UACZC,SAAU,IACVC,UAAU,EACVC,KAGF,SAAczE,EAAQxR,EAAS0R,EAAOwE,EAAaC,GACjD,IAAMC,EAAQ1E,EAAM2E,SAASD,MAAM,uCACnC,IAAKA,EACH,MAAM,IAAItR,MAAM,kEAAuE4M,EAAM2E,SAAW,KAG1G,SAASC,EAAYvW,EAAOwW,EAAcC,GAIxC,OAHKA,IACHzW,EAAkB,OAAVA,EAAiBwW,EAAehM,KAAKkM,MAAM1W,IAE9C2W,MAAM3W,GAASwW,EAAexW,CACvC,CAEA,SAAS4W,EAAiB5W,EAAOwW,EAAcC,GAE7C,OAAOF,EADQ7E,EAAO1R,EAAP0R,CAAcD,GACF+E,EAAcC,EAC3C,CAOA,IASII,EAAa,KACXC,EAAWT,EAAM,GACjBU,EAAiBV,EAAM,GACvBrI,EAAqBmI,EAAY,GACjChN,EAAaqB,KAAKC,IAbL,EAaqBmM,EAAiBjF,EAAMxI,WAZxC,KAajB9G,EAAUmI,KAAKC,IAZD,GAYkBmM,EAAiBjF,EAAMtP,QAXrC,IAW+D,IACjF2U,GApBoBhX,EAoBa2R,EAAMqF,cApBZR,GASF,EARvBjV,EAASmQ,EAAO1R,EAAP0R,CAAcD,GACJ,kBAAXlQ,EAAuBA,EAASiV,GAmB5CpN,EAAawN,EAAiBjF,EAAMvI,WAXZ,GAYxB6N,EAAY,EACZC,EAAU,GAERhO,EAAkB,IAAI3C,EAAgBC,EAAWC,GACjD4C,EAAS,IAAIJ,EAAaC,EAAiBC,EAAYC,GACvDgF,EAAW,IAAIL,EAAS7E,EAAiBG,EAAQpJ,EAAS+N,EAAoBC,EAAY5L,GAC1FgQ,EAAU,IAAIb,EAAQC,EAAQC,EAAQC,EAAOvD,EAAU/E,EAAQuI,GAkJrE,WACEuF,IACA/I,EAAS+C,kBACT/C,EAASiD,qBACL1L,UAAUd,SACZuE,EAAamN,EAAY5Q,UAAU,GAzKX,GAyKoC,IAE9D0D,EAAOM,MAAMP,GACbgO,EAAuBP,EAAY,YACnCO,EAAuBP,EAAY,YACnCjF,GACF,IAzLA,IAA0B5R,EAAOwW,EACzBjV,EA6BJyM,IACFA,EAAmBqE,QAAUA,GAG/B,IAAMgF,EAAoB,WAAH,MAC0B,oBAA/C/N,OAAOrG,UAAUqU,SAASpW,KAAK2V,IAA+D,mBAAnBA,EAAWjQ,GAAkB,EAG1G,KADAiQ,EAAanF,EAAOqF,EAAPrF,CAAuBD,GAC/B4F,MACHR,EAAarQ,EAAUI,IAAImQ,GACtBM,MACH,MAAM,IAAItS,MAAMgS,EAAiB,8BAIrC,IAAIQ,EAAmB,GAKvB,SAASH,EAAuBP,EAAYW,GAC1C,IAAIC,EAEAzU,QAAQiC,SAAS4R,EAAWW,MAC9BC,EAASZ,EAAWW,GAChBxU,QAAQiC,SAASwS,KACnBF,EAAmBA,EAAiBpL,QAAO,SAAAuL,GAAO,OAAIA,EAAQC,KAAOH,CAAQ,KAC5DvM,KAAK,CACpB0M,GAAIH,EACJxC,IAAK,kBAAM6B,EAAWW,GAAYC,CAAM,IAIhD,CAEA,SAASG,EAAsBf,EAAYW,EAAUK,GACnD,IAIIJ,EAJEK,EAAaxO,OAAOyO,yBAAyBlB,EAAYW,GAC3DM,IAAeA,EAAWxE,KAAOwE,EAAWlR,OAIhDwQ,EAAuBP,EAAYW,GACnClO,OAAO+J,eAAewD,EAAYW,EAAU,CAC1ClE,IAAK,SAACtT,GAEJ,GADAyX,EAASzX,GACLkX,EAAQrS,QAAWwE,EAAOxE,OAA9B,CAIAwE,EAAOwO,GAAgB7X,EACvB,IAAMyQ,EAAsBrC,EAASQ,aACrCR,EAASqB,iBACQ,aAAb+H,GACFpJ,EAASoC,mBAAmBC,EAL9B,MAFE2G,EAAuBP,EAAYW,EASvC,EACA5Q,IAAK,kBAAM6Q,CAAM,IAErB,CAEAG,EAAsBf,EAAY,WAAY,gBAC9Ce,EAAsBf,EAAY,WAAY,gBAE9C,IAAMmB,EAAuC,IAA1BnB,EAAWjQ,IAAI/B,OAChC,SAACoT,GAAO,OAAKpB,EAAWjQ,IAAIyC,EAAOU,KAAMZ,EAAY8O,EAAQ,EAC7D,SAACA,GACCpB,EAAWjQ,IAAI,CACbK,MAAOoC,EAAOU,KACdK,OAAQf,EAAOxE,OAASwE,EAAOA,EAAOxE,OAAS,GAAGyF,UAAO,EACzD4N,MAAO/O,GACN8O,EACL,EAEIE,EAA2C,IAA1BtB,EAAWjQ,IAAI/B,OACpC,SAACoT,GAAO,OAAKpB,EAAWjQ,IAAIyC,EAAOS,MAAQX,EAAYA,EAAY8O,EAAQ,EAC3E,SAACA,GACCpB,EAAWjQ,IAAI,CACbK,MAAOoC,EAAOS,MAAQX,EACtBvE,QAASyE,EAAOxE,OAASwE,EAAO,GAAGiB,UAAO,EAC1C4N,MAAO/O,GACN8O,EACL,EAiDF,SAASG,EAAUC,GACjB,OAAQA,GAAOA,IAAQpB,GAAcxF,EAAO6G,WAC9C,CAOA,SAASnB,IACP/I,EAASmK,IAAI,SAAUC,GACvBpK,EAASmK,IAAI,SAAUC,EACzB,CAeA,SAASC,EAAiB/Q,GACxB,OAAOA,EAAQzH,QAAQkC,UAAYuF,EAAQzH,QAAQ,GAAGgM,YACxD,CAgBA,SAASyM,EAAqBhR,EAASiR,GACrCC,EAAclR,EAASiR,EAAavK,EAASlG,eACxCuQ,EAAiB/Q,KACpBA,EAAQmR,4BAA8BnR,EAAQM,MAAM8Q,QAAO,kBAjB/D,SAA2BpR,GACrB+Q,EAAiB/Q,KACnB2B,EAAOlF,SAAQ,SAACmG,GACkC,mBAArCA,EAAKuO,8BACdvO,EAAKuO,qCACEvO,EAAKuO,4BAEhB,IACK3B,EAAQrS,QACX+Q,GAAS,kBAAMhE,GAAU,IAG/B,CAKqEmH,CAAkBrR,EAAQ,KAE7FwB,EAAgB8P,YAAYtR,EAC9B,CAEA,SAASkR,EAAclR,EAASiR,EAAazQ,GAC3C,IAAI+Q,EAAW,KACTjK,EAAW2J,EAAc,EAAKtP,EAAOsP,EAAc,GAAG1Y,aAAU2F,EAQtE,GAPAwQ,GAAO,SAAC8C,EAAOlR,GACbiR,EAAW/Q,EAAcgR,EAAOlK,GAChCtH,EAAQzH,QAAUiZ,EAClBxR,EAAQM,MAAQA,EAChBA,EAAM8O,GAAYpP,EAAQ4C,IAC5B,IAEI+H,EAAQ8G,UAAW,CACrB,IAAMC,EAAgB1R,EAAQM,MAAMqR,sBAChCD,GAAiBA,EAAcE,QACjCjH,EAAQ8G,UAAUzR,EAAQM,MAAON,EAAQzH,SAEzCyH,EAAQM,MAAMqR,sBAAwB,CACpCE,OAAQ,kBAAMlH,EAAQ8G,UAAUzR,EAAQM,MAAON,EAAQzH,QAAQ,EAC/D+H,MAAON,EAAQM,MAGrB,CACA,OAAOiR,CACT,CA+CA,SAASO,EAAenB,EAAKzH,GAEvBA,EAAQ6I,SAAS5U,OACnB4B,EAAGiT,IAAI9I,EAAQ6I,UAAU/Q,MAAK,WAC5B0F,EAASqB,iBACTmC,EAASyG,EACX,IAEAjK,EAASqB,gBAEb,CAEA,SAASkK,EAAatB,EAAKzH,GACrBxC,EAASc,qBACN0B,GAAWvH,EAAOsC,gBAAgBiF,EAAQgJ,UAAY,IAE9B,IAAvB1C,EAAQjM,MAAK,KACfoH,EAAQwH,SAAQ,GAChBC,EAAMzB,IAGDjK,EAASsB,mBACZkB,GAAWvH,EAAOsC,gBAAgBiF,EAAQC,WAAa,GAAMqG,EAAQ,KAI7C,IAAxBA,EAAQjM,MAAK,KACfoH,EAAQwH,SAAQ,GAChBC,EAAMzB,GAId,CAEA,SAAS0B,IACP,IA/EId,EACEe,EACAC,EACAL,EA4EAhJ,GA/EFqI,EAAW,GACTe,EAAgB,GAChBC,EAAc,GACdL,EAAW,GAEjBvQ,EAAOlF,SAAQ,SAACuD,EAASnD,GACvB,OAAQmD,EAAQqD,IACd,KAAKpC,EAAWC,QACdoR,EAAc9O,QAAQxD,GACtB,MACF,KAAKiB,EAAWE,OACd6P,EAAqBhR,EAASnD,GAC9BmD,EAAQqD,GAAKpC,EAAWK,KACxB4Q,EAAS3O,KAAKvD,GACd,MACF,KAAKiB,EAAWG,OACdmQ,EAAWA,EAAStL,OAAOiL,EAAclR,EAASnD,EAAG6J,EAASa,wBAC9DvH,EAAQqD,GAAKpC,EAAWK,KACxB4Q,EAAS3O,KAAKvD,GACd,MACF,KAAKiB,EAAWI,OACdkR,EAAYhP,KAAKvD,GAEvB,IAEAuS,EAAY9V,SAAQ,SAACuD,GAAO,OAAKuR,EAAWA,EAAStL,OAAOS,EAASmD,WAAW7J,GAAS,IAErFsS,EAAcnV,QAChBmV,EAAc7V,SAAQ,SAACuD,GACrBgR,EAAqBhR,GACrBA,EAAQqD,GAAKpC,EAAWK,IAC1B,IAEFK,EAAOlF,SAAQ,SAACmG,EAAM/F,GAAC,OAAK+F,EAAKtC,MAAMyE,OAASpD,EAAOS,MAAQvF,CAAC,IAEzD,CACLsM,UAAWmJ,EACXE,QAASD,EACTL,SAAUA,EACVH,SAAUR,IA+CZ,OAJCxH,EAAO0I,UAAYlM,EAAWkM,SAAW1I,EAAO2I,UAEjDxJ,EAAQgJ,SAASzV,SAAQ,SAAAkW,GAAC,OAAInR,EAAgBoR,YAAYD,EAAE,IAC5DzJ,EAAQC,UAAU1M,SAAQ,SAAAkW,GAAC,OAAInR,EAAgBoR,YAAYD,EAAE,IACtDzJ,CACT,CAEA,SAASgB,EAASyG,GACXA,IACHnB,EAAU,GACVmB,IAAQpB,GAGV,IAAMrG,EAAUmJ,IAEZ3B,EAAUC,KAIdmB,EAAenB,EAAKzH,GACpB+I,EAAatB,GAERnB,EAAQrS,QACXwN,EAAQkI,sBAEZ,CAEA,SAASC,EAAmBnC,GAC1B,IAAMzH,EAAUmJ,IAEhB3L,EAASuC,eAAeC,GAEpBwH,EAAUC,KAIdmB,EAAenB,EAAKzH,GArTpB2G,EAAiBpT,SAAQ,SAAAuT,GAAO,OAAIA,EAAQ1C,KAAK,IACjDuC,EAAmB,GAsTnBoC,EAAatB,EAAKzH,GAClBsG,EAAQuD,QAEJvD,EAAQrS,OACViV,EAAMzB,IAENhG,EAAQwH,SAAQ,GAvMlBzL,EAASsM,GAAG,SAAUlC,GACtBpK,EAASsM,GAAG,SAAUlC,GAwMpBnG,EAAQkI,uBAEZ,CAEA,SAAST,EAAMzB,GACTnB,EAAQ,GACN7N,EAAOxE,SAAWuJ,EAASc,mBAC7BsL,EAAmBnC,GAEnBL,GAAU,SAACzW,GACL6W,EAAUC,KAIV9W,EAAOsD,OAASsE,IAClBE,EAAOO,KAAM,GAGXrI,EAAOsD,OAAS,IAClBuJ,EAASuB,UACTtG,EAAOe,OAAO7I,IAGhBiZ,EAAmBnC,GACrB,IAGEhP,EAAOxE,SAAWuJ,EAASsB,gBAC7B8K,EAAmBnC,GAEnBF,GAAc,SAAC5W,GACT6W,EAAUC,KAIV9W,EAAOsD,OAASsE,IAClBE,EAAOQ,KAAM,GAIXtI,EAAOsD,OAAS,IACdwE,EAAOxE,QACTuJ,EAASe,aAEX9F,EAAOzE,QAAQrD,IAGjBiZ,EAAmBnC,GACrB,GAGN,CAwBA,SAASG,IACHxB,GAvBN,WACE,GAAK5I,EAAS6C,UAAd,CAGA,IAAM0J,EAAcvM,EAAS6C,UAAUC,SACjCF,EAAc5C,EAAS6C,UAAUlH,KACvC,GAAIqE,EAASnI,cAAgB+K,EAW3B,OAVA4J,uBAAsB,WACpB,IAAM7J,EAAW3C,EAASnI,YACpByK,EAAOiK,EAAc5J,EACvBL,EAAO,EACTtC,EAASnI,UAAU+K,EAAcN,GAEjCtC,EAASnI,UAAU+K,GAErB5C,EAAS6C,UAAY,IACvB,KACO,EAET7C,EAAS6C,UAAY,IAhBrB,CAiBF,CAGuB4J,IAGhB5M,EAAWkM,SAAY9H,EAAQP,WAAcO,EAAQN,WAExD4H,EAAa1C,GAETC,EAAQrS,OACVsS,KAEA9E,EAAQkI,uBACP9I,EAAO0I,SAAW1I,EAAO2I,WAGhC,CAEA,SAASU,GAAaC,GACpB,IAAK1I,EAAQN,SAAU,CACrB,IAAM9L,EAAYmI,EAAS,GAAGnI,UACxB+U,EAAO5M,EAAS,GAAGO,aAAeP,EAAS,GAAG6M,cAEjC,IAAdhV,IAAoBoD,EAAOQ,KAAS5D,IAAc+U,IAAS3R,EAAOO,MACrEmR,EAAMG,gBAEV,CACF,CAvUA9E,GAAO,SAAC8C,EAAOlR,GACboG,EAASI,sBAAsB0K,EAAM,IAIrClR,EAAMC,WACNiR,EAAMnR,QACR,IAEA0J,EAAO0J,IAAI,YAAY,WACrBhE,IACA/I,EAASmK,IAAI,aAAcuC,GAC7B,IAEA1M,EAASsM,GAAG,aAAcI,IAzCP,WACjB,IAAIM,EAAW,EACf,GAAKhN,EAASK,sBAcZmD,SAbA,IAAMyJ,EAAQxF,GAAU,WAMtB,GALAuF,IACIhN,EAASK,wBACXoH,EAAUyF,OAAOD,GACjBzJ,KA5G0B,GA8GxBwJ,GA/GiB,IAiHnB,MADAvF,EAAUyF,OAAOD,GACXtW,MAAM,mEAAD4I,OAjHQ,IAiH8E,MAErG,GAlH8B,GAuHlC,CAyBA4N,EAwTF,EAEF,G","sources":["webpack://angular-ui-scroll/./src/modules/jqLiteExtras.js","webpack://angular-ui-scroll/./src/modules/elementRoutines.js","webpack://angular-ui-scroll/./src/modules/utils.js","webpack://angular-ui-scroll/./src/modules/buffer.js","webpack://angular-ui-scroll/./src/modules/padding.js","webpack://angular-ui-scroll/./src/modules/viewport.js","webpack://angular-ui-scroll/./src/modules/adapter.js","webpack://angular-ui-scroll/./src/ui-scroll.js"],"sourcesContent":["/*!\r\n globals: angular, window\r\n List of used element methods available in JQuery but not in JQuery Lite\r\n element.before(elem)\r\n element.height()\r\n element.outerHeight(true)\r\n element.height(value) = only for Top/Bottom padding elements\r\n element.scrollTop()\r\n element.scrollTop(value)\r\n */\r\n\r\nexport default class JQLiteExtras {\r\n\r\n registerFor(element) {\r\n let convertToPx, css, getStyle, isWindow;\r\n // angular implementation blows up if elem is the window\r\n css = angular.element.prototype.css;\r\n\r\n element.prototype.css = function (name, value) {\r\n let self = this;\r\n let elem = self[0];\r\n if (!(!elem || elem.nodeType === 3 || elem.nodeType === 8 || !elem.style)) {\r\n return css.call(self, name, value);\r\n }\r\n };\r\n\r\n // as defined in angularjs v1.0.5\r\n isWindow = (obj) => obj && obj.document && obj.location && obj.alert && obj.setInterval;\r\n\r\n function scrollTo(self, direction, value) {\r\n let elem = self[0];\r\n let [method, prop, preserve] = {\r\n top: [\r\n 'scrollTop',\r\n 'pageYOffset',\r\n 'scrollLeft'\r\n ],\r\n left: [\r\n 'scrollLeft',\r\n 'pageXOffset',\r\n 'scrollTop'\r\n ]\r\n }[direction];\r\n\r\n const isValueDefined = typeof value !== 'undefined';\r\n if (isWindow(elem)) {\r\n if (isValueDefined) {\r\n return elem.scrollTo(self[preserve].call(self), value);\r\n }\r\n return (prop in elem) ? elem[prop] : elem.document.documentElement[method];\r\n } else {\r\n if (isValueDefined) {\r\n elem[method] = value;\r\n }\r\n return elem[method];\r\n }\r\n }\r\n\r\n if (window.getComputedStyle) {\r\n getStyle = (elem) => window.getComputedStyle(elem, null);\r\n convertToPx = (elem, value) => parseFloat(value);\r\n } else {\r\n getStyle = (elem) => elem.currentStyle;\r\n convertToPx = (elem, value) => {\r\n let left, result, rs, rsLeft, style;\r\n let core_pnum = /[+-]?(?:\\d*\\.|)\\d+(?:[eE][+-]?\\d+|)/.source;\r\n let rnumnonpx = new RegExp('^(' + core_pnum + ')(?!px)[a-z%]+$', 'i');\r\n\r\n if (!rnumnonpx.test(value)) {\r\n return parseFloat(value);\r\n }\r\n\r\n // ported from JQuery\r\n style = elem.style;\r\n left = style.left;\r\n rs = elem.runtimeStyle;\r\n rsLeft = rs && rs.left;\r\n if (rs) {\r\n rs.left = style.left;\r\n }\r\n // put in the new values to get a computed style out\r\n style.left = value;\r\n result = style.pixelLeft;\r\n style.left = left;\r\n if (rsLeft) {\r\n rs.left = rsLeft;\r\n }\r\n return result;\r\n };\r\n }\r\n\r\n function getMeasurements(elem, measure) {\r\n let base, borderA, borderB, computedMarginA, computedMarginB, computedStyle, dirA, dirB, marginA, marginB, paddingA, paddingB;\r\n\r\n if (isWindow(elem)) {\r\n base = document.documentElement[{height: 'clientHeight', width: 'clientWidth'}[measure]];\r\n\r\n return {\r\n base: base,\r\n padding: 0,\r\n border: 0,\r\n margin: 0\r\n };\r\n }\r\n\r\n // Start with offset property\r\n [\r\n base,\r\n dirA,\r\n dirB\r\n ] = {\r\n width: [\r\n elem.offsetWidth,\r\n 'Left',\r\n 'Right'\r\n ],\r\n height: [\r\n elem.offsetHeight,\r\n 'Top',\r\n 'Bottom'\r\n ]\r\n }[measure];\r\n\r\n computedStyle = getStyle(elem);\r\n paddingA = convertToPx(elem, computedStyle['padding' + dirA]) || 0;\r\n paddingB = convertToPx(elem, computedStyle['padding' + dirB]) || 0;\r\n borderA = convertToPx(elem, computedStyle['border' + dirA + 'Width']) || 0;\r\n borderB = convertToPx(elem, computedStyle['border' + dirB + 'Width']) || 0;\r\n computedMarginA = computedStyle['margin' + dirA];\r\n computedMarginB = computedStyle['margin' + dirB];\r\n\r\n // I do not care for width for now, so this hack is irrelevant\r\n // if ( !supportsPercentMargin )\r\n // computedMarginA = hackPercentMargin( elem, computedStyle, computedMarginA )\r\n // computedMarginB = hackPercentMargin( elem, computedStyle, computedMarginB )\r\n marginA = convertToPx(elem, computedMarginA) || 0;\r\n marginB = convertToPx(elem, computedMarginB) || 0;\r\n\r\n return {\r\n base: base,\r\n padding: paddingA + paddingB,\r\n border: borderA + borderB,\r\n margin: marginA + marginB\r\n };\r\n }\r\n\r\n function getWidthHeight(elem, direction, measure) {\r\n let computedStyle, result;\r\n\r\n let measurements = getMeasurements(elem, direction);\r\n\r\n if (measurements.base > 0) {\r\n return {\r\n base: measurements.base - measurements.padding - measurements.border,\r\n outer: measurements.base,\r\n outerfull: measurements.base + measurements.margin\r\n }[measure];\r\n }\r\n\r\n // Fall back to computed then uncomputed css if necessary\r\n computedStyle = getStyle(elem);\r\n result = computedStyle[direction];\r\n\r\n if (result < 0 || result === null) {\r\n result = elem.style[direction] || 0;\r\n }\r\n\r\n // Normalize \"\", auto, and prepare for extra\r\n result = parseFloat(result) || 0;\r\n\r\n return {\r\n base: result - measurements.padding - measurements.border,\r\n outer: result,\r\n outerfull: result + measurements.padding + measurements.border + measurements.margin\r\n }[measure];\r\n }\r\n\r\n // define missing methods\r\n return angular.forEach({\r\n before(newElem) {\r\n var children, elem, i, j, parent, ref, self;\r\n self = this;\r\n elem = self[0];\r\n parent = self.parent();\r\n children = parent.contents();\r\n if (children[0] === elem) {\r\n return parent.prepend(newElem);\r\n } else {\r\n for (i = j = 1, ref = children.length - 1; 1 <= ref ? j <= ref : j >= ref; i = 1 <= ref ? ++j : --j) {\r\n if (children[i] === elem) {\r\n angular.element(children[i - 1]).after(newElem);\r\n return;\r\n }\r\n }\r\n throw new Error('invalid DOM structure ' + elem.outerHTML);\r\n }\r\n },\r\n height (value){\r\n var self;\r\n self = this;\r\n if (typeof value !== 'undefined') {\r\n if (angular.isNumber(value)) {\r\n value = value + 'px';\r\n }\r\n return css.call(self, 'height', value);\r\n } else {\r\n return getWidthHeight(this[0], 'height', 'base');\r\n }\r\n },\r\n outerHeight(option) {\r\n return getWidthHeight(this[0], 'height', option ? 'outerfull' : 'outer');\r\n },\r\n outerWidth(option) {\r\n return getWidthHeight(this[0], 'width', option ? 'outerfull' : 'outer');\r\n },\r\n\r\n /*\r\n The offset setter method is not implemented\r\n */\r\n offset(value) {\r\n let docElem, win;\r\n let self = this;\r\n let box = {\r\n top: 0,\r\n left: 0\r\n };\r\n let elem = self[0];\r\n let doc = elem && elem.ownerDocument;\r\n\r\n if (arguments.length) {\r\n if (value === undefined) {\r\n return self;\r\n }\r\n // TODO: implement setter\r\n throw new Error('offset setter method is not implemented');\r\n }\r\n\r\n if (!doc) {\r\n return;\r\n }\r\n\r\n docElem = doc.documentElement;\r\n\r\n // TODO: Make sure it's not a disconnected DOM node\r\n\r\n if (elem.getBoundingClientRect != null) {\r\n box = elem.getBoundingClientRect();\r\n }\r\n\r\n win = doc.defaultView || doc.parentWindow;\r\n\r\n return {\r\n top: box.top + (win.pageYOffset || docElem.scrollTop) - (docElem.clientTop || 0),\r\n left: box.left + (win.pageXOffset || docElem.scrollLeft) - (docElem.clientLeft || 0)\r\n };\r\n },\r\n scrollTop(value) {\r\n return scrollTo(this, 'top', value);\r\n },\r\n scrollLeft(value) {\r\n return scrollTo(this, 'left', value);\r\n }\r\n }, (value, key) => {\r\n if (!element.prototype[key]) {\r\n return element.prototype[key] = value;\r\n }\r\n });\r\n }\r\n\r\n}\r\n","const hideClassToken = 'ng-ui-scroll-hide';\r\n\r\nexport default class ElementRoutines {\r\n\r\n static addCSSRules() {\r\n const selector = '.' + hideClassToken;\r\n const rules = 'display: none';\r\n const sheet = document.styleSheets[0];\r\n let index;\r\n try {\r\n index = sheet.cssRules.length;\r\n } catch (err) {\r\n index = 0;\r\n }\r\n if('insertRule' in sheet) {\r\n sheet.insertRule(selector + '{' + rules + '}', index);\r\n }\r\n else if('addRule' in sheet) {\r\n sheet.addRule(selector, rules, index);\r\n }\r\n }\r\n\r\n constructor($injector, $q) {\r\n this.$animate = ($injector.has && $injector.has('$animate')) ? $injector.get('$animate') : null;\r\n this.isAngularVersionLessThen1_3 = angular.version.major === 1 && angular.version.minor < 3;\r\n this.$q = $q;\r\n }\r\n\r\n hideElement(wrapper) {\r\n wrapper.element.addClass(hideClassToken);\r\n }\r\n\r\n showElement(wrapper) {\r\n wrapper.element.removeClass(hideClassToken);\r\n }\r\n\r\n insertElement(newElement, previousElement) {\r\n previousElement.after(newElement);\r\n return [];\r\n }\r\n\r\n removeElement(wrapper) {\r\n wrapper.element.remove();\r\n wrapper.scope.$destroy();\r\n return [];\r\n }\r\n\r\n insertElementAnimated(newElement, previousElement) {\r\n if (!this.$animate) {\r\n return this.insertElement(newElement, previousElement);\r\n }\r\n\r\n if (this.isAngularVersionLessThen1_3) {\r\n const deferred = this.$q.defer();\r\n // no need for parent - previous element is never null\r\n this.$animate.enter(newElement, null, previousElement, () => deferred.resolve());\r\n\r\n return [deferred.promise];\r\n }\r\n\r\n // no need for parent - previous element is never null\r\n return [this.$animate.enter(newElement, null, previousElement)];\r\n }\r\n\r\n removeElementAnimated(wrapper) {\r\n if (!this.$animate) {\r\n return this.removeElement(wrapper);\r\n }\r\n\r\n if (this.isAngularVersionLessThen1_3) {\r\n const deferred = this.$q.defer();\r\n this.$animate.leave(wrapper.element, () => {\r\n wrapper.scope.$destroy();\r\n return deferred.resolve();\r\n });\r\n\r\n return [deferred.promise];\r\n }\r\n\r\n return [(this.$animate.leave(wrapper.element)).then(() => wrapper.scope.$destroy())];\r\n }\r\n}","export const OPERATIONS = {\r\n PREPEND: 'prepend',\r\n APPEND: 'append',\r\n INSERT: 'insert',\r\n REMOVE: 'remove',\r\n NONE: 'none'\r\n};\r\n","import { OPERATIONS } from './utils';\r\n\r\nexport default function ScrollBuffer(elementRoutines, bufferSize, startIndex) {\r\n const buffer = Object.create(Array.prototype);\r\n\r\n angular.extend(buffer, {\r\n size: bufferSize,\r\n\r\n reset(startIndex) {\r\n buffer.remove(0, buffer.length);\r\n buffer.eof = false;\r\n buffer.bof = false;\r\n buffer.first = startIndex;\r\n buffer.next = startIndex;\r\n buffer.minIndex = startIndex;\r\n buffer.maxIndex = startIndex;\r\n buffer.minIndexUser = null;\r\n buffer.maxIndexUser = null;\r\n },\r\n\r\n append(items) {\r\n items.forEach((item) => {\r\n ++buffer.next;\r\n buffer.insert(OPERATIONS.APPEND, item);\r\n });\r\n buffer.maxIndex = buffer.eof ? buffer.next - 1 : Math.max(buffer.next - 1, buffer.maxIndex);\r\n },\r\n\r\n prepend(items, immutableTop) {\r\n items.reverse().forEach((item) => {\r\n if (immutableTop) {\r\n ++buffer.next;\r\n }\r\n else {\r\n --buffer.first;\r\n }\r\n buffer.insert(OPERATIONS.PREPEND, item);\r\n });\r\n buffer.minIndex = buffer.bof ? buffer.minIndex = buffer.first : Math.min(buffer.first, buffer.minIndex);\r\n },\r\n\r\n /**\r\n * inserts wrapped element in the buffer\r\n * the first argument is either operation keyword (see below) or a number for operation 'insert'\r\n * for insert the number is the index for the buffer element the new one have to be inserted after\r\n * operations: 'append', 'prepend', 'insert', 'remove', 'none'\r\n */\r\n insert(operation, item, shiftTop) {\r\n const wrapper = {\r\n item: item\r\n };\r\n\r\n if (operation % 1 === 0) { // it is an insert\r\n wrapper.op = OPERATIONS.INSERT;\r\n buffer.splice(operation, 0, wrapper);\r\n if (shiftTop) {\r\n buffer.first--;\r\n }\r\n else {\r\n buffer.next++;\r\n }\r\n } else {\r\n wrapper.op = operation;\r\n switch (operation) {\r\n case OPERATIONS.APPEND:\r\n buffer.push(wrapper);\r\n break;\r\n case OPERATIONS.PREPEND:\r\n buffer.unshift(wrapper);\r\n break;\r\n }\r\n }\r\n },\r\n\r\n // removes elements from buffer\r\n remove(arg1, arg2) {\r\n if (angular.isNumber(arg1)) {\r\n // removes items from arg1 (including) through arg2 (excluding)\r\n for (let i = arg1; i < arg2; i++) {\r\n elementRoutines.removeElement(buffer[i]);\r\n }\r\n return buffer.splice(arg1, arg2 - arg1);\r\n }\r\n // removes single item (wrapper) from the buffer\r\n buffer.splice(buffer.indexOf(arg1), 1);\r\n if (arg1.shiftTop && buffer.first === this.getAbsMinIndex()) {\r\n this.incrementMinIndex();\r\n }\r\n else {\r\n this.decrementMaxIndex();\r\n }\r\n if (arg1.shiftTop) {\r\n buffer.first++;\r\n }\r\n else {\r\n buffer.next--;\r\n }\r\n if (!buffer.length) {\r\n buffer.minIndex = Math.min(buffer.maxIndex, buffer.minIndex);\r\n }\r\n\r\n return elementRoutines.removeElementAnimated(arg1);\r\n },\r\n\r\n incrementMinIndex() {\r\n if (buffer.minIndexUser !== null) {\r\n if (buffer.minIndex > buffer.minIndexUser) {\r\n buffer.minIndexUser++;\r\n return;\r\n }\r\n if (buffer.minIndex === buffer.minIndexUser) {\r\n buffer.minIndexUser++;\r\n }\r\n }\r\n buffer.minIndex++;\r\n },\r\n\r\n decrementMaxIndex() {\r\n if (buffer.maxIndexUser !== null && buffer.maxIndex <= buffer.maxIndexUser) {\r\n buffer.maxIndexUser--;\r\n }\r\n buffer.maxIndex--;\r\n },\r\n\r\n getAbsMinIndex() {\r\n if (buffer.minIndexUser !== null) {\r\n return Math.min(buffer.minIndexUser, buffer.minIndex);\r\n }\r\n return buffer.minIndex;\r\n },\r\n\r\n getAbsMaxIndex() {\r\n if (buffer.maxIndexUser !== null) {\r\n return Math.max(buffer.maxIndexUser, buffer.maxIndex);\r\n }\r\n return buffer.maxIndex;\r\n },\r\n\r\n effectiveHeight(elements) {\r\n if (!elements.length) {\r\n return 0;\r\n }\r\n let top = Number.MAX_VALUE;\r\n let bottom = Number.NEGATIVE_INFINITY;\r\n elements.forEach((wrapper) => {\r\n if (wrapper.element[0].offsetParent) {\r\n // element style is not display:none\r\n top = Math.min(top, wrapper.element.offset().top);\r\n bottom = Math.max(bottom, wrapper.element.offset().top + wrapper.element.outerHeight(true));\r\n }\r\n });\r\n return Math.max(0, bottom - top);\r\n },\r\n\r\n getItems() {\r\n return buffer.filter(item => item.op === OPERATIONS.NONE);\r\n },\r\n\r\n getFirstItem() {\r\n const list = buffer.getItems();\r\n if (!list.length) {\r\n return null;\r\n }\r\n return list[0].item;\r\n },\r\n\r\n getLastItem() {\r\n const list = buffer.getItems();\r\n if (!list.length) {\r\n return null;\r\n }\r\n return list[list.length - 1].item;\r\n }\r\n\r\n });\r\n\r\n buffer.reset(startIndex);\r\n\r\n return buffer;\r\n}\r\n","// Can't just extend the Array, due to Babel does not support built-in classes extending\r\n// This solution was taken from https://stackoverflow.com/questions/46897414/es6-class-extends-array-workaround-for-es5-babel-transpile\r\nclass CacheProto {\r\n add(item) {\r\n for (let i = this.length - 1; i >= 0; i--) {\r\n if (this[i].index === item.scope.$index) {\r\n this[i].height = item.element.outerHeight();\r\n return;\r\n }\r\n }\r\n this.push({\r\n index: item.scope.$index,\r\n height: item.element.outerHeight()\r\n });\r\n this.sort((a, b) => ((a.index < b.index) ? -1 : ((a.index > b.index) ? 1 : 0)));\r\n }\r\n\r\n remove(argument, _shiftTop) {\r\n const index = argument % 1 === 0 ? argument : argument.scope.$index;\r\n const shiftTop = argument % 1 === 0 ? _shiftTop : argument.shiftTop;\r\n for (let i = this.length - 1; i >= 0; i--) {\r\n if (this[i].index === index) {\r\n this.splice(i, 1);\r\n break;\r\n }\r\n }\r\n if (!shiftTop) {\r\n for (let i = this.length - 1; i >= 0; i--) {\r\n if (this[i].index > index) {\r\n this[i].index--;\r\n }\r\n }\r\n }\r\n }\r\n\r\n clear() {\r\n this.length = 0;\r\n }\r\n}\r\n\r\nfunction Cache() {\r\n const instance = [];\r\n instance.push.apply(instance, arguments);\r\n Object.setPrototypeOf(instance, Cache.prototype);\r\n return instance;\r\n}\r\nCache.prototype = Object.create(Array.prototype);\r\nObject.getOwnPropertyNames(CacheProto.prototype).forEach(methodName =>\r\n Cache.prototype[methodName] = CacheProto.prototype[methodName]\r\n);\r\n\r\nfunction generateElement(template) {\r\n if (template.nodeType !== Node.ELEMENT_NODE) {\r\n throw new Error('ui-scroll directive requires an Element node for templating the view');\r\n }\r\n let element;\r\n switch (template.tagName.toLowerCase()) {\r\n case 'dl':\r\n throw new Error(`ui-scroll directive does not support <${template.tagName}> as a repeating tag: ${template.outerHTML}`);\r\n case 'tr':\r\n let table = angular.element('
    ');\r\n element = table.find('tr');\r\n break;\r\n case 'li':\r\n element = angular.element('
  • ');\r\n break;\r\n default:\r\n element = angular.element('
    ');\r\n }\r\n return element;\r\n}\r\n\r\nclass Padding {\r\n constructor(template) {\r\n this.element = generateElement(template);\r\n this.cache = new Cache();\r\n }\r\n\r\n height() {\r\n return this.element.height.apply(this.element, arguments);\r\n }\r\n}\r\n\r\nexport default Padding;","import Padding from './padding';\r\n\r\nexport default function Viewport(elementRoutines, buffer, element, viewportController, $rootScope, padding) {\r\n let topPadding = null;\r\n let bottomPadding = null;\r\n const viewport = viewportController && viewportController.viewport ? viewportController.viewport : angular.element(window);\r\n const container = viewportController && viewportController.container ? viewportController.container : undefined;\r\n const scope = viewportController && viewportController.scope ? viewportController.scope : $rootScope;\r\n\r\n viewport.css({\r\n 'overflow-anchor': 'none',\r\n 'overflow-y': 'auto',\r\n 'display': 'block'\r\n });\r\n\r\n function bufferPadding() {\r\n return viewport.outerHeight() * padding; // some extra space to initiate preload\r\n }\r\n\r\n angular.extend(viewport, {\r\n getScope() {\r\n return scope;\r\n },\r\n\r\n createPaddingElements(template) {\r\n topPadding = new Padding(template);\r\n bottomPadding = new Padding(template);\r\n element.before(topPadding.element);\r\n element.after(bottomPadding.element);\r\n topPadding.height(0);\r\n bottomPadding.height(0);\r\n },\r\n\r\n applyContainerStyle() {\r\n if (!container) {\r\n return true;\r\n }\r\n if (container !== viewport) {\r\n viewport.css('height', window.getComputedStyle(container[0]).height);\r\n }\r\n return viewport.height() > 0;\r\n },\r\n\r\n bottomDataPos() {\r\n let scrollHeight = viewport[0].scrollHeight;\r\n scrollHeight = scrollHeight != null ? scrollHeight : viewport[0].document.documentElement.scrollHeight;\r\n return scrollHeight - bottomPadding.height();\r\n },\r\n\r\n topDataPos() {\r\n return topPadding.height();\r\n },\r\n\r\n bottomVisiblePos() {\r\n return viewport.scrollTop() + viewport.outerHeight();\r\n },\r\n\r\n topVisiblePos() {\r\n return viewport.scrollTop();\r\n },\r\n\r\n insertElement(e, sibling) {\r\n return elementRoutines.insertElement(e, sibling || topPadding.element);\r\n },\r\n\r\n insertElementAnimated(e, sibling) {\r\n return elementRoutines.insertElementAnimated(e, sibling || topPadding.element);\r\n },\r\n\r\n shouldLoadBottom() {\r\n return !buffer.eof && viewport.bottomDataPos() < viewport.bottomVisiblePos() + bufferPadding();\r\n },\r\n\r\n clipBottom() {\r\n // clip the invisible items off the bottom\r\n let overage = 0;\r\n let overageHeight = 0;\r\n let itemHeight = 0;\r\n let emptySpaceHeight = viewport.bottomDataPos() - viewport.bottomVisiblePos() - bufferPadding();\r\n\r\n for (let i = buffer.length - 1; i >= 0; i--) {\r\n itemHeight = buffer[i].element.outerHeight(true);\r\n if (overageHeight + itemHeight > emptySpaceHeight) {\r\n break;\r\n }\r\n bottomPadding.cache.add(buffer[i]);\r\n overageHeight += itemHeight;\r\n overage++;\r\n }\r\n\r\n if (overage > 0) {\r\n buffer.eof = false;\r\n buffer.remove(buffer.length - overage, buffer.length);\r\n buffer.next -= overage;\r\n viewport.adjustPaddings();\r\n }\r\n },\r\n\r\n shouldLoadTop() {\r\n return !buffer.bof && (viewport.topDataPos() > viewport.topVisiblePos() - bufferPadding());\r\n },\r\n\r\n clipTop() {\r\n // clip the invisible items off the top\r\n let overage = 0;\r\n let overageHeight = 0;\r\n let itemHeight = 0;\r\n let emptySpaceHeight = viewport.topVisiblePos() - viewport.topDataPos() - bufferPadding();\r\n\r\n for (let i = 0; i < buffer.length; i++) {\r\n itemHeight = buffer[i].element.outerHeight(true);\r\n if (overageHeight + itemHeight > emptySpaceHeight) {\r\n break;\r\n }\r\n topPadding.cache.add(buffer[i]);\r\n overageHeight += itemHeight;\r\n overage++;\r\n }\r\n\r\n if (overage > 0) {\r\n // we need to adjust top padding element before items are removed from top\r\n // to avoid strange behaviour of scroll bar during remove top items when we are at the very bottom\r\n topPadding.height(topPadding.height() + overageHeight);\r\n buffer.bof = false;\r\n buffer.remove(0, overage);\r\n buffer.first += overage;\r\n }\r\n },\r\n\r\n adjustPaddings() {\r\n if (!buffer.length) {\r\n return;\r\n }\r\n\r\n // precise heights calculation based on items that are in buffer or that were in buffer once\r\n const visibleItemsHeight = buffer.reduce((summ, item) => summ + item.element.outerHeight(true), 0);\r\n\r\n let topPaddingHeight = 0, topCount = 0;\r\n topPadding.cache.forEach(item => {\r\n if (item.index < buffer.first) {\r\n topPaddingHeight += item.height;\r\n topCount++;\r\n }\r\n });\r\n\r\n let bottomPaddingHeight = 0, bottomCount = 0;\r\n bottomPadding.cache.forEach(item => {\r\n if (item.index >= buffer.next) {\r\n bottomPaddingHeight += item.height;\r\n bottomCount++;\r\n }\r\n });\r\n\r\n const totalHeight = visibleItemsHeight + topPaddingHeight + bottomPaddingHeight;\r\n const averageItemHeight = totalHeight / (topCount + bottomCount + buffer.length);\r\n\r\n // average heights calculation, items that have never been reached\r\n let adjustTopPadding = buffer.minIndexUser !== null && buffer.minIndex > buffer.minIndexUser;\r\n let adjustBottomPadding = buffer.maxIndexUser !== null && buffer.maxIndex < buffer.maxIndexUser;\r\n let topPaddingHeightAdd = adjustTopPadding ? (buffer.minIndex - buffer.minIndexUser) * averageItemHeight : 0;\r\n let bottomPaddingHeightAdd = adjustBottomPadding ? (buffer.maxIndexUser - buffer.maxIndex) * averageItemHeight : 0;\r\n\r\n // paddings combine adjustment\r\n topPadding.height(topPaddingHeight + topPaddingHeightAdd);\r\n bottomPadding.height(bottomPaddingHeight + bottomPaddingHeightAdd);\r\n },\r\n\r\n onAfterMinIndexSet(topPaddingHeightOld) {\r\n // additional scrollTop adjustment in case of datasource.minIndex external set\r\n if (buffer.minIndexUser !== null && buffer.minIndex > buffer.minIndexUser) {\r\n let diff = topPadding.height() - topPaddingHeightOld;\r\n viewport.scrollTop(viewport.scrollTop() + diff);\r\n while((diff -= viewport.scrollTop()) > 0) {\r\n bottomPadding.height(bottomPadding.height() + diff);\r\n viewport.scrollTop(viewport.scrollTop() + diff);\r\n }\r\n }\r\n },\r\n\r\n onAfterPrepend(updates) {\r\n if (!updates.prepended.length) {\r\n return;\r\n }\r\n const height = buffer.effectiveHeight(updates.prepended);\r\n const paddingHeight = topPadding.height() - height;\r\n if (paddingHeight >= 0) {\r\n topPadding.height(paddingHeight);\r\n return;\r\n }\r\n const position = viewport.scrollTop();\r\n const newPosition = position - paddingHeight;\r\n viewport.synthetic = { previous: position, next: newPosition };\r\n topPadding.height(0);\r\n viewport.scrollTop(newPosition);\r\n },\r\n\r\n resetTopPadding() {\r\n topPadding.height(0);\r\n topPadding.cache.clear();\r\n },\r\n\r\n resetBottomPadding() {\r\n bottomPadding.height(0);\r\n bottomPadding.cache.clear();\r\n },\r\n\r\n removeCacheItem(item, shiftTop) {\r\n topPadding.cache.remove(item, shiftTop);\r\n bottomPadding.cache.remove(item, shiftTop);\r\n },\r\n\r\n removeItem(item) {\r\n this.removeCacheItem(item);\r\n return buffer.remove(item);\r\n }\r\n });\r\n\r\n return viewport;\r\n}\r\n","import { OPERATIONS } from './utils';\r\n\r\nclass Adapter {\r\n\r\n constructor($scope, $parse, $attr, viewport, buffer, doAdjust, reload) {\r\n this.$parse = $parse;\r\n this.$attr = $attr;\r\n this.viewport = viewport;\r\n this.buffer = buffer;\r\n\r\n this.doAdjust = doAdjust;\r\n this.reload = reload;\r\n\r\n this.isLoading = false;\r\n this.disabled = false;\r\n\r\n const viewportScope = viewport.getScope();\r\n this.startScope = viewportScope.$parent ? viewportScope : $scope;\r\n\r\n this.publicContext = {};\r\n this.assignAdapter($attr.adapter);\r\n this.generatePublicContext();\r\n }\r\n\r\n assignAdapter(adapterAttr) {\r\n if (!adapterAttr || !(adapterAttr = adapterAttr.replace(/^\\s+|\\s+$/gm, ''))) {\r\n return;\r\n }\r\n let adapterOnScope;\r\n\r\n try {\r\n this.$parse(adapterAttr).assign(this.startScope, {});\r\n adapterOnScope = this.$parse(adapterAttr)(this.startScope);\r\n }\r\n catch (error) {\r\n error.message = `Angular ui-scroll Adapter assignment exception.\\n` +\r\n `Can't parse \"${adapterAttr}\" expression.\\n` +\r\n error.message;\r\n throw error;\r\n }\r\n\r\n angular.extend(adapterOnScope, this.publicContext);\r\n this.publicContext = adapterOnScope;\r\n }\r\n\r\n generatePublicContext() {\r\n // these methods will be accessible out of ui-scroll via user defined adapter\r\n const publicMethods = ['reload', 'applyUpdates', 'append', 'prepend', 'isBOF', 'isEOF', 'isEmpty'];\r\n for (let i = publicMethods.length - 1; i >= 0; i--) {\r\n this.publicContext[publicMethods[i]] = this[publicMethods[i]].bind(this);\r\n }\r\n\r\n // these read-only props will be accessible out of ui-scroll via user defined adapter\r\n const publicProps = ['isLoading', 'topVisible', 'topVisibleElement', 'topVisibleScope', 'bottomVisible', 'bottomVisibleElement', 'bottomVisibleScope'];\r\n for (let i = publicProps.length - 1; i >= 0; i--) {\r\n let property, attr = this.$attr[publicProps[i]];\r\n Object.defineProperty(this, publicProps[i], {\r\n get: () => property,\r\n set: (value) => {\r\n property = value;\r\n this.publicContext[publicProps[i]] = value;\r\n if (attr) {\r\n this.$parse(attr).assign(this.startScope, value);\r\n }\r\n }\r\n });\r\n }\r\n\r\n // read-only immediately calculated public properties\r\n const publicPropsImmediate = ['bufferFirst', 'bufferLast', 'bufferLength'];\r\n for (let i = publicPropsImmediate.length - 1; i >= 0; i--) {\r\n Object.defineProperty(this.publicContext, publicPropsImmediate[i], {\r\n get: () => this[publicPropsImmediate[i]]\r\n });\r\n }\r\n\r\n // non-read-only public property\r\n Object.defineProperty(this.publicContext, 'disabled', {\r\n get: () => this.disabled,\r\n set: (value) => (!(this.disabled = value)) ? this.doAdjust() : null\r\n });\r\n }\r\n\r\n loading(value) {\r\n this.isLoading = value;\r\n }\r\n\r\n isBOF() {\r\n return this.buffer.bof;\r\n }\r\n\r\n isEOF() {\r\n return this.buffer.eof;\r\n }\r\n\r\n isEmpty() {\r\n return !this.buffer.length;\r\n }\r\n\r\n get bufferLength() {\r\n return this.buffer.getItems().length;\r\n }\r\n\r\n get bufferFirst() {\r\n return this.buffer.getFirstItem();\r\n }\r\n\r\n get bufferLast() {\r\n return this.buffer.getLastItem();\r\n }\r\n\r\n append(newItems) {\r\n this.buffer.append(newItems);\r\n this.doAdjust();\r\n this.viewport.clipTop();\r\n this.viewport.clipBottom();\r\n }\r\n\r\n prepend(newItems, options = {}) {\r\n this.buffer.prepend(newItems, options.immutableTop);\r\n this.doAdjust();\r\n this.viewport.clipTop();\r\n this.viewport.clipBottom();\r\n }\r\n\r\n applyUpdates(arg1, arg2, arg3) {\r\n if (typeof arg1 === 'function') {\r\n this.applyUpdatesFunc(arg1, arg2);\r\n } else {\r\n this.applyUpdatesIndex(arg1, arg2, arg3);\r\n }\r\n this.doAdjust();\r\n }\r\n\r\n applyUpdatesFunc(cb, options = {}) {\r\n this.buffer.slice(0).forEach((wrapper) => {\r\n // we need to do it on the buffer clone, because buffer content\r\n // may change as we iterate through\r\n this.applyUpdate(wrapper, cb(wrapper.item, wrapper.scope, wrapper.element), options);\r\n });\r\n }\r\n\r\n applyUpdatesIndex(index, newItems, options = {}) {\r\n if (index % 1 !== 0) {\r\n throw new Error('applyUpdates - ' + index + ' is not a valid index (should be an integer)');\r\n }\r\n const _index = index - this.buffer.first;\r\n\r\n // apply updates only within buffer\r\n if (_index >= 0 && _index < this.buffer.length) {\r\n this.applyUpdate(this.buffer[_index], newItems, options);\r\n }\r\n // out-of-buffer case: deletion may affect Paddings\r\n else if(index >= this.buffer.getAbsMinIndex() && index <= this.buffer.getAbsMaxIndex()) {\r\n if(angular.isArray(newItems) && !newItems.length) {\r\n this.viewport.removeCacheItem(index, !options.immutableTop && index === this.buffer.minIndex);\r\n if (!options.immutableTop && index === this.buffer.getAbsMinIndex()) {\r\n this.buffer.incrementMinIndex();\r\n }\r\n else {\r\n this.buffer.decrementMaxIndex();\r\n }\r\n }\r\n }\r\n }\r\n\r\n applyUpdate(wrapper, newItems, options = {}) {\r\n if (!angular.isArray(newItems)) {\r\n return;\r\n }\r\n let position = this.buffer.indexOf(wrapper);\r\n if (!newItems.reverse().some(newItem => newItem === wrapper.item)) {\r\n wrapper.op = OPERATIONS.REMOVE;\r\n // try to catch \"first\" edge case on remove\r\n if (!options.immutableTop && !newItems.length) {\r\n // this is the first item, or the previous one's part of the \"shift-top\" group\r\n if (\r\n (position === 0 && this.buffer.bof) ||\r\n (position !== 0 && this.buffer[position - 1].shiftTop)\r\n ) {\r\n wrapper.shiftTop = true;\r\n }\r\n }\r\n }\r\n newItems.forEach((newItem) => {\r\n if (newItem === wrapper.item) {\r\n position--;\r\n } else {\r\n // 3 parameter (shiftTop) is to catch \"first\" edge case on insert\r\n this.buffer.insert(position + 1, newItem, !options.immutableTop && position === -1);\r\n }\r\n });\r\n }\r\n\r\n calculateProperties() {\r\n let rowTop = null, topHeight = 0;\r\n let topDone = false, bottomDone = false;\r\n const length = this.buffer.length;\r\n\r\n for (let i = 0; i < length; i++) {\r\n const item = this.buffer[i];\r\n const itemTop = item.element.offset().top;\r\n\r\n if (rowTop !== itemTop) { // a new row condition\r\n const itemHeight = item.element.outerHeight(true);\r\n const top = this.viewport.topDataPos() + topHeight + itemHeight;\r\n\r\n if (!topDone && top > this.viewport.topVisiblePos()) {\r\n topDone = true;\r\n this['topVisible'] = item.item;\r\n this['topVisibleElement'] = item.element;\r\n this['topVisibleScope'] = item.scope;\r\n }\r\n if (!bottomDone && (top >= this.viewport.bottomVisiblePos() || (i === length - 1 && this.isEOF()))) {\r\n bottomDone = true;\r\n this['bottomVisible'] = item.item;\r\n this['bottomVisibleElement'] = item.element;\r\n this['bottomVisibleScope'] = item.scope;\r\n }\r\n topHeight += itemHeight;\r\n }\r\n rowTop = itemTop;\r\n\r\n if (topDone && bottomDone) {\r\n break;\r\n }\r\n }\r\n }\r\n\r\n}\r\n\r\nexport default Adapter;\r\n","import JQLiteExtras from './modules/jqLiteExtras';\r\nimport ElementRoutines from './modules/elementRoutines.js';\r\nimport ScrollBuffer from './modules/buffer.js';\r\nimport Viewport from './modules/viewport.js';\r\nimport Adapter from './modules/adapter.js';\r\nimport { OPERATIONS } from './modules/utils';\r\n\r\nangular.module('ui.scroll', [])\r\n\r\n .constant('JQLiteExtras', JQLiteExtras)\r\n .run(['JQLiteExtras', (JQLiteExtras) => {\r\n const elt = angular.element;\r\n !(window.jQuery && elt.fn && elt.fn.jquery) ? (new JQLiteExtras()).registerFor(elt) : null;\r\n ElementRoutines.addCSSRules();\r\n }])\r\n\r\n .directive('uiScrollViewport', function () {\r\n return {\r\n restrict: 'A',\r\n controller: [\r\n '$scope',\r\n '$element',\r\n function (scope, element) {\r\n this.container = element;\r\n this.viewport = element;\r\n this.scope = scope;\r\n\r\n angular.forEach(element.children(), child => {\r\n if (child.tagName.toLowerCase() === 'tbody') {\r\n this.viewport = angular.element(child);\r\n }\r\n });\r\n\r\n return this;\r\n }\r\n ]\r\n };\r\n })\r\n\r\n .directive('uiScroll', [\r\n '$log',\r\n '$injector',\r\n '$rootScope',\r\n '$timeout',\r\n '$interval',\r\n '$q',\r\n '$parse',\r\n function (console, $injector, $rootScope, $timeout, $interval, $q, $parse) {\r\n\r\n return {\r\n require: ['?^uiScrollViewport'],\r\n restrict: 'A',\r\n transclude: 'element',\r\n priority: 1000,\r\n terminal: true,\r\n link: link\r\n };\r\n\r\n function link($scope, element, $attr, controllers, linker) {\r\n const match = $attr.uiScroll.match(/^\\s*(\\w+)\\s+in\\s+([(\\w|\\$)\\.]+)\\s*$/);\r\n if (!match) {\r\n throw new Error('Expected uiScroll in form of \\'_item_ in _datasource_\\' but got \\'' + $attr.uiScroll + '\\'');\r\n }\r\n\r\n function parseNumber(value, defaultValue, isFloat) {\r\n if (!isFloat) {\r\n value = value === null ? defaultValue : Math.floor(value);\r\n }\r\n return isNaN(value) ? defaultValue : value;\r\n }\r\n\r\n function parseNumericAttr(value, defaultValue, isFloat) {\r\n const result = $parse(value)($scope);\r\n return parseNumber(result, defaultValue, isFloat);\r\n }\r\n\r\n function parseBooleanAttr(value, defaultValue) {\r\n const result = $parse(value)($scope);\r\n return typeof result === 'boolean' ? result : defaultValue;\r\n }\r\n\r\n const BUFFER_MIN = 3;\r\n const BUFFER_DEFAULT = 10;\r\n const PADDING_MIN = 0.3;\r\n const PADDING_DEFAULT = 0.5;\r\n const HANDLE_INERTIA_DEFAULT = true;\r\n const START_INDEX_DEFAULT = 1;\r\n const MAX_VIEWPORT_DELAY = 500;\r\n const VIEWPORT_POLLING_INTERVAL = 50;\r\n\r\n let datasource = null;\r\n const itemName = match[1];\r\n const datasourceName = match[2];\r\n const viewportController = controllers[0];\r\n const bufferSize = Math.max(BUFFER_MIN, parseNumericAttr($attr.bufferSize, BUFFER_DEFAULT));\r\n const padding = Math.max(PADDING_MIN, parseNumericAttr($attr.padding, PADDING_DEFAULT, true));\r\n const handleInertia = parseBooleanAttr($attr.handleInertia, HANDLE_INERTIA_DEFAULT);\r\n let startIndex = parseNumericAttr($attr.startIndex, START_INDEX_DEFAULT);\r\n let ridActual = 0; // current data revision id\r\n let pending = [];\r\n\r\n const elementRoutines = new ElementRoutines($injector, $q);\r\n const buffer = new ScrollBuffer(elementRoutines, bufferSize, startIndex);\r\n const viewport = new Viewport(elementRoutines, buffer, element, viewportController, $rootScope, padding);\r\n const adapter = new Adapter($scope, $parse, $attr, viewport, buffer, doAdjust, reload);\r\n\r\n if (viewportController) {\r\n viewportController.adapter = adapter;\r\n }\r\n\r\n const isDatasourceValid = () =>\r\n Object.prototype.toString.call(datasource) === '[object Object]' && typeof datasource.get === 'function';\r\n\r\n datasource = $parse(datasourceName)($scope); // try to get datasource on scope\r\n if (!isDatasourceValid()) {\r\n datasource = $injector.get(datasourceName); // try to inject datasource as service\r\n if (!isDatasourceValid()) {\r\n throw new Error(datasourceName + ' is not a valid datasource');\r\n }\r\n }\r\n\r\n let onRenderHandlers = [];\r\n function onRenderHandlersRunner() {\r\n onRenderHandlers.forEach(handler => handler.run());\r\n onRenderHandlers = [];\r\n }\r\n function persistDatasourceIndex(datasource, propName) {\r\n let getter;\r\n // need to postpone min/maxIndexUser processing if the view is empty\r\n if (angular.isNumber(datasource[propName])) {\r\n getter = datasource[propName];\r\n if (angular.isNumber(getter)) {\r\n onRenderHandlers = onRenderHandlers.filter(handler => handler.id !== propName);\r\n onRenderHandlers.push({\r\n id: propName,\r\n run: () => datasource[propName] = getter\r\n });\r\n }\r\n }\r\n }\r\n\r\n function defineDatasourceIndex(datasource, propName, propUserName) {\r\n const descriptor = Object.getOwnPropertyDescriptor(datasource, propName);\r\n if (descriptor && (descriptor.set || descriptor.get)) {\r\n return;\r\n }\r\n let getter;\r\n persistDatasourceIndex(datasource, propName);\r\n Object.defineProperty(datasource, propName, {\r\n set: (value) => {\r\n getter = value;\r\n if (pending.length && !buffer.length) {\r\n persistDatasourceIndex(datasource, propName);\r\n return;\r\n }\r\n buffer[propUserName] = value;\r\n const topPaddingHeightOld = viewport.topDataPos();\r\n viewport.adjustPaddings();\r\n if (propName === 'minIndex') {\r\n viewport.onAfterMinIndexSet(topPaddingHeightOld);\r\n }\r\n },\r\n get: () => getter\r\n });\r\n }\r\n\r\n defineDatasourceIndex(datasource, 'minIndex', 'minIndexUser');\r\n defineDatasourceIndex(datasource, 'maxIndex', 'maxIndexUser');\r\n\r\n const fetchNext = (datasource.get.length !== 2) ?\r\n (success) => datasource.get(buffer.next, bufferSize, success) :\r\n (success) => {\r\n datasource.get({\r\n index: buffer.next,\r\n append: buffer.length ? buffer[buffer.length - 1].item : void 0,\r\n count: bufferSize\r\n }, success);\r\n };\r\n\r\n const fetchPrevious = (datasource.get.length !== 2) ?\r\n (success) => datasource.get(buffer.first - bufferSize, bufferSize, success) :\r\n (success) => {\r\n datasource.get({\r\n index: buffer.first - bufferSize,\r\n prepend: buffer.length ? buffer[0].item : void 0,\r\n count: bufferSize\r\n }, success);\r\n };\r\n\r\n const initialize = () => {\r\n let tryCount = 0;\r\n if (!viewport.applyContainerStyle()) {\r\n const timer = $interval(() => {\r\n tryCount++;\r\n if (viewport.applyContainerStyle()) {\r\n $interval.cancel(timer);\r\n doAdjust();\r\n }\r\n if (tryCount * VIEWPORT_POLLING_INTERVAL >= MAX_VIEWPORT_DELAY) {\r\n $interval.cancel(timer);\r\n throw Error(`ui-scroll directive requires a viewport with non-zero height in ${MAX_VIEWPORT_DELAY}ms`);\r\n }\r\n }, VIEWPORT_POLLING_INTERVAL);\r\n }\r\n else {\r\n doAdjust();\r\n }\r\n };\r\n\r\n /**\r\n * Build padding elements\r\n *\r\n * Calling linker is the only way I found to get access to the tag name of the template\r\n * to prevent the directive scope from pollution a new scope is created and destroyed\r\n * right after the builder creation is completed\r\n */\r\n linker((clone, scope) => {\r\n viewport.createPaddingElements(clone[0]);\r\n // we do not include the clone in the DOM. It means that the nested directives will not\r\n // be able to reach the parent directives, but in this case it is intentional because we\r\n // created the clone to access the template tag name\r\n scope.$destroy();\r\n clone.remove();\r\n });\r\n\r\n $scope.$on('$destroy', () => {\r\n unbindEvents();\r\n viewport.off('mousewheel', wheelHandler);\r\n });\r\n\r\n viewport.on('mousewheel', wheelHandler);\r\n\r\n initialize();\r\n\r\n /* Private function definitions */\r\n\r\n function isInvalid(rid) {\r\n return (rid && rid !== ridActual) || $scope.$$destroyed;\r\n }\r\n\r\n function bindEvents() {\r\n viewport.on('resize', resizeAndScrollHandler);\r\n viewport.on('scroll', resizeAndScrollHandler);\r\n }\r\n\r\n function unbindEvents() {\r\n viewport.off('resize', resizeAndScrollHandler);\r\n viewport.off('scroll', resizeAndScrollHandler);\r\n }\r\n\r\n function reload() {\r\n unbindEvents();\r\n viewport.resetTopPadding();\r\n viewport.resetBottomPadding();\r\n if (arguments.length) {\r\n startIndex = parseNumber(arguments[0], START_INDEX_DEFAULT, false);\r\n }\r\n buffer.reset(startIndex);\r\n persistDatasourceIndex(datasource, 'minIndex');\r\n persistDatasourceIndex(datasource, 'maxIndex');\r\n doAdjust();\r\n }\r\n\r\n function isElementVisible(wrapper) {\r\n return wrapper.element.height() && wrapper.element[0].offsetParent;\r\n }\r\n\r\n function visibilityWatcher(wrapper) {\r\n if (isElementVisible(wrapper)) {\r\n buffer.forEach((item) => {\r\n if (typeof item.unregisterVisibilityWatcher === 'function') {\r\n item.unregisterVisibilityWatcher();\r\n delete item.unregisterVisibilityWatcher;\r\n }\r\n });\r\n if (!pending.length) {\r\n $timeout(() => doAdjust());\r\n }\r\n }\r\n }\r\n\r\n function insertWrapperContent(wrapper, insertAfter) {\r\n createElement(wrapper, insertAfter, viewport.insertElement);\r\n if (!isElementVisible(wrapper)) {\r\n wrapper.unregisterVisibilityWatcher = wrapper.scope.$watch(() => visibilityWatcher(wrapper));\r\n }\r\n elementRoutines.hideElement(wrapper); // hide inserted elements before data binding\r\n }\r\n\r\n function createElement(wrapper, insertAfter, insertElement) {\r\n let promises = null;\r\n const sibling = (insertAfter > 0) ? buffer[insertAfter - 1].element : undefined;\r\n linker((clone, scope) => {\r\n promises = insertElement(clone, sibling);\r\n wrapper.element = clone;\r\n wrapper.scope = scope;\r\n scope[itemName] = wrapper.item;\r\n });\r\n // ui-scroll-grid apply\r\n if (adapter.transform) {\r\n const tdInitializer = wrapper.scope.uiScrollTdInitializer;\r\n if (tdInitializer && tdInitializer.linking) {\r\n adapter.transform(wrapper.scope, wrapper.element);\r\n } else {\r\n wrapper.scope.uiScrollTdInitializer = {\r\n onLink: () => adapter.transform(wrapper.scope, wrapper.element),\r\n scope: wrapper.scope\r\n };\r\n }\r\n }\r\n return promises;\r\n }\r\n\r\n function updateDOM() {\r\n let promises = [];\r\n const toBePrepended = [];\r\n const toBeRemoved = [];\r\n const inserted = [];\r\n\r\n buffer.forEach((wrapper, i) => {\r\n switch (wrapper.op) {\r\n case OPERATIONS.PREPEND:\r\n toBePrepended.unshift(wrapper);\r\n break;\r\n case OPERATIONS.APPEND:\r\n insertWrapperContent(wrapper, i);\r\n wrapper.op = OPERATIONS.NONE;\r\n inserted.push(wrapper);\r\n break;\r\n case OPERATIONS.INSERT:\r\n promises = promises.concat(createElement(wrapper, i, viewport.insertElementAnimated));\r\n wrapper.op = OPERATIONS.NONE;\r\n inserted.push(wrapper);\r\n break;\r\n case OPERATIONS.REMOVE:\r\n toBeRemoved.push(wrapper);\r\n }\r\n });\r\n\r\n toBeRemoved.forEach((wrapper) => promises = promises.concat(viewport.removeItem(wrapper)));\r\n\r\n if (toBePrepended.length)\r\n toBePrepended.forEach((wrapper) => {\r\n insertWrapperContent(wrapper);\r\n wrapper.op = OPERATIONS.NONE;\r\n });\r\n\r\n buffer.forEach((item, i) => item.scope.$index = buffer.first + i);\r\n\r\n return {\r\n prepended: toBePrepended,\r\n removed: toBeRemoved,\r\n inserted: inserted,\r\n animated: promises\r\n };\r\n\r\n }\r\n\r\n function updatePaddings(rid, updates) {\r\n // schedule another doAdjust after animation completion\r\n if (updates.animated.length) {\r\n $q.all(updates.animated).then(() => {\r\n viewport.adjustPaddings();\r\n doAdjust(rid);\r\n });\r\n } else {\r\n viewport.adjustPaddings();\r\n }\r\n }\r\n\r\n function enqueueFetch(rid, updates) {\r\n if (viewport.shouldLoadBottom()) {\r\n if (!updates || buffer.effectiveHeight(updates.inserted) > 0) {\r\n // this means that at least one item appended in the last batch has height > 0\r\n if (pending.push(true) === 1) {\r\n adapter.loading(true);\r\n fetch(rid);\r\n }\r\n }\r\n } else if (viewport.shouldLoadTop()) {\r\n if ((!updates || buffer.effectiveHeight(updates.prepended) > 0) || pending[0]) {\r\n // this means that at least one item appended in the last batch has height > 0\r\n // pending[0] = true means that previous fetch was appending. We need to force at least one prepend\r\n // BTW there will always be at least 1 element in the pending array because bottom is fetched first\r\n if (pending.push(false) === 1) {\r\n adapter.loading(true);\r\n fetch(rid);\r\n }\r\n }\r\n }\r\n }\r\n\r\n function processUpdates() {\r\n const updates = updateDOM();\r\n\r\n // We need the item bindings to be processed before we can do adjustments\r\n !$scope.$$phase && !$rootScope.$$phase && $scope.$digest();\r\n\r\n updates.inserted.forEach(w => elementRoutines.showElement(w));\r\n updates.prepended.forEach(w => elementRoutines.showElement(w));\r\n return updates;\r\n }\r\n\r\n function doAdjust(rid) {\r\n if (!rid) { // dismiss pending requests\r\n pending = [];\r\n rid = ++ridActual;\r\n }\r\n\r\n const updates = processUpdates();\r\n\r\n if (isInvalid(rid)) {\r\n return;\r\n }\r\n\r\n updatePaddings(rid, updates);\r\n enqueueFetch(rid);\r\n\r\n if (!pending.length) {\r\n adapter.calculateProperties();\r\n }\r\n }\r\n\r\n function doAdjustAfterFetch(rid) {\r\n const updates = processUpdates();\r\n\r\n viewport.onAfterPrepend(updates);\r\n\r\n if (isInvalid(rid)) {\r\n return;\r\n }\r\n\r\n updatePaddings(rid, updates);\r\n onRenderHandlersRunner();\r\n enqueueFetch(rid, updates);\r\n pending.shift();\r\n\r\n if (pending.length)\r\n fetch(rid);\r\n else {\r\n adapter.loading(false);\r\n bindEvents();\r\n adapter.calculateProperties();\r\n }\r\n }\r\n\r\n function fetch(rid) {\r\n if (pending[0]) {// scrolling down\r\n if (buffer.length && !viewport.shouldLoadBottom()) {\r\n doAdjustAfterFetch(rid);\r\n } else {\r\n fetchNext((result) => {\r\n if (isInvalid(rid)) {\r\n return;\r\n }\r\n\r\n if (result.length < bufferSize) {\r\n buffer.eof = true;\r\n }\r\n\r\n if (result.length > 0) {\r\n viewport.clipTop();\r\n buffer.append(result);\r\n }\r\n\r\n doAdjustAfterFetch(rid);\r\n });\r\n }\r\n } else { // scrolling up\r\n if (buffer.length && !viewport.shouldLoadTop()) {\r\n doAdjustAfterFetch(rid);\r\n } else {\r\n fetchPrevious((result) => {\r\n if (isInvalid(rid)) {\r\n return;\r\n }\r\n\r\n if (result.length < bufferSize) {\r\n buffer.bof = true;\r\n // log 'bof is reached'\r\n }\r\n\r\n if (result.length > 0) {\r\n if (buffer.length) {\r\n viewport.clipBottom();\r\n }\r\n buffer.prepend(result);\r\n }\r\n\r\n doAdjustAfterFetch(rid);\r\n });\r\n }\r\n }\r\n }\r\n\r\n function fixInertia() {\r\n if (!viewport.synthetic) {\r\n return;\r\n }\r\n const oldPosition = viewport.synthetic.previous;\r\n const newPosition = viewport.synthetic.next;\r\n if (viewport.scrollTop() !== newPosition) {\r\n requestAnimationFrame(() => {\r\n const position = viewport.scrollTop();\r\n const diff = oldPosition - position;\r\n if (diff > 0) { // inertia over synthetic\r\n viewport.scrollTop(newPosition - diff);\r\n } else {\r\n viewport.scrollTop(newPosition);\r\n }\r\n viewport.synthetic = null;\r\n });\r\n return true;\r\n }\r\n viewport.synthetic = null;\r\n }\r\n\r\n function resizeAndScrollHandler() {\r\n if (handleInertia && fixInertia()) {\r\n return;\r\n }\r\n if (!$rootScope.$$phase && !adapter.isLoading && !adapter.disabled) {\r\n\r\n enqueueFetch(ridActual);\r\n\r\n if (pending.length) {\r\n unbindEvents();\r\n } else {\r\n adapter.calculateProperties();\r\n !$scope.$$phase && $scope.$digest();\r\n }\r\n }\r\n }\r\n\r\n function wheelHandler(event) {\r\n if (!adapter.disabled) {\r\n const scrollTop = viewport[0].scrollTop;\r\n const yMax = viewport[0].scrollHeight - viewport[0].clientHeight;\r\n\r\n if ((scrollTop === 0 && !buffer.bof) || (scrollTop === yMax && !buffer.eof)) {\r\n event.preventDefault();\r\n }\r\n }\r\n }\r\n }\r\n\r\n }\r\n ]);\r\n"],"names":["JQLiteExtras","_classCallCheck","key","value","element","convertToPx","css","getStyle","isWindow","scrollTo","self","direction","elem","_top$left$direction","_slicedToArray","top","left","method","prop","preserve","isValueDefined","call","document","documentElement","getWidthHeight","measure","result","measurements","base","borderA","borderB","computedMarginA","computedMarginB","computedStyle","dirA","dirB","paddingA","paddingB","height","width","padding","border","margin","_width$height$measure","offsetWidth","offsetHeight","getMeasurements","outer","outerfull","style","parseFloat","angular","prototype","name","this","nodeType","obj","location","alert","setInterval","window","getComputedStyle","currentStyle","rs","rsLeft","RegExp","source","test","runtimeStyle","pixelLeft","forEach","before","newElem","children","i","j","parent","ref","contents","prepend","length","after","Error","outerHTML","isNumber","outerHeight","option","outerWidth","offset","docElem","win","box","doc","ownerDocument","arguments","undefined","getBoundingClientRect","defaultView","parentWindow","pageYOffset","scrollTop","clientTop","pageXOffset","scrollLeft","clientLeft","hideClassToken","ElementRoutines","$injector","$q","$animate","has","get","isAngularVersionLessThen1_3","version","major","minor","index","selector","rules","sheet","styleSheets","cssRules","err","insertRule","addRule","wrapper","addClass","removeClass","newElement","previousElement","remove","scope","$destroy","insertElement","deferred","defer","enter","resolve","promise","removeElement","leave","then","OPERATIONS","PREPEND","APPEND","INSERT","REMOVE","NONE","ScrollBuffer","elementRoutines","bufferSize","startIndex","buffer","Object","create","Array","extend","size","reset","eof","bof","first","next","minIndex","maxIndex","minIndexUser","maxIndexUser","append","items","item","insert","Math","max","immutableTop","reverse","min","operation","shiftTop","op","splice","push","unshift","arg1","arg2","indexOf","getAbsMinIndex","incrementMinIndex","decrementMaxIndex","removeElementAnimated","getAbsMaxIndex","effectiveHeight","elements","Number","MAX_VALUE","bottom","NEGATIVE_INFINITY","offsetParent","getItems","filter","getFirstItem","list","getLastItem","CacheProto","_createClass","$index","sort","a","b","argument","_shiftTop","Cache","instance","apply","setPrototypeOf","getOwnPropertyNames","methodName","Padding","template","Node","ELEMENT_NODE","tagName","toLowerCase","concat","find","generateElement","cache","Viewport","viewportController","$rootScope","topPadding","bottomPadding","viewport","container","bufferPadding","getScope","createPaddingElements","applyContainerStyle","bottomDataPos","scrollHeight","topDataPos","bottomVisiblePos","topVisiblePos","e","sibling","insertElementAnimated","shouldLoadBottom","clipBottom","overage","overageHeight","itemHeight","emptySpaceHeight","add","adjustPaddings","shouldLoadTop","clipTop","visibleItemsHeight","reduce","summ","topPaddingHeight","topCount","bottomPaddingHeight","bottomCount","averageItemHeight","adjustTopPadding","adjustBottomPadding","topPaddingHeightAdd","bottomPaddingHeightAdd","onAfterMinIndexSet","topPaddingHeightOld","diff","onAfterPrepend","updates","prepended","paddingHeight","position","newPosition","synthetic","previous","resetTopPadding","clear","resetBottomPadding","removeCacheItem","removeItem","Adapter","$scope","$parse","$attr","doAdjust","reload","isLoading","disabled","viewportScope","startScope","$parent","publicContext","assignAdapter","adapter","generatePublicContext","adapterAttr","replace","adapterOnScope","assign","error","message","_this","publicMethods","bind","publicProps","_loop","_i","property","attr","defineProperty","set","publicPropsImmediate","_loop2","_i2","newItems","options","arg3","applyUpdatesFunc","applyUpdatesIndex","cb","_this2","slice","applyUpdate","_index","isArray","_this3","some","newItem","rowTop","topHeight","topDone","bottomDone","itemTop","isEOF","module","constant","run","elt","jQuery","fn","jquery","registerFor","addCSSRules","directive","restrict","controller","child","console","$timeout","$interval","require","transclude","priority","terminal","link","controllers","linker","match","uiScroll","parseNumber","defaultValue","isFloat","floor","isNaN","parseNumericAttr","datasource","itemName","datasourceName","handleInertia","ridActual","pending","unbindEvents","persistDatasourceIndex","isDatasourceValid","toString","onRenderHandlers","propName","getter","handler","id","defineDatasourceIndex","propUserName","descriptor","getOwnPropertyDescriptor","fetchNext","success","count","fetchPrevious","isInvalid","rid","$$destroyed","off","resizeAndScrollHandler","isElementVisible","insertWrapperContent","insertAfter","createElement","unregisterVisibilityWatcher","$watch","visibilityWatcher","hideElement","promises","clone","transform","tdInitializer","uiScrollTdInitializer","linking","onLink","updatePaddings","animated","all","enqueueFetch","inserted","loading","fetch","processUpdates","toBePrepended","toBeRemoved","removed","$$phase","$digest","w","showElement","calculateProperties","doAdjustAfterFetch","shift","on","oldPosition","requestAnimationFrame","fixInertia","wheelHandler","event","yMax","clientHeight","preventDefault","$on","tryCount","timer","cancel","initialize"],"sourceRoot":""} \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index d4552a5..a3ca3f0 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "angular-ui-scroll", - "version": "1.8.2", + "version": "1.9.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "angular-ui-scroll", - "version": "1.8.2", + "version": "1.9.0", "license": "MIT", "devDependencies": { "@babel/core": "^7.21.4", diff --git a/package.json b/package.json index 1766baf..966ad9a 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "angular-ui-scroll", "description": "AngularJS virtual scrolling module", - "version": "1.8.2", + "version": "1.9.0", "src": "./src/", "public": "./dist/", "main": "./dist/ui-scroll.js",