diff --git a/.eslintignore b/.eslintignore
new file mode 100644
index 00000000..30bc1627
--- /dev/null
+++ b/.eslintignore
@@ -0,0 +1 @@
+/node_modules
\ No newline at end of file
diff --git a/.eslintrc.json b/.eslintrc.json
index a8b6f1a4..3737f840 100644
--- a/.eslintrc.json
+++ b/.eslintrc.json
@@ -3,6 +3,7 @@
"browser": true,
"es2021": true
},
+ "plugins": ["lit", "wc"],
"extends": ["eslint:recommended", "plugin:lit/recommended", "plugin:wc/recommended"],
"parserOptions": {
"ecmaVersion": 12,
diff --git a/package-lock.json b/package-lock.json
index 4f99875b..8d3ff292 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -105,6 +105,9 @@
"electron-builder": "24.6.4",
"electron-packager": "17.1.2",
"epml": "0.3.3",
+ "eslint": "^8.50.0",
+ "eslint-plugin-lit": "^1.9.1",
+ "eslint-plugin-wc": "^2.0.3",
"file-saver": "2.0.5",
"highcharts": "11.1.0",
"html-escaper": "3.0.3",
@@ -125,6 +128,15 @@
"node": ">=18.16.1"
}
},
+ "node_modules/@aashutoshrathi/word-wrap": {
+ "version": "1.2.6",
+ "resolved": "https://registry.npmjs.org/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz",
+ "integrity": "sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
"node_modules/@ampproject/remapping": {
"version": "2.2.1",
"resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.1.tgz",
@@ -730,6 +742,111 @@
"node": ">= 10.0.0"
}
},
+ "node_modules/@eslint-community/eslint-utils": {
+ "version": "4.4.0",
+ "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz",
+ "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==",
+ "dev": true,
+ "dependencies": {
+ "eslint-visitor-keys": "^3.3.0"
+ },
+ "engines": {
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ },
+ "peerDependencies": {
+ "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0"
+ }
+ },
+ "node_modules/@eslint-community/regexpp": {
+ "version": "4.8.1",
+ "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.8.1.tgz",
+ "integrity": "sha512-PWiOzLIUAjN/w5K17PoF4n6sKBw0gqLHPhywmYHP4t1VFQQVYeb1yWsJwnMVEMl3tUHME7X/SJPZLmtG7XBDxQ==",
+ "dev": true,
+ "engines": {
+ "node": "^12.0.0 || ^14.0.0 || >=16.0.0"
+ }
+ },
+ "node_modules/@eslint/eslintrc": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.2.tgz",
+ "integrity": "sha512-+wvgpDsrB1YqAMdEUCcnTlpfVBH7Vqn6A/NT3D8WVXFIaKMlErPIZT3oCIAVCOtarRpMtelZLqJeU3t7WY6X6g==",
+ "dev": true,
+ "dependencies": {
+ "ajv": "^6.12.4",
+ "debug": "^4.3.2",
+ "espree": "^9.6.0",
+ "globals": "^13.19.0",
+ "ignore": "^5.2.0",
+ "import-fresh": "^3.2.1",
+ "js-yaml": "^4.1.0",
+ "minimatch": "^3.1.2",
+ "strip-json-comments": "^3.1.1"
+ },
+ "engines": {
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/eslint"
+ }
+ },
+ "node_modules/@eslint/eslintrc/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,
+ "dependencies": {
+ "balanced-match": "^1.0.0",
+ "concat-map": "0.0.1"
+ }
+ },
+ "node_modules/@eslint/eslintrc/node_modules/globals": {
+ "version": "13.22.0",
+ "resolved": "https://registry.npmjs.org/globals/-/globals-13.22.0.tgz",
+ "integrity": "sha512-H1Ddc/PbZHTDVJSnj8kWptIRSD6AM3pK+mKytuIVF4uoBV7rshFlhhvA58ceJ5wp3Er58w6zj7bykMpYXt3ETw==",
+ "dev": true,
+ "dependencies": {
+ "type-fest": "^0.20.2"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/@eslint/eslintrc/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/@eslint/eslintrc/node_modules/type-fest": {
+ "version": "0.20.2",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz",
+ "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/@eslint/js": {
+ "version": "8.50.0",
+ "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.50.0.tgz",
+ "integrity": "sha512-NCC3zz2+nvYd+Ckfh87rA47zfu2QsQpvc6k1yzTk+b9KzRj0wkGa8LSoGOXN6Zv4lRf/EIoZ80biDh9HOI+RNQ==",
+ "dev": true,
+ "engines": {
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ }
+ },
"node_modules/@fortawesome/fontawesome-common-types": {
"version": "6.4.2",
"resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-common-types/-/fontawesome-common-types-6.4.2.tgz",
@@ -1083,6 +1200,61 @@
"@hapi/hoek": "^11.0.2"
}
},
+ "node_modules/@humanwhocodes/config-array": {
+ "version": "0.11.11",
+ "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.11.tgz",
+ "integrity": "sha512-N2brEuAadi0CcdeMXUkhbZB84eskAc8MEX1By6qEchoVywSgXPIjou4rYsl0V3Hj0ZnuGycGCjdNgockbzeWNA==",
+ "dev": true,
+ "dependencies": {
+ "@humanwhocodes/object-schema": "^1.2.1",
+ "debug": "^4.1.1",
+ "minimatch": "^3.0.5"
+ },
+ "engines": {
+ "node": ">=10.10.0"
+ }
+ },
+ "node_modules/@humanwhocodes/config-array/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,
+ "dependencies": {
+ "balanced-match": "^1.0.0",
+ "concat-map": "0.0.1"
+ }
+ },
+ "node_modules/@humanwhocodes/config-array/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/@humanwhocodes/module-importer": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz",
+ "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==",
+ "dev": true,
+ "engines": {
+ "node": ">=12.22"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/nzakas"
+ }
+ },
+ "node_modules/@humanwhocodes/object-schema": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz",
+ "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==",
+ "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",
@@ -2072,6 +2244,41 @@
"tslib": "^2.1.0"
}
},
+ "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/@open-wc/dedupe-mixin": {
"version": "1.4.0",
"resolved": "https://registry.npmjs.org/@open-wc/dedupe-mixin/-/dedupe-mixin-1.4.0.tgz",
@@ -4322,6 +4529,15 @@
"node": ">=8"
}
},
+ "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/caniuse-lite": {
"version": "1.0.30001532",
"resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001532.tgz",
@@ -4826,6 +5042,12 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
+ "node_modules/deep-is": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz",
+ "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==",
+ "dev": true
+ },
"node_modules/deepmerge": {
"version": "4.3.1",
"resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz",
@@ -4986,6 +5208,18 @@
"node": ">=8"
}
},
+ "node_modules/doctrine": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz",
+ "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==",
+ "dev": true,
+ "dependencies": {
+ "esutils": "^2.0.2"
+ },
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
"node_modules/dot-prop": {
"version": "6.0.1",
"resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-6.0.1.tgz",
@@ -5647,12 +5881,417 @@
"node": ">=0.8.0"
}
},
+ "node_modules/eslint": {
+ "version": "8.50.0",
+ "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.50.0.tgz",
+ "integrity": "sha512-FOnOGSuFuFLv/Sa+FDVRZl4GGVAAFFi8LecRsI5a1tMO5HIE8nCm4ivAlzt4dT3ol/PaaGC0rJEEXQmHJBGoOg==",
+ "dev": true,
+ "dependencies": {
+ "@eslint-community/eslint-utils": "^4.2.0",
+ "@eslint-community/regexpp": "^4.6.1",
+ "@eslint/eslintrc": "^2.1.2",
+ "@eslint/js": "8.50.0",
+ "@humanwhocodes/config-array": "^0.11.11",
+ "@humanwhocodes/module-importer": "^1.0.1",
+ "@nodelib/fs.walk": "^1.2.8",
+ "ajv": "^6.12.4",
+ "chalk": "^4.0.0",
+ "cross-spawn": "^7.0.2",
+ "debug": "^4.3.2",
+ "doctrine": "^3.0.0",
+ "escape-string-regexp": "^4.0.0",
+ "eslint-scope": "^7.2.2",
+ "eslint-visitor-keys": "^3.4.3",
+ "espree": "^9.6.1",
+ "esquery": "^1.4.2",
+ "esutils": "^2.0.2",
+ "fast-deep-equal": "^3.1.3",
+ "file-entry-cache": "^6.0.1",
+ "find-up": "^5.0.0",
+ "glob-parent": "^6.0.2",
+ "globals": "^13.19.0",
+ "graphemer": "^1.4.0",
+ "ignore": "^5.2.0",
+ "imurmurhash": "^0.1.4",
+ "is-glob": "^4.0.0",
+ "is-path-inside": "^3.0.3",
+ "js-yaml": "^4.1.0",
+ "json-stable-stringify-without-jsonify": "^1.0.1",
+ "levn": "^0.4.1",
+ "lodash.merge": "^4.6.2",
+ "minimatch": "^3.1.2",
+ "natural-compare": "^1.4.0",
+ "optionator": "^0.9.3",
+ "strip-ansi": "^6.0.1",
+ "text-table": "^0.2.0"
+ },
+ "bin": {
+ "eslint": "bin/eslint.js"
+ },
+ "engines": {
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/eslint"
+ }
+ },
+ "node_modules/eslint-plugin-lit": {
+ "version": "1.9.1",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-lit/-/eslint-plugin-lit-1.9.1.tgz",
+ "integrity": "sha512-XFFVufVxYJwqRB9sLkDXB7SvV1xi9hrC4HRFEdX1h9+iZ3dm4x9uS7EuT9uaXs6zR3DEgcojia1F7pmvWbc4Gg==",
+ "dev": true,
+ "dependencies": {
+ "parse5": "^6.0.1",
+ "parse5-htmlparser2-tree-adapter": "^6.0.1",
+ "requireindex": "^1.2.0"
+ },
+ "engines": {
+ "node": ">= 12"
+ },
+ "peerDependencies": {
+ "eslint": ">= 5"
+ }
+ },
+ "node_modules/eslint-plugin-wc": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-wc/-/eslint-plugin-wc-2.0.3.tgz",
+ "integrity": "sha512-O3i71FodYMArf8DBs+OuDQ8SH8SMiNaJ4GIcXRDsGURPdvBrVDNS9+GQ0xwmzhqUWV0df5xq8irpceA6YBdJmg==",
+ "dev": true,
+ "dependencies": {
+ "is-valid-element-name": "^1.0.0",
+ "js-levenshtein-esm": "^1.2.0"
+ },
+ "peerDependencies": {
+ "eslint": ">=5"
+ }
+ },
+ "node_modules/eslint-scope": {
+ "version": "7.2.2",
+ "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz",
+ "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==",
+ "dev": true,
+ "dependencies": {
+ "esrecurse": "^4.3.0",
+ "estraverse": "^5.2.0"
+ },
+ "engines": {
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/eslint"
+ }
+ },
+ "node_modules/eslint-visitor-keys": {
+ "version": "3.4.3",
+ "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz",
+ "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==",
+ "dev": true,
+ "engines": {
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/eslint"
+ }
+ },
+ "node_modules/eslint/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/eslint/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,
+ "dependencies": {
+ "balanced-match": "^1.0.0",
+ "concat-map": "0.0.1"
+ }
+ },
+ "node_modules/eslint/node_modules/chalk": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
+ "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
+ "dev": true,
+ "dependencies": {
+ "ansi-styles": "^4.1.0",
+ "supports-color": "^7.1.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/chalk?sponsor=1"
+ }
+ },
+ "node_modules/eslint/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/eslint/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/eslint/node_modules/escape-string-regexp": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz",
+ "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==",
+ "dev": true,
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/eslint/node_modules/find-up": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz",
+ "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==",
+ "dev": true,
+ "dependencies": {
+ "locate-path": "^6.0.0",
+ "path-exists": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/eslint/node_modules/glob-parent": {
+ "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.3"
+ },
+ "engines": {
+ "node": ">=10.13.0"
+ }
+ },
+ "node_modules/eslint/node_modules/globals": {
+ "version": "13.22.0",
+ "resolved": "https://registry.npmjs.org/globals/-/globals-13.22.0.tgz",
+ "integrity": "sha512-H1Ddc/PbZHTDVJSnj8kWptIRSD6AM3pK+mKytuIVF4uoBV7rshFlhhvA58ceJ5wp3Er58w6zj7bykMpYXt3ETw==",
+ "dev": true,
+ "dependencies": {
+ "type-fest": "^0.20.2"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/eslint/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/eslint/node_modules/locate-path": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz",
+ "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==",
+ "dev": true,
+ "dependencies": {
+ "p-locate": "^5.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/eslint/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/eslint/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==",
+ "dev": true,
+ "dependencies": {
+ "yocto-queue": "^0.1.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/eslint/node_modules/p-locate": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz",
+ "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==",
+ "dev": true,
+ "dependencies": {
+ "p-limit": "^3.0.2"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/eslint/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"
+ }
+ },
+ "node_modules/eslint/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"
+ }
+ },
+ "node_modules/eslint/node_modules/type-fest": {
+ "version": "0.20.2",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz",
+ "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/espree": {
+ "version": "9.6.1",
+ "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz",
+ "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==",
+ "dev": true,
+ "dependencies": {
+ "acorn": "^8.9.0",
+ "acorn-jsx": "^5.3.2",
+ "eslint-visitor-keys": "^3.4.1"
+ },
+ "engines": {
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/eslint"
+ }
+ },
+ "node_modules/espree/node_modules/acorn": {
+ "version": "8.10.0",
+ "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.10.0.tgz",
+ "integrity": "sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw==",
+ "dev": true,
+ "bin": {
+ "acorn": "bin/acorn"
+ },
+ "engines": {
+ "node": ">=0.4.0"
+ }
+ },
+ "node_modules/espree/node_modules/acorn-jsx": {
+ "version": "5.3.2",
+ "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz",
+ "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==",
+ "dev": true,
+ "peerDependencies": {
+ "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0"
+ }
+ },
+ "node_modules/esquery": {
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz",
+ "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==",
+ "dev": true,
+ "dependencies": {
+ "estraverse": "^5.1.0"
+ },
+ "engines": {
+ "node": ">=0.10"
+ }
+ },
+ "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,
+ "dependencies": {
+ "estraverse": "^5.2.0"
+ },
+ "engines": {
+ "node": ">=4.0"
+ }
+ },
+ "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/estree-walker": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz",
"integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==",
"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"
+ }
+ },
"node_modules/execa": {
"version": "0.10.0",
"resolved": "https://registry.npmjs.org/execa/-/execa-0.10.0.tgz",
@@ -5802,6 +6441,21 @@
"integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==",
"dev": true
},
+ "node_modules/fast-levenshtein": {
+ "version": "2.0.6",
+ "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz",
+ "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==",
+ "dev": true
+ },
+ "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,
+ "dependencies": {
+ "reusify": "^1.0.4"
+ }
+ },
"node_modules/fd-slicer": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz",
@@ -5810,6 +6464,18 @@
"pend": "~1.2.0"
}
},
+ "node_modules/file-entry-cache": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz",
+ "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==",
+ "dev": true,
+ "dependencies": {
+ "flat-cache": "^3.0.4"
+ },
+ "engines": {
+ "node": "^10.12.0 || >=12.0.0"
+ }
+ },
"node_modules/file-saver": {
"version": "2.0.5",
"resolved": "https://registry.npmjs.org/file-saver/-/file-saver-2.0.5.tgz",
@@ -5873,6 +6539,26 @@
"node": ">=6"
}
},
+ "node_modules/flat-cache": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.1.0.tgz",
+ "integrity": "sha512-OHx4Qwrrt0E4jEIcI5/Xb+f+QmJYNj2rrK8wiIdQOIrB9WrrJL8cjZvXdXuBTkkEwEqLycb5BeZDV1o2i9bTew==",
+ "dev": true,
+ "dependencies": {
+ "flatted": "^3.2.7",
+ "keyv": "^4.5.3",
+ "rimraf": "^3.0.2"
+ },
+ "engines": {
+ "node": ">=12.0.0"
+ }
+ },
+ "node_modules/flatted": {
+ "version": "3.2.9",
+ "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.9.tgz",
+ "integrity": "sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ==",
+ "dev": true
+ },
"node_modules/flora-colossus": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/flora-colossus/-/flora-colossus-2.0.0.tgz",
@@ -6302,6 +6988,12 @@
"resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz",
"integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ=="
},
+ "node_modules/graphemer": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz",
+ "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==",
+ "dev": true
+ },
"node_modules/has": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz",
@@ -6498,6 +7190,15 @@
}
]
},
+ "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"
+ }
+ },
"node_modules/immediate": {
"version": "3.0.6",
"resolved": "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz",
@@ -6508,6 +7209,31 @@
"resolved": "https://registry.npmjs.org/immutable/-/immutable-4.3.4.tgz",
"integrity": "sha512-fsXeu4J4i6WNWSikpI88v/PcVflZz+6kMhUfIwc5SY+poQRPnaf5V7qds6SUyUN3cVxEzuCab7QIoLOQ+DQ1wA=="
},
+ "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/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/inflight": {
"version": "1.0.6",
"resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
@@ -6690,6 +7416,15 @@
"node": ">=8"
}
},
+ "node_modules/is-path-inside": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz",
+ "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
"node_modules/is-plain-obj": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz",
@@ -6709,6 +7444,12 @@
"node": ">=0.10.0"
}
},
+ "node_modules/is-potential-custom-element-name": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz",
+ "integrity": "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==",
+ "dev": true
+ },
"node_modules/is-reference": {
"version": "1.2.1",
"resolved": "https://registry.npmjs.org/is-reference/-/is-reference-1.2.1.tgz",
@@ -6726,6 +7467,15 @@
"node": ">=0.10.0"
}
},
+ "node_modules/is-valid-element-name": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-valid-element-name/-/is-valid-element-name-1.0.0.tgz",
+ "integrity": "sha512-GZITEJY2LkSjQfaIPBha7eyZv+ge0PhBR7KITeCCWvy7VBQrCUdFkvpI+HrAPQjVtVjy1LvlEkqQTHckoszruw==",
+ "dev": true,
+ "dependencies": {
+ "is-potential-custom-element-name": "^1.0.0"
+ }
+ },
"node_modules/is-wsl": {
"version": "2.2.0",
"resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz",
@@ -6873,6 +7623,12 @@
"node": ">=8"
}
},
+ "node_modules/js-levenshtein-esm": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/js-levenshtein-esm/-/js-levenshtein-esm-1.2.0.tgz",
+ "integrity": "sha512-fzreKVq1eD7eGcQr7MtRpQH94f8gIfhdrc7yeih38xh684TNMK9v5aAu2wxfIRMk/GpAJRrzcirMAPIaSDaByQ==",
+ "dev": true
+ },
"node_modules/js-tokens": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
@@ -6919,6 +7675,12 @@
"resolved": "https://registry.npmjs.org/json-schema-typed/-/json-schema-typed-7.0.3.tgz",
"integrity": "sha512-7DE8mpG+/fVw+dTpjbxnx47TaMnDfOI1jwft9g1VybltZCduyRQPJPvc+zzKY9WPHxhPWczyFuYa6I8Mw4iU5A=="
},
+ "node_modules/json-stable-stringify-without-jsonify": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz",
+ "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==",
+ "dev": true
+ },
"node_modules/json-stringify-safe": {
"version": "5.0.1",
"resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz",
@@ -6988,6 +7750,19 @@
"node": ">=6"
}
},
+ "node_modules/levn": {
+ "version": "0.4.1",
+ "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz",
+ "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==",
+ "dev": true,
+ "dependencies": {
+ "prelude-ls": "^1.2.1",
+ "type-check": "~0.4.0"
+ },
+ "engines": {
+ "node": ">= 0.8.0"
+ }
+ },
"node_modules/lie": {
"version": "3.1.1",
"resolved": "https://registry.npmjs.org/lie/-/lie-3.1.1.tgz",
@@ -7097,6 +7872,12 @@
"resolved": "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz",
"integrity": "sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ=="
},
+ "node_modules/lodash.merge": {
+ "version": "4.6.2",
+ "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz",
+ "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==",
+ "dev": true
+ },
"node_modules/lowercase-keys": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz",
@@ -7333,6 +8114,12 @@
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
"integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
},
+ "node_modules/natural-compare": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz",
+ "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==",
+ "dev": true
+ },
"node_modules/nice-try": {
"version": "1.0.5",
"resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz",
@@ -7498,6 +8285,23 @@
"node": ">=6"
}
},
+ "node_modules/optionator": {
+ "version": "0.9.3",
+ "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.3.tgz",
+ "integrity": "sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==",
+ "dev": true,
+ "dependencies": {
+ "@aashutoshrathi/word-wrap": "^1.2.3",
+ "deep-is": "^0.1.3",
+ "fast-levenshtein": "^2.0.6",
+ "levn": "^0.4.1",
+ "prelude-ls": "^1.2.1",
+ "type-check": "^0.4.0"
+ },
+ "engines": {
+ "node": ">= 0.8.0"
+ }
+ },
"node_modules/orderedmap": {
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/orderedmap/-/orderedmap-2.1.1.tgz",
@@ -7574,6 +8378,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-author": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/parse-author/-/parse-author-2.0.0.tgz",
@@ -7598,6 +8414,21 @@
"node": ">=0.10.0"
}
},
+ "node_modules/parse5": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz",
+ "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==",
+ "dev": true
+ },
+ "node_modules/parse5-htmlparser2-tree-adapter": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-6.0.1.tgz",
+ "integrity": "sha512-qPuWvbLgvDGilKc5BoicRovlT4MtYT6JfJyBOMDsKoiT+GiuP5qyrPCnR9HcPECIJJmZh5jRndyNThnhhb/vlA==",
+ "dev": true,
+ "dependencies": {
+ "parse5": "^6.0.1"
+ }
+ },
"node_modules/passive-events-support": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/passive-events-support/-/passive-events-support-1.1.0.tgz",
@@ -7704,6 +8535,15 @@
"node": ">=10.4.0"
}
},
+ "node_modules/prelude-ls": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz",
+ "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==",
+ "dev": true,
+ "engines": {
+ "node": ">= 0.8.0"
+ }
+ },
"node_modules/process-es6": {
"version": "0.11.6",
"resolved": "https://registry.npmjs.org/process-es6/-/process-es6-0.11.6.tgz",
@@ -7960,6 +8800,26 @@
"integrity": "sha512-4sP/C9sSxQ3w80AATmvCEI3R+MHzCwr2RSZEbLyMkeJgV3cRk7ySZRUrQnBDSA7A0/z6dkYtjuXlkhN1ZFw3iA==",
"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"
+ }
+ ]
+ },
"node_modules/quick-lru": {
"version": "5.1.1",
"resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz",
@@ -8159,6 +9019,15 @@
"node": ">=0.10.0"
}
},
+ "node_modules/requireindex": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/requireindex/-/requireindex-1.2.0.tgz",
+ "integrity": "sha512-L9jEkOi3ASd9PYit2cwRfyppc9NoABujTP8/5gFcbERmo5jUoAKovIC3fsF17pkTnGsrByysqX+Kxd2OTNI1ww==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.5"
+ }
+ },
"node_modules/resolve": {
"version": "1.22.4",
"resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.4.tgz",
@@ -8182,6 +9051,15 @@
"integrity": "sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==",
"dev": true
},
+ "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/responselike": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/responselike/-/responselike-2.0.1.tgz",
@@ -8203,6 +9081,16 @@
"node": ">= 4"
}
},
+ "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,
+ "engines": {
+ "iojs": ">=1.0.0",
+ "node": ">=0.10.0"
+ }
+ },
"node_modules/rimraf": {
"version": "3.0.2",
"resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz",
@@ -8361,6 +9249,29 @@
"resolved": "https://registry.npmjs.org/rope-sequence/-/rope-sequence-1.3.4.tgz",
"integrity": "sha512-UT5EDe2cu2E/6O4igUr5PSFs23nvvukicWHx6GnOPlHAiiYbzNuCRQCuiUdHJQcqKalLKlrYJnjY0ySGsXNQXQ=="
},
+ "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,
+ "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"
+ }
+ },
"node_modules/safe-buffer": {
"version": "5.2.1",
"resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
@@ -8830,6 +9741,18 @@
"node": ">=0.10.0"
}
},
+ "node_modules/strip-json-comments": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz",
+ "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
"node_modules/strip-outer": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/strip-outer/-/strip-outer-1.0.1.tgz",
@@ -8987,6 +9910,12 @@
"integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==",
"dev": true
},
+ "node_modules/text-table": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz",
+ "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==",
+ "dev": true
+ },
"node_modules/throttle-debounce": {
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/throttle-debounce/-/throttle-debounce-3.0.1.tgz",
@@ -9104,6 +10033,18 @@
"graceful-fs": "^4.1.6"
}
},
+ "node_modules/type-check": {
+ "version": "0.4.0",
+ "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz",
+ "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==",
+ "dev": true,
+ "dependencies": {
+ "prelude-ls": "^1.2.1"
+ },
+ "engines": {
+ "node": ">= 0.8.0"
+ }
+ },
"node_modules/type-fest": {
"version": "2.19.0",
"resolved": "https://registry.npmjs.org/type-fest/-/type-fest-2.19.0.tgz",
@@ -9391,6 +10332,18 @@
"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"
+ }
+ },
"node_modules/zeed-dom": {
"version": "0.9.26",
"resolved": "https://registry.npmjs.org/zeed-dom/-/zeed-dom-0.9.26.tgz",
diff --git a/package.json b/package.json
index 8027f6c5..6af10180 100644
--- a/package.json
+++ b/package.json
@@ -27,18 +27,30 @@
"build-electron": "electron-builder build --publish never",
"deploy-electron": "electron-builder build --win --publish never",
"release": "NODE_ENV=production electron-builder build --publish never",
- "publish": "electron-builder -p always"
+ "publish": "electron-builder -p always",
+ "lint": "eslint './**/*.{js,mjs}'"
},
"dependencies": {
+ "@hapi/hapi": "21.3.2",
+ "@hapi/inert": "7.1.0",
+ "@lit-labs/motion": "1.0.4",
+ "@tiptap/core": "2.0.4",
+ "@tiptap/extension-highlight": "2.0.4",
+ "@tiptap/extension-image": "2.0.4",
+ "@tiptap/extension-placeholder": "2.0.4",
+ "@tiptap/extension-underline": "2.0.4",
+ "@tiptap/html": "2.0.4",
+ "@tiptap/pm": "2.0.4",
+ "@tiptap/starter-kit": "2.0.4",
"asmcrypto.js": "2.3.2",
"bcryptjs": "2.4.3",
"buffer": "6.0.3",
"compressorjs": "1.2.1",
"crypto-js": "4.1.1",
- "electron-log": "4.4.8",
- "electron-updater": "6.1.4",
"electron-dl": "3.5.0",
+ "electron-log": "4.4.8",
"electron-store": "8.1.0",
+ "electron-updater": "6.1.4",
"emoji-picker-js": "https://github.com/Qortal/emoji-picker-js",
"extract-zip": "2.0.1",
"jssha": "3.3.1",
@@ -57,40 +69,9 @@
"prosemirror-transform": "1.7.5",
"prosemirror-view": "1.31.7",
"sass": "1.66.1",
- "short-unique-id": "5.0.2",
- "@hapi/hapi": "21.3.2",
- "@hapi/inert": "7.1.0",
- "@lit-labs/motion": "1.0.4",
- "@tiptap/pm": "2.0.4",
- "@tiptap/core": "2.0.4",
- "@tiptap/extension-highlight": "2.0.4",
- "@tiptap/extension-image": "2.0.4",
- "@tiptap/extension-placeholder": "2.0.4",
- "@tiptap/extension-underline": "2.0.4",
- "@tiptap/html": "2.0.4",
- "@tiptap/starter-kit": "2.0.4"
+ "short-unique-id": "5.0.2"
},
"devDependencies": {
- "axios": "1.5.0",
- "electron": "26.2.0",
- "electron-builder": "24.6.4",
- "electron-packager": "17.1.2",
- "epml": "0.3.3",
- "file-saver": "2.0.5",
- "highcharts": "11.1.0",
- "html-escaper": "3.0.3",
- "is-electron": "2.2.2",
- "lit": "2.8.0",
- "lit-translate": "2.0.1",
- "pwa-helpers": "0.9.1",
- "passive-events-support": "1.1.0",
- "redux": "4.2.1",
- "redux-thunk": "2.4.2",
- "rollup": "3.29.0",
- "rollup-plugin-node-globals": "1.4.0",
- "rollup-plugin-progress": "1.1.2",
- "rollup-plugin-scss": "3.0.0",
- "shelljs": "0.8.5",
"@babel/core": "7.22.17",
"@material/mwc-button": "0.27.0",
"@material/mwc-checkbox": "0.27.0",
@@ -140,7 +121,30 @@
"@vaadin/icons": "24.1.7",
"@vaadin/password-field": "24.1.7",
"@vaadin/tooltip": "24.1.7",
- "@zip.js/zip.js": "2.7.29"
+ "@zip.js/zip.js": "2.7.29",
+ "axios": "1.5.0",
+ "electron": "26.2.0",
+ "electron-builder": "24.6.4",
+ "electron-packager": "17.1.2",
+ "epml": "0.3.3",
+ "eslint": "^8.50.0",
+ "eslint-plugin-lit": "^1.9.1",
+ "eslint-plugin-wc": "^2.0.3",
+ "file-saver": "2.0.5",
+ "highcharts": "11.1.0",
+ "html-escaper": "3.0.3",
+ "is-electron": "2.2.2",
+ "lit": "2.8.0",
+ "lit-translate": "2.0.1",
+ "passive-events-support": "1.1.0",
+ "pwa-helpers": "0.9.1",
+ "redux": "4.2.1",
+ "redux-thunk": "2.4.2",
+ "rollup": "3.29.0",
+ "rollup-plugin-node-globals": "1.4.0",
+ "rollup-plugin-progress": "1.1.2",
+ "rollup-plugin-scss": "3.0.0",
+ "shelljs": "0.8.5"
},
"engines": {
"node": ">=18.16.1"
diff --git a/plugins/plugins/core/components/ChatImage.js b/plugins/plugins/core/components/ChatImage.js
index 71a84c45..35a3fde2 100644
--- a/plugins/plugins/core/components/ChatImage.js
+++ b/plugins/plugins/core/components/ChatImage.js
@@ -1,11 +1,7 @@
import { LitElement, html, css } from 'lit';
-import { render } from 'lit/html.js';
import {
- use,
get,
translate,
- translateUnsafeHTML,
- registerTranslateConfig,
} from 'lit-translate';
import axios from 'axios'
import { RequestQueueWithPromise } from '../../utils/queue';
@@ -228,9 +224,7 @@ getMyNode(){
identifier: this.resource.identifier
})
this.fetchStatus()
- } catch (error) {
-
- }
+ } catch (error) { /* empty */ }
}
firstUpdated(){
diff --git a/plugins/plugins/core/components/ChatPage-css.js b/plugins/plugins/core/components/ChatPage-css.js
new file mode 100644
index 00000000..50d62389
--- /dev/null
+++ b/plugins/plugins/core/components/ChatPage-css.js
@@ -0,0 +1,1154 @@
+import { css } from 'lit'
+
+export const chatpageStyles = css`
+ html {
+ scroll-behavior: smooth;
+ }
+
+ .chat-head-container {
+ display: flex;
+ justify-content: flex-start;
+ flex-direction: column;
+ height: 50vh;
+ overflow-y: auto;
+ overflow-x: hidden;
+ width: 100%;
+ }
+
+ .repliedTo-container {
+ display: flex;
+ flex-direction: row;
+ justify-content: space-between;
+ align-items: center;
+ padding: 10px 10px 8px 10px;
+ }
+
+ .senderName {
+ margin: 0;
+ color: var(--mdc-theme-primary);
+ font-weight: bold;
+ user-select: none;
+ }
+
+ .original-message {
+ color: var(--chat-bubble-msg-color);
+ text-overflow: ellipsis;
+ overflow: hidden;
+ white-space: nowrap;
+ margin: 0;
+ width: 800px;
+ }
+
+ .close-icon {
+ color: #676b71;
+ width: 18px;
+ transition: all 0.1s ease-in-out;
+ }
+
+ .close-icon:hover {
+ cursor: pointer;
+ color: #494c50;
+ }
+
+ .chat-text-area .typing-area .chatbar {
+ position: relative;
+ display: flex;
+ flex-direction: column;
+ justify-content: center;
+ align-items: center;
+ height: auto;
+ padding: 5px 5px 5px 7px;
+ overflow: hidden;
+ }
+
+ .chat-text-area .typing-area .emoji-button {
+ width: 45px;
+ height: 40px;
+ padding-top: 4px;
+ border: none;
+ outline: none;
+ background: transparent;
+ cursor: pointer;
+ max-height: 40px;
+ color: var(--black);
+ }
+
+ .emoji-button-caption {
+ width: 45px;
+ height: 40px;
+ padding-top: 4px;
+ border: none;
+ outline: none;
+ background: transparent;
+ cursor: pointer;
+ max-height: 40px;
+ color: var(--black);
+ }
+
+ .caption-container {
+ width: 100%;
+ display: flex;
+ height: auto;
+ overflow: hidden;
+ justify-content: center;
+ background-color: var(--white);
+ padding: 5px;
+ border-radius: 1px;
+ }
+
+ .chatbar-caption {
+ font-family: Roboto, sans-serif;
+ width: 70%;
+ margin-right: 10px;
+ outline: none;
+ align-items: center;
+ font-size: 18px;
+ resize: none;
+ border-top: 0;
+ border-right: 0;
+ border-left: 0;
+ border-bottom: 1px solid #cac8c8;
+ padding: 3px;
+ }
+
+ .message-size-container {
+ display: flex;
+ justify-content: flex-end;
+ width: 100%;
+ }
+
+ .message-size {
+ font-family: Roboto, sans-serif;
+ font-size: 12px;
+ color: black;
+ }
+
+ .lds-grid {
+ width: 120px;
+ height: 120px;
+ position: absolute;
+ left: 50%;
+ top: 40%;
+ }
+
+ img {
+ border-radius: 25%;
+ }
+
+ .dialogCustom {
+ position: fixed;
+ z-index: 10000;
+ display: flex;
+ justify-content: center;
+ flex-direction: column;
+ align-items: center;
+ top: 10px;
+ right: 20px;
+ user-select: none;
+ }
+
+ .dialogCustomInner {
+ min-width: 300px;
+ height: 40px;
+ background-color: var(--white);
+ box-shadow: rgb(119 119 119 / 32%) 0px 4px 12px;
+ padding: 10px;
+ border-radius: 4px;
+ }
+
+ .dialogCustomInner ul {
+ padding-left: 0px
+ }
+
+ .dialogCustomInner li {
+ margin-bottom: 10px;
+ }
+
+ .marginLoader {
+ margin-right: 8px;
+ }
+
+ .last-message-ref {
+ position: absolute;
+ font-size: 18px;
+ top: -40px;
+ right: 30px;
+ width: 50;
+ height: 50;
+ z-index: 5;
+ color: black;
+ background-color: white;
+ border-radius: 50%;
+ transition: all 0.1s ease-in-out;
+ }
+
+ .last-message-ref:hover {
+ cursor: pointer;
+ transform: scale(1.1);
+ }
+
+ .arrow-down-icon {
+ transform: scale(1.15);
+ }
+
+ .chat-container {
+ display: grid;
+ max-height: 100%;
+ }
+
+ .chat-text-area {
+ display: flex;
+ position: relative;
+ justify-content: center;
+ min-height: 60px;
+ max-height: 100%;
+ }
+
+ .chat-text-area .typing-area {
+ display: flex;
+ flex-direction: column;
+ width: 98%;
+ box-sizing: border-box;
+ margin-bottom: 8px;
+ border: 1px solid var(--chat-bubble-bg);
+ border-radius: 10px;
+ background: var(--chat-bubble-bg);
+ }
+
+ .chat-text-area .typing-area textarea {
+ display: none;
+ }
+
+ .chat-text-area .typing-area .chat-editor {
+ display: flex;
+ max-height: -webkit-fill-available;
+ width: 100%;
+ border-color: transparent;
+ margin: 0;
+ padding: 0;
+ border: none;
+ }
+
+ .repliedTo-container {
+ display: flex;
+ flex-direction: row;
+ justify-content: space-between;
+ align-items: center;
+ padding: 10px 10px 8px 10px;
+ }
+
+ .repliedTo-subcontainer {
+ display: flex;
+ flex-direction: row;
+ align-items: center;
+ gap: 15px;
+ width: 100%;
+ }
+
+ .repliedTo-message {
+ display: flex;
+ flex-direction: column;
+ gap: 5px;
+ width: 100%;
+ word-break: break-all;
+ text-overflow: ellipsis;
+ overflow: hidden;
+ max-height: 60px;
+ }
+ .repliedTo-message p {
+ margin: 0px;
+ padding: 0px;
+ }
+
+ .repliedTo-message pre {
+ white-space: pre-wrap;
+ }
+
+ .repliedTo-message p mark {
+ background-color: #ffe066;
+ border-radius: 0.25em;
+ box-decoration-break: clone;
+ padding: 0.125em 0;
+ }
+
+ .reply-icon {
+ width: 20px;
+ color: var(--mdc-theme-primary);
+ }
+
+ .close-icon {
+ color: #676b71;
+ width: 18px;
+ transition: all 0.1s ease-in-out;
+ }
+
+ .close-icon:hover {
+ cursor: pointer;
+ color: #494c50;
+ }
+
+ .chatbar-container {
+ width: 100%;
+ display: flex;
+ height: auto;
+ overflow: hidden;
+ }
+
+ .lds-grid {
+ width: 120px;
+ height: 120px;
+ position: absolute;
+ left: 50%;
+ top: 40%;
+ }
+
+ .lds-grid div {
+ position: absolute;
+ width: 34px;
+ height: 34px;
+ border-radius: 50%;
+ background: #03a9f4;
+ animation: lds-grid 1.2s linear infinite;
+ }
+
+ .lds-grid div:nth-child(1) {
+ top: 4px;
+ left: 4px;
+ animation-delay: 0s;
+ }
+
+ .lds-grid div:nth-child(2) {
+ top: 4px;
+ left: 48px;
+ animation-delay: -0.4s;
+ }
+
+ .lds-grid div:nth-child(3) {
+ top: 4px;
+ left: 90px;
+ animation-delay: -0.8s;
+ }
+
+ .lds-grid div:nth-child(4) {
+ top: 50px;
+ left: 4px;
+ animation-delay: -0.4s;
+ }
+
+ .lds-grid div:nth-child(5) {
+ top: 50px;
+ left: 48px;
+ animation-delay: -0.8s;
+ }
+
+ .lds-grid div:nth-child(6) {
+ top: 50px;
+ left: 90px;
+ animation-delay: -1.2s;
+ }
+
+ .lds-grid div:nth-child(7) {
+ top: 95px;
+ left: 4px;
+ animation-delay: -0.8s;
+ }
+
+ .lds-grid div:nth-child(8) {
+ top: 95px;
+ left: 48px;
+ animation-delay: -1.2s;
+ }
+
+ .lds-grid div:nth-child(9) {
+ top: 95px;
+ left: 90px;
+ animation-delay: -1.6s;
+ }
+
+ @keyframes lds-grid {
+ 0%, 100% {
+ opacity: 1;
+ }
+ 50% {
+ opacity: 0.5;
+ }
+ }
+
+ .float-left {
+ float: left;
+ }
+
+ img {
+ border-radius: 25%;
+ }
+
+ paper-dialog.warning {
+ width: 50%;
+ max-width: 50vw;
+ height: 30%;
+ max-height: 30vh;
+ text-align: center;
+ background-color: var(--white);
+ color: var(--black);
+ border: 1px solid var(--black);
+ border-radius: 15px;
+ line-height: 1.6;
+ overflow-y: auto;
+ overflow-x: hidden;
+ width: 100%;
+ }
+
+ .repliedTo-container {
+ display: flex;
+ flex-direction: row;
+ justify-content: space-between;
+ align-items: center;
+ padding: 10px 10px 8px 10px;
+ }
+
+ .senderName {
+ margin: 0;
+ color: var(--mdc-theme-primary);
+ font-weight: bold;
+ user-select: none;
+ }
+
+ .original-message {
+ color: var(--chat-bubble-msg-color);
+ text-overflow: ellipsis;
+ overflow: hidden;
+ white-space: nowrap;
+ margin: 0;
+ width: 800px;
+ }
+
+
+ .close-icon {
+ color: #676b71;
+ width: 18px;
+ transition: all 0.1s ease-in-out;
+ }
+
+ .close-icon:hover {
+ cursor: pointer;
+ color: #494c50;
+ }
+
+ .chat-text-area .typing-area .chatbar {
+ position: relative;
+ display: flex;
+ flex-direction: column;
+ justify-content: center;
+ align-items: center;
+ height: auto;
+ padding: 5px 5px 5px 7px;
+ overflow: hidden;
+ }
+
+ .chat-text-area .typing-area .emoji-button {
+ width: 45px;
+ height: 40px;
+ padding-top: 4px;
+ border: none;
+ outline: none;
+ background: transparent;
+ cursor: pointer;
+ max-height: 40px;
+ color: var(--black);
+ }
+
+ .emoji-button-caption {
+ width: 45px;
+ height: 40px;
+ padding-top: 4px;
+ border: none;
+ outline: none;
+ background: transparent;
+ cursor: pointer;
+ max-height: 40px;
+ color: var(--black);
+ }
+
+ .caption-container {
+ width: 100%;
+ display: flex;
+ height: auto;
+ overflow: hidden;
+ justify-content: center;
+ background-color: var(--white);
+ padding: 5px;
+ border-radius: 1px;
+ }
+
+ .chatbar-caption {
+ font-family: Roboto, sans-serif;
+ width: 70%;
+ margin-right: 10px;
+ outline: none;
+ align-items: center;
+ font-size: 18px;
+ resize: none;
+ border-top: 0;
+ border-right: 0;
+ border-left: 0;
+ border-bottom: 1px solid #cac8c8;
+ padding: 3px;
+ }
+
+ .message-size-container {
+ display: flex;
+ justify-content: flex-end;
+ width: 100%;
+ }
+
+ .message-size {
+ font-family: Roboto, sans-serif;
+ font-size: 12px;
+ color: black;
+ }
+
+ .lds-grid {
+ width: 120px;
+ height: 120px;
+ position: absolute;
+ left: 50%;
+ top: 40%;
+ }
+
+ img {
+ border-radius: 25%;
+ }
+
+ .dialogCustom {
+ position: fixed;
+ z-index: 10000;
+ display: flex;
+ justify-content: center;
+ flex-direction: column;
+ align-items: center;
+ top: 10px;
+ right: 20px;
+ user-select: none;
+ }
+
+ .dialogCustomInner {
+ min-width: 300px;
+ height: 40px;
+ background-color: var(--white);
+ box-shadow: rgb(119 119 119 / 32%) 0px 4px 12px;
+ padding: 10px;
+ border-radius: 4px;
+ }
+
+ .dialogCustomInner ul {
+ padding-left: 0px
+ }
+
+ .dialogCustomInner li {
+ margin-bottom: 10px;
+ }
+
+ .marginLoader {
+ margin-right: 8px;
+ }
+
+ .last-message-ref {
+ position: absolute;
+ font-size: 18px;
+ top: -40px;
+ right: 30px;
+ width: 50;
+ height: 50;
+ z-index: 5;
+ color: black;
+ background-color: white;
+ border-radius: 50%;
+ transition: all 0.1s ease-in-out;
+ }
+
+ .last-message-ref:hover {
+ cursor: pointer;
+ transform: scale(1.1);
+ }
+
+ .arrow-down-icon {
+ transform: scale(1.15);
+ }
+
+ .chat-container {
+ display: grid;
+ max-height: 100%;
+ }
+
+ .chat-text-area {
+ display: flex;
+ position: relative;
+ justify-content: center;
+ min-height: 60px;
+ max-height: 100%;
+ }
+
+ .chat-text-area .typing-area {
+ display: flex;
+ flex-direction: column;
+ width: 98%;
+ box-sizing: border-box;
+ margin-bottom: 8px;
+ border: 1px solid var(--chat-bubble-bg);
+ border-radius: 10px;
+ background: var(--chat-bubble-bg);
+ }
+
+ .chat-text-area .typing-area textarea {
+ display: none;
+ }
+
+ .chat-text-area .typing-area .chat-editor {
+ display: flex;
+ max-height: -webkit-fill-available;
+ width: 100%;
+ border-color: transparent;
+ margin: 0;
+ padding: 0;
+ border: none;
+ }
+
+ .repliedTo-container {
+ display: flex;
+ flex-direction: row;
+ justify-content: space-between;
+ align-items: center;
+ padding: 10px 10px 8px 10px;
+ }
+
+ .repliedTo-subcontainer {
+ display: flex;
+ flex-direction: row;
+ align-items: center;
+ gap: 15px;
+ width: 100%;
+ }
+
+ .repliedTo-message {
+ display: flex;
+ flex-direction: column;
+ gap: 5px;
+ width: 100%;
+ word-break: break-all;
+ text-overflow: ellipsis;
+ overflow: hidden;
+ max-height: 60px;
+ }
+ .repliedTo-message p {
+ margin: 0px;
+ padding: 0px;
+ }
+
+ .repliedTo-message pre {
+ white-space: pre-wrap;
+ }
+
+ .repliedTo-message p mark {
+ background-color: #ffe066;
+ border-radius: 0.25em;
+ box-decoration-break: clone;
+ padding: 0.125em 0;
+ }
+
+ .reply-icon {
+ width: 20px;
+ color: var(--mdc-theme-primary);
+ }
+
+ .close-icon {
+ color: #676b71;
+ width: 18px;
+ transition: all 0.1s ease-in-out;
+ }
+
+ .close-icon:hover {
+ cursor: pointer;
+ color: #494c50;
+ }
+
+ .chatbar-container {
+ width: 100%;
+ display: flex;
+ height: auto;
+ overflow: hidden;
+ }
+
+ .lds-grid {
+ width: 120px;
+ height: 120px;
+ position: absolute;
+ left: 50%;
+ top: 40%;
+ }
+
+ .lds-grid div {
+ position: absolute;
+ width: 34px;
+ height: 34px;
+ border-radius: 50%;
+ background: #03a9f4;
+ animation: lds-grid 1.2s linear infinite;
+ }
+
+ .lds-grid div:nth-child(1) {
+ top: 4px;
+ left: 4px;
+ animation-delay: 0s;
+ }
+
+ .lds-grid div:nth-child(2) {
+ top: 4px;
+ left: 48px;
+ animation-delay: -0.4s;
+ }
+
+ .lds-grid div:nth-child(3) {
+ top: 4px;
+ left: 90px;
+ animation-delay: -0.8s;
+ }
+
+ .lds-grid div:nth-child(4) {
+ top: 50px;
+ left: 4px;
+ animation-delay: -0.4s;
+ }
+
+ .lds-grid div:nth-child(5) {
+ top: 50px;
+ left: 48px;
+ animation-delay: -0.8s;
+ }
+
+ .lds-grid div:nth-child(6) {
+ top: 50px;
+ left: 90px;
+ animation-delay: -1.2s;
+ }
+
+ .lds-grid div:nth-child(7) {
+ top: 95px;
+ left: 4px;
+ animation-delay: -0.8s;
+ }
+
+ .lds-grid div:nth-child(8) {
+ top: 95px;
+ left: 48px;
+ animation-delay: -1.2s;
+ }
+
+ .lds-grid div:nth-child(9) {
+ top: 95px;
+ left: 90px;
+ animation-delay: -1.6s;
+ }
+
+ @keyframes lds-grid {
+ 0%, 100% {
+ opacity: 1;
+ }
+ 50% {
+ opacity: 0.5;
+ }
+ }
+
+ .float-left {
+ float: left;
+ }
+
+ img {
+ border-radius: 25%;
+ }
+
+ paper-dialog.warning {
+ width: 50%;
+ max-width: 50vw;
+ height: 30%;
+ max-height: 30vh;
+ text-align: center;
+ background-color: var(--white);
+ color: var(--black);
+ border: 1px solid var(--black);
+ border-radius: 15px;
+ line-height: 1.6;
+ overflow-y: auto;
+ }
+ .buttons {
+ text-align:right;
+ }
+
+ .dialogCustom {
+ position: fixed;
+ z-index: 10000;
+ display: flex;
+ justify-content: center;
+ flex-direction: column;
+ align-items: center;
+ top: 10px;
+ right: 20px;
+ user-select: none;
+ }
+
+ .dialogCustom p {
+ color: var(--black)
+ }
+
+ .dialogCustomInner {
+ min-width: 300px;
+ height: 40px;
+ background-color: var(--white);
+ box-shadow: rgb(119 119 119 / 32%) 0px 4px 12px;
+ padding: 10px;
+ border-radius: 4px;
+ }
+
+ .dialogCustomInner ul {
+ padding-left: 0px
+ }
+
+ .dialogCustomInner li {
+ margin-bottom: 10px;
+ }
+
+ .marginLoader {
+ margin-right: 8px;
+ }
+
+ .smallLoading,
+ .smallLoading:after {
+ border-radius: 50%;
+ width: 2px;
+ height: 2px;
+ }
+
+ .smallLoading {
+ border-width: 0.8em;
+ border-style: solid;
+ border-color: rgba(3, 169, 244, 0.2) rgba(3, 169, 244, 0.2)
+ rgba(3, 169, 244, 0.2) rgb(3, 169, 244);
+ font-size: 10px;
+ position: relative;
+ text-indent: -9999em;
+ transform: translateZ(0px);
+ animation: 1.1s linear 0s infinite normal none running loadingAnimation;
+ }
+
+ @-webkit-keyframes loadingAnimation {
+ 0% {
+ -webkit-transform: rotate(0deg);
+ transform: rotate(0deg);
+ }
+ 100% {
+ -webkit-transform: rotate(360deg);
+ transform: rotate(360deg);
+ }
+ }
+
+ @keyframes loadingAnimation {
+ 0% {
+ -webkit-transform: rotate(0deg);
+ transform: rotate(0deg);
+ }
+ 100% {
+ -webkit-transform: rotate(360deg);
+ transform: rotate(360deg);
+ }
+ }
+
+ /* Add Image Modal Dialog Styling */
+
+ .dialog-container {
+ position: relative;
+ display: flex;
+ align-items: center;
+ flex-direction: column;
+ padding: 0 10px;
+ gap: 10px;
+ height: 100%;
+ }
+
+ .dialog-container-title {
+ font-family: Montserrat;
+ color: var(--black);
+ font-size: 20px;
+ margin: 15px 0 0 0;
+ }
+
+ .divider {
+ height: 1px;
+ background-color: var(--chat-bubble-msg-color);
+ user-select: none;
+ width: 70%;
+ margin-bottom: 20px;
+ }
+
+ .dialog-container-loader {
+ position: relative;
+ display: flex;
+ align-items: center;
+ padding: 0 10px;
+ gap: 10px;
+ height: 100%;
+ }
+
+ .dialog-image {
+ width: 100%;
+ max-height: 300px;
+ border-radius: 0;
+ object-fit: contain;
+ }
+
+ .chat-right-panel {
+ flex: 0;
+ border-left: 3px solid rgb(221, 221, 221);
+ height: 100%;
+ overflow-y: auto;
+ background: transparent;
+ }
+
+ .movedin {
+ flex: 1 !important;
+ background: transparent;
+ }
+
+ .main-container {
+ display: flex;
+ height: 100%;
+ }
+
+ .group-nav-container {
+ display: flex;
+ height: 40px;
+ padding: 5px;
+ margin: 0px;
+ background-color: var(--chat-bubble-bg);
+ box-sizing: border-box;
+ align-items: center;
+ justify-content: space-between;
+ box-shadow: var(--group-drop-shadow);
+ z-index: 1;
+ }
+
+ .top-bar-icon {
+ border-radius: 50%;
+ color: var(--chat-bubble-msg-color);
+ transition: 0.3s all ease-in-out;
+ padding: 5px;
+ background-color: transparent;
+ }
+
+ .top-bar-icon:hover {
+ background-color: #e6e6e69b;
+ cursor: pointer;
+ color: var(--black)
+ }
+
+ .group-name {
+ font-family: Raleway, sans-serif;
+ font-size: 16px;
+ color: var(--black);
+ margin:0px;
+ padding:0px;
+ }
+
+
+ .modal-button {
+ font-family: Roboto, sans-serif;
+ font-size: 16px;
+ color: var(--mdc-theme-primary);
+ background-color: transparent;
+ padding: 8px 10px;
+ border-radius: 5px;
+ border: none;
+ transition: all 0.3s ease-in-out;
+ }
+
+ .modal-button-red {
+ font-family: Roboto, sans-serif;
+ font-size: 16px;
+ color: #F44336;
+ background-color: transparent;
+ padding: 8px 10px;
+ border-radius: 5px;
+ border: none;
+ transition: all 0.3s ease-in-out;
+ }
+
+ .modal-button-red:hover {
+ cursor: pointer;
+ background-color: #f4433663;
+ }
+
+ .modal-button:hover {
+ cursor: pointer;
+ background-color: #03a8f475;
+ }
+
+ .name-input {
+ width: 100%;
+ margin-bottom: 15px;
+ outline: 0;
+ border-width: 0 0 2px;
+ border-color: var(--mdc-theme-primary);
+ background-color: transparent;
+ padding: 10px;
+ font-family: Roboto, sans-serif;
+ font-size: 15px;
+ color: var(--chat-bubble-msg-color);
+ box-sizing: border-box;
+ }
+
+ .name-input::selection {
+ background-color: var(--mdc-theme-primary);
+ color: white;
+ }
+
+ .name-input::placeholder {
+ opacity: 0.9;
+ color: var(--black);
+ }
+
+ .search-results-div {
+ position: absolute;
+ top: 25px;
+ right: 25px;
+ }
+
+ .search-field {
+ width: 100%;
+ position: relative;
+ margin-bottom: 5px;
+ }
+
+ .search-icon {
+ position: absolute;
+ right: 3px;
+ top: 0;
+ color: var(--chat-bubble-msg-color);
+ transition: all 0.3s ease-in-out;
+ background: none;
+ border-radius: 50%;
+ padding: 6px 3px;
+ font-size: 21px;
+ }
+
+ .search-icon:hover {
+ cursor: pointer;
+ background: #d7d7d75c;
+ }
+
+ .user-verified {
+ position: absolute;
+ top: 0;
+ right: 5px;
+ display: flex;
+ align-items: center;
+ gap: 10px;
+ color: #04aa2e;
+ font-size: 13px;
+ }
+
+ .user-selected {
+ display: flex;
+ justify-content: space-between;
+ align-items: center;
+ margin: 0;
+ box-shadow: rgb(0 0 0 / 16%) 0px 3px 6px, rgb(0 0 0 / 23%) 0px 3px 6px;
+ padding: 18px 20px;
+ color: var(--chat-bubble-msg-color);
+ border-radius: 5px;
+ background-color: #ececec96;
+ }
+
+ .user-selected-name {
+ font-family: Roboto, sans-serif;
+ margin: 0;
+ font-size: 16px;
+ }
+
+ .forwarding-container {
+ display: flex;
+ gap: 15px;
+ }
+
+ .user-selected-forwarding {
+ font-family: Livvic, sans-serif;
+ margin: 0;
+ font-size: 16px;
+ }
+
+ .close-forwarding {
+ color: #676b71;
+ width: 14px;
+ transition: all 0.1s ease-in-out;
+ }
+
+ .close-forwarding:hover {
+ cursor: pointer;
+ color: #4e5054;
+ }
+
+ .chat-gifs {
+ position: absolute;
+ right: 15px;
+ bottom: 100px;
+ justify-self: flex-end;
+ width: fit-content;
+ height: auto;
+ transform: translateY(30%);
+ animation: smooth-appear 0.5s ease forwards;
+ z-index: 5;
+ }
+
+ @keyframes smooth-appear {
+ to {
+ transform: translateY(0);
+ }
+ }
+
+ .gifs-backdrop {
+ top: 0;
+ height: 100vh;
+ width: 100vw;
+ background: transparent;
+ position: fixed;
+ }
+
+ .modal-button-row {
+ display: flex;
+ align-items: center;
+ justify-content: space-between;
+ width: 100%;
+ }
+
+
+ .attachment-icon-container {
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ height: 120px;
+ width: 120px;
+ border-radius: 50%;
+ border: none;
+ background-color: var(--mdc-theme-primary);
+ }
+
+ .attachment-icon {
+ width: 70%;
+ }
+
+ .attachment-name {
+ font-family: Work Sans, sans-serif;
+ font-size: 20px;
+ color: var(--chat-bubble-msg-color);
+ margin: 0px;
+ letter-spacing: 1px;
+ padding: 5px 0px;
+ }
+`
diff --git a/plugins/plugins/core/components/ChatPage.js b/plugins/plugins/core/components/ChatPage.js
index d06c1a3d..ccc3b70c 100644
--- a/plugins/plugins/core/components/ChatPage.js
+++ b/plugins/plugins/core/components/ChatPage.js
@@ -1,7 +1,7 @@
-import { LitElement, html, css } from 'lit'
+import { LitElement, html } from 'lit'
import { animate } from '@lit-labs/motion'
import { Epml } from '../../../epml.js'
-import { use, get, translate, translateUnsafeHTML, registerTranslateConfig } from 'lit-translate'
+import { get, translate } from 'lit-translate'
import { generateHTML } from '@tiptap/core'
import { unsafeHTML } from 'lit/directives/unsafe-html.js'
import { Editor, Extension } from '@tiptap/core'
@@ -12,7 +12,6 @@ import { publishData } from '../../utils/publish-image.js'
import { EmojiPicker } from 'emoji-picker-js'
import {ifDefined} from 'lit/directives/if-defined.js';
-import * as zip from '@zip.js/zip.js'
import localForage from 'localforage'
import StarterKit from '@tiptap/starter-kit'
@@ -49,6 +48,7 @@ import '@polymer/paper-spinner/paper-spinner-lite.js'
import { RequestQueue } from '../../utils/queue.js'
import { modalHelper } from '../../utils/publish-modal.js'
import { generateIdFromAddresses } from '../../utils/id-generation.js'
+import { chatpageStyles } from './ChatPage-css.js'
const chatLastSeen = localForage.createInstance({
name: "chat-last-seen",
@@ -137,1160 +137,11 @@ class ChatPage extends LitElement {
}
static get styles() {
- return css`
- html {
- scroll-behavior: smooth;
- }
-
- .chat-head-container {
- display: flex;
- justify-content: flex-start;
- flex-direction: column;
- height: 50vh;
- overflow-y: auto;
- overflow-x: hidden;
- width: 100%;
- }
-
- .repliedTo-container {
- display: flex;
- flex-direction: row;
- justify-content: space-between;
- align-items: center;
- padding: 10px 10px 8px 10px;
- }
-
- .senderName {
- margin: 0;
- color: var(--mdc-theme-primary);
- font-weight: bold;
- user-select: none;
- }
-
- .original-message {
- color: var(--chat-bubble-msg-color);
- text-overflow: ellipsis;
- overflow: hidden;
- white-space: nowrap;
- margin: 0;
- width: 800px;
- }
-
- .close-icon {
- color: #676b71;
- width: 18px;
- transition: all 0.1s ease-in-out;
- }
-
- .close-icon:hover {
- cursor: pointer;
- color: #494c50;
- }
-
- .chat-text-area .typing-area .chatbar {
- position: relative;
- display: flex;
- flex-direction: column;
- justify-content: center;
- align-items: center;
- height: auto;
- padding: 5px 5px 5px 7px;
- overflow: hidden;
- }
-
- .chat-text-area .typing-area .emoji-button {
- width: 45px;
- height: 40px;
- padding-top: 4px;
- border: none;
- outline: none;
- background: transparent;
- cursor: pointer;
- max-height: 40px;
- color: var(--black);
- }
-
- .emoji-button-caption {
- width: 45px;
- height: 40px;
- padding-top: 4px;
- border: none;
- outline: none;
- background: transparent;
- cursor: pointer;
- max-height: 40px;
- color: var(--black);
- }
-
- .caption-container {
- width: 100%;
- display: flex;
- height: auto;
- overflow: hidden;
- justify-content: center;
- background-color: var(--white);
- padding: 5px;
- border-radius: 1px;
- }
-
- .chatbar-caption {
- font-family: Roboto, sans-serif;
- width: 70%;
- margin-right: 10px;
- outline: none;
- align-items: center;
- font-size: 18px;
- resize: none;
- border-top: 0;
- border-right: 0;
- border-left: 0;
- border-bottom: 1px solid #cac8c8;
- padding: 3px;
- }
-
- .message-size-container {
- display: flex;
- justify-content: flex-end;
- width: 100%;
- }
-
- .message-size {
- font-family: Roboto, sans-serif;
- font-size: 12px;
- color: black;
- }
-
- .lds-grid {
- width: 120px;
- height: 120px;
- position: absolute;
- left: 50%;
- top: 40%;
- }
-
- img {
- border-radius: 25%;
- }
-
- .dialogCustom {
- position: fixed;
- z-index: 10000;
- display: flex;
- justify-content: center;
- flex-direction: column;
- align-items: center;
- top: 10px;
- right: 20px;
- user-select: none;
- }
-
- .dialogCustomInner {
- min-width: 300px;
- height: 40px;
- background-color: var(--white);
- box-shadow: rgb(119 119 119 / 32%) 0px 4px 12px;
- padding: 10px;
- border-radius: 4px;
- }
-
- .dialogCustomInner ul {
- padding-left: 0px
- }
-
- .dialogCustomInner li {
- margin-bottom: 10px;
- }
-
- .marginLoader {
- margin-right: 8px;
- }
-
- .last-message-ref {
- position: absolute;
- font-size: 18px;
- top: -40px;
- right: 30px;
- width: 50;
- height: 50;
- z-index: 5;
- color: black;
- background-color: white;
- border-radius: 50%;
- transition: all 0.1s ease-in-out;
- }
-
- .last-message-ref:hover {
- cursor: pointer;
- transform: scale(1.1);
- }
-
- .arrow-down-icon {
- transform: scale(1.15);
- }
-
- .chat-container {
- display: grid;
- max-height: 100%;
- }
-
- .chat-text-area {
- display: flex;
- position: relative;
- justify-content: center;
- min-height: 60px;
- max-height: 100%;
- }
-
- .chat-text-area .typing-area {
- display: flex;
- flex-direction: column;
- width: 98%;
- box-sizing: border-box;
- margin-bottom: 8px;
- border: 1px solid var(--chat-bubble-bg);
- border-radius: 10px;
- background: var(--chat-bubble-bg);
- }
-
- .chat-text-area .typing-area textarea {
- display: none;
- }
-
- .chat-text-area .typing-area .chat-editor {
- display: flex;
- max-height: -webkit-fill-available;
- width: 100%;
- border-color: transparent;
- margin: 0;
- padding: 0;
- border: none;
- }
-
- .repliedTo-container {
- display: flex;
- flex-direction: row;
- justify-content: space-between;
- align-items: center;
- padding: 10px 10px 8px 10px;
- }
-
- .repliedTo-subcontainer {
- display: flex;
- flex-direction: row;
- align-items: center;
- gap: 15px;
- width: 100%;
- }
-
- .repliedTo-message {
- display: flex;
- flex-direction: column;
- gap: 5px;
- width: 100%;
- word-break: break-all;
- text-overflow: ellipsis;
- overflow: hidden;
- max-height: 60px;
- }
- .repliedTo-message p {
- margin: 0px;
- padding: 0px;
- }
-
- .repliedTo-message pre {
- white-space: pre-wrap;
- }
-
- .repliedTo-message p mark {
- background-color: #ffe066;
- border-radius: 0.25em;
- box-decoration-break: clone;
- padding: 0.125em 0;
- }
-
- .reply-icon {
- width: 20px;
- color: var(--mdc-theme-primary);
- }
-
- .close-icon {
- color: #676b71;
- width: 18px;
- transition: all 0.1s ease-in-out;
- }
-
- .close-icon:hover {
- cursor: pointer;
- color: #494c50;
- }
-
- .chatbar-container {
- width: 100%;
- display: flex;
- height: auto;
- overflow: hidden;
- }
-
- .lds-grid {
- width: 120px;
- height: 120px;
- position: absolute;
- left: 50%;
- top: 40%;
- }
-
- .lds-grid div {
- position: absolute;
- width: 34px;
- height: 34px;
- border-radius: 50%;
- background: #03a9f4;
- animation: lds-grid 1.2s linear infinite;
- }
-
- .lds-grid div:nth-child(1) {
- top: 4px;
- left: 4px;
- animation-delay: 0s;
- }
-
- .lds-grid div:nth-child(2) {
- top: 4px;
- left: 48px;
- animation-delay: -0.4s;
- }
-
- .lds-grid div:nth-child(3) {
- top: 4px;
- left: 90px;
- animation-delay: -0.8s;
- }
-
- .lds-grid div:nth-child(4) {
- top: 50px;
- left: 4px;
- animation-delay: -0.4s;
- }
-
- .lds-grid div:nth-child(5) {
- top: 50px;
- left: 48px;
- animation-delay: -0.8s;
- }
-
- .lds-grid div:nth-child(6) {
- top: 50px;
- left: 90px;
- animation-delay: -1.2s;
- }
-
- .lds-grid div:nth-child(7) {
- top: 95px;
- left: 4px;
- animation-delay: -0.8s;
- }
-
- .lds-grid div:nth-child(8) {
- top: 95px;
- left: 48px;
- animation-delay: -1.2s;
- }
-
- .lds-grid div:nth-child(9) {
- top: 95px;
- left: 90px;
- animation-delay: -1.6s;
- }
-
- @keyframes lds-grid {
- 0%, 100% {
- opacity: 1;
- }
- 50% {
- opacity: 0.5;
- }
- }
-
- .float-left {
- float: left;
- }
-
- img {
- border-radius: 25%;
- }
-
- paper-dialog.warning {
- width: 50%;
- max-width: 50vw;
- height: 30%;
- max-height: 30vh;
- text-align: center;
- background-color: var(--white);
- color: var(--black);
- border: 1px solid var(--black);
- border-radius: 15px;
- line-height: 1.6;
- overflow-y: auto;
- overflow-x: hidden;
- width: 100%;
- }
-
- .repliedTo-container {
- display: flex;
- flex-direction: row;
- justify-content: space-between;
- align-items: center;
- padding: 10px 10px 8px 10px;
- }
-
- .senderName {
- margin: 0;
- color: var(--mdc-theme-primary);
- font-weight: bold;
- user-select: none;
- }
-
- .original-message {
- color: var(--chat-bubble-msg-color);
- text-overflow: ellipsis;
- overflow: hidden;
- white-space: nowrap;
- margin: 0;
- width: 800px;
- }
-
-
- .close-icon {
- color: #676b71;
- width: 18px;
- transition: all 0.1s ease-in-out;
- }
-
- .close-icon:hover {
- cursor: pointer;
- color: #494c50;
- }
-
- .chat-text-area .typing-area .chatbar {
- position: relative;
- display: flex;
- flex-direction: column;
- justify-content: center;
- align-items: center;
- height: auto;
- padding: 5px 5px 5px 7px;
- overflow: hidden;
- }
-
- .chat-text-area .typing-area .emoji-button {
- width: 45px;
- height: 40px;
- padding-top: 4px;
- border: none;
- outline: none;
- background: transparent;
- cursor: pointer;
- max-height: 40px;
- color: var(--black);
- }
-
- .emoji-button-caption {
- width: 45px;
- height: 40px;
- padding-top: 4px;
- border: none;
- outline: none;
- background: transparent;
- cursor: pointer;
- max-height: 40px;
- color: var(--black);
- }
-
- .caption-container {
- width: 100%;
- display: flex;
- height: auto;
- overflow: hidden;
- justify-content: center;
- background-color: var(--white);
- padding: 5px;
- border-radius: 1px;
- }
-
- .chatbar-caption {
- font-family: Roboto, sans-serif;
- width: 70%;
- margin-right: 10px;
- outline: none;
- align-items: center;
- font-size: 18px;
- resize: none;
- border-top: 0;
- border-right: 0;
- border-left: 0;
- border-bottom: 1px solid #cac8c8;
- padding: 3px;
- }
-
- .message-size-container {
- display: flex;
- justify-content: flex-end;
- width: 100%;
- }
-
- .message-size {
- font-family: Roboto, sans-serif;
- font-size: 12px;
- color: black;
- }
-
- .lds-grid {
- width: 120px;
- height: 120px;
- position: absolute;
- left: 50%;
- top: 40%;
- }
-
- img {
- border-radius: 25%;
- }
-
- .dialogCustom {
- position: fixed;
- z-index: 10000;
- display: flex;
- justify-content: center;
- flex-direction: column;
- align-items: center;
- top: 10px;
- right: 20px;
- user-select: none;
- }
-
- .dialogCustomInner {
- min-width: 300px;
- height: 40px;
- background-color: var(--white);
- box-shadow: rgb(119 119 119 / 32%) 0px 4px 12px;
- padding: 10px;
- border-radius: 4px;
- }
-
- .dialogCustomInner ul {
- padding-left: 0px
- }
-
- .dialogCustomInner li {
- margin-bottom: 10px;
- }
-
- .marginLoader {
- margin-right: 8px;
- }
-
- .last-message-ref {
- position: absolute;
- font-size: 18px;
- top: -40px;
- right: 30px;
- width: 50;
- height: 50;
- z-index: 5;
- color: black;
- background-color: white;
- border-radius: 50%;
- transition: all 0.1s ease-in-out;
- }
-
- .last-message-ref:hover {
- cursor: pointer;
- transform: scale(1.1);
- }
-
- .arrow-down-icon {
- transform: scale(1.15);
- }
-
- .chat-container {
- display: grid;
- max-height: 100%;
- }
-
- .chat-text-area {
- display: flex;
- position: relative;
- justify-content: center;
- min-height: 60px;
- max-height: 100%;
- }
-
- .chat-text-area .typing-area {
- display: flex;
- flex-direction: column;
- width: 98%;
- box-sizing: border-box;
- margin-bottom: 8px;
- border: 1px solid var(--chat-bubble-bg);
- border-radius: 10px;
- background: var(--chat-bubble-bg);
- }
-
- .chat-text-area .typing-area textarea {
- display: none;
- }
-
- .chat-text-area .typing-area .chat-editor {
- display: flex;
- max-height: -webkit-fill-available;
- width: 100%;
- border-color: transparent;
- margin: 0;
- padding: 0;
- border: none;
- }
-
- .repliedTo-container {
- display: flex;
- flex-direction: row;
- justify-content: space-between;
- align-items: center;
- padding: 10px 10px 8px 10px;
- }
-
- .repliedTo-subcontainer {
- display: flex;
- flex-direction: row;
- align-items: center;
- gap: 15px;
- width: 100%;
- }
-
- .repliedTo-message {
- display: flex;
- flex-direction: column;
- gap: 5px;
- width: 100%;
- word-break: break-all;
- text-overflow: ellipsis;
- overflow: hidden;
- max-height: 60px;
- }
- .repliedTo-message p {
- margin: 0px;
- padding: 0px;
- }
-
- .repliedTo-message pre {
- white-space: pre-wrap;
- }
-
- .repliedTo-message p mark {
- background-color: #ffe066;
- border-radius: 0.25em;
- box-decoration-break: clone;
- padding: 0.125em 0;
- }
-
- .reply-icon {
- width: 20px;
- color: var(--mdc-theme-primary);
- }
-
- .close-icon {
- color: #676b71;
- width: 18px;
- transition: all 0.1s ease-in-out;
- }
-
- .close-icon:hover {
- cursor: pointer;
- color: #494c50;
- }
-
- .chatbar-container {
- width: 100%;
- display: flex;
- height: auto;
- overflow: hidden;
- }
-
- .lds-grid {
- width: 120px;
- height: 120px;
- position: absolute;
- left: 50%;
- top: 40%;
- }
-
- .lds-grid div {
- position: absolute;
- width: 34px;
- height: 34px;
- border-radius: 50%;
- background: #03a9f4;
- animation: lds-grid 1.2s linear infinite;
- }
-
- .lds-grid div:nth-child(1) {
- top: 4px;
- left: 4px;
- animation-delay: 0s;
- }
-
- .lds-grid div:nth-child(2) {
- top: 4px;
- left: 48px;
- animation-delay: -0.4s;
- }
-
- .lds-grid div:nth-child(3) {
- top: 4px;
- left: 90px;
- animation-delay: -0.8s;
- }
-
- .lds-grid div:nth-child(4) {
- top: 50px;
- left: 4px;
- animation-delay: -0.4s;
- }
-
- .lds-grid div:nth-child(5) {
- top: 50px;
- left: 48px;
- animation-delay: -0.8s;
- }
-
- .lds-grid div:nth-child(6) {
- top: 50px;
- left: 90px;
- animation-delay: -1.2s;
- }
-
- .lds-grid div:nth-child(7) {
- top: 95px;
- left: 4px;
- animation-delay: -0.8s;
- }
-
- .lds-grid div:nth-child(8) {
- top: 95px;
- left: 48px;
- animation-delay: -1.2s;
- }
-
- .lds-grid div:nth-child(9) {
- top: 95px;
- left: 90px;
- animation-delay: -1.6s;
- }
-
- @keyframes lds-grid {
- 0%, 100% {
- opacity: 1;
- }
- 50% {
- opacity: 0.5;
- }
- }
-
- .float-left {
- float: left;
- }
-
- img {
- border-radius: 25%;
- }
-
- paper-dialog.warning {
- width: 50%;
- max-width: 50vw;
- height: 30%;
- max-height: 30vh;
- text-align: center;
- background-color: var(--white);
- color: var(--black);
- border: 1px solid var(--black);
- border-radius: 15px;
- line-height: 1.6;
- overflow-y: auto;
- }
- .buttons {
- text-align:right;
- }
-
- .dialogCustom {
- position: fixed;
- z-index: 10000;
- display: flex;
- justify-content: center;
- flex-direction: column;
- align-items: center;
- top: 10px;
- right: 20px;
- user-select: none;
- }
-
- .dialogCustom p {
- color: var(--black)
- }
-
- .dialogCustomInner {
- min-width: 300px;
- height: 40px;
- background-color: var(--white);
- box-shadow: rgb(119 119 119 / 32%) 0px 4px 12px;
- padding: 10px;
- border-radius: 4px;
- }
-
- .dialogCustomInner ul {
- padding-left: 0px
- }
-
- .dialogCustomInner li {
- margin-bottom: 10px;
- }
-
- .marginLoader {
- margin-right: 8px;
- }
-
- .smallLoading,
- .smallLoading:after {
- border-radius: 50%;
- width: 2px;
- height: 2px;
- }
-
- .smallLoading {
- border-width: 0.8em;
- border-style: solid;
- border-color: rgba(3, 169, 244, 0.2) rgba(3, 169, 244, 0.2)
- rgba(3, 169, 244, 0.2) rgb(3, 169, 244);
- font-size: 10px;
- position: relative;
- text-indent: -9999em;
- transform: translateZ(0px);
- animation: 1.1s linear 0s infinite normal none running loadingAnimation;
- }
-
- @-webkit-keyframes loadingAnimation {
- 0% {
- -webkit-transform: rotate(0deg);
- transform: rotate(0deg);
- }
- 100% {
- -webkit-transform: rotate(360deg);
- transform: rotate(360deg);
- }
- }
-
- @keyframes loadingAnimation {
- 0% {
- -webkit-transform: rotate(0deg);
- transform: rotate(0deg);
- }
- 100% {
- -webkit-transform: rotate(360deg);
- transform: rotate(360deg);
- }
- }
-
- /* Add Image Modal Dialog Styling */
-
- .dialog-container {
- position: relative;
- display: flex;
- align-items: center;
- flex-direction: column;
- padding: 0 10px;
- gap: 10px;
- height: 100%;
- }
-
- .dialog-container-title {
- font-family: Montserrat;
- color: var(--black);
- font-size: 20px;
- margin: 15px 0 0 0;
- }
-
- .divider {
- height: 1px;
- background-color: var(--chat-bubble-msg-color);
- user-select: none;
- width: 70%;
- margin-bottom: 20px;
- }
-
- .dialog-container-loader {
- position: relative;
- display: flex;
- align-items: center;
- padding: 0 10px;
- gap: 10px;
- height: 100%;
- }
-
- .dialog-image {
- width: 100%;
- max-height: 300px;
- border-radius: 0;
- object-fit: contain;
- }
-
- .chat-right-panel {
- flex: 0;
- border-left: 3px solid rgb(221, 221, 221);
- height: 100%;
- overflow-y: auto;
- background: transparent;
- }
-
- .movedin {
- flex: 1 !important;
- background: transparent;
- }
-
- .main-container {
- display: flex;
- height: 100%;
- }
-
- .group-nav-container {
- display: flex;
- height: 40px;
- padding: 5px;
- margin: 0px;
- background-color: var(--chat-bubble-bg);
- box-sizing: border-box;
- align-items: center;
- justify-content: space-between;
- box-shadow: var(--group-drop-shadow);
- z-index: 1;
- }
-
- .top-bar-icon {
- border-radius: 50%;
- color: var(--chat-bubble-msg-color);
- transition: 0.3s all ease-in-out;
- padding: 5px;
- background-color: transparent;
- }
-
- .top-bar-icon:hover {
- background-color: #e6e6e69b;
- cursor: pointer;
- color: var(--black)
- }
-
- .group-name {
- font-family: Raleway, sans-serif;
- font-size: 16px;
- color: var(--black);
- margin:0px;
- padding:0px;
- }
-
-
- .modal-button {
- font-family: Roboto, sans-serif;
- font-size: 16px;
- color: var(--mdc-theme-primary);
- background-color: transparent;
- padding: 8px 10px;
- border-radius: 5px;
- border: none;
- transition: all 0.3s ease-in-out;
- }
-
- .modal-button-red {
- font-family: Roboto, sans-serif;
- font-size: 16px;
- color: #F44336;
- background-color: transparent;
- padding: 8px 10px;
- border-radius: 5px;
- border: none;
- transition: all 0.3s ease-in-out;
- }
-
- .modal-button-red:hover {
- cursor: pointer;
- background-color: #f4433663;
- }
-
- .modal-button:hover {
- cursor: pointer;
- background-color: #03a8f475;
- }
-
- .name-input {
- width: 100%;
- margin-bottom: 15px;
- outline: 0;
- border-width: 0 0 2px;
- border-color: var(--mdc-theme-primary);
- background-color: transparent;
- padding: 10px;
- font-family: Roboto, sans-serif;
- font-size: 15px;
- color: var(--chat-bubble-msg-color);
- box-sizing: border-box;
- }
-
- .name-input::selection {
- background-color: var(--mdc-theme-primary);
- color: white;
- }
-
- .name-input::placeholder {
- opacity: 0.9;
- color: var(--black);
- }
-
- .search-results-div {
- position: absolute;
- top: 25px;
- right: 25px;
- }
-
- .search-field {
- width: 100%;
- position: relative;
- margin-bottom: 5px;
- }
-
- .search-icon {
- position: absolute;
- right: 3px;
- top: 0;
- color: var(--chat-bubble-msg-color);
- transition: all 0.3s ease-in-out;
- background: none;
- border-radius: 50%;
- padding: 6px 3px;
- font-size: 21px;
- }
-
- .search-icon:hover {
- cursor: pointer;
- background: #d7d7d75c;
- }
-
- .user-verified {
- position: absolute;
- top: 0;
- right: 5px;
- display: flex;
- align-items: center;
- gap: 10px;
- color: #04aa2e;
- font-size: 13px;
- }
-
- .user-selected {
- display: flex;
- justify-content: space-between;
- align-items: center;
- margin: 0;
- box-shadow: rgb(0 0 0 / 16%) 0px 3px 6px, rgb(0 0 0 / 23%) 0px 3px 6px;
- padding: 18px 20px;
- color: var(--chat-bubble-msg-color);
- border-radius: 5px;
- background-color: #ececec96;
- }
-
- .user-selected-name {
- font-family: Roboto, sans-serif;
- margin: 0;
- font-size: 16px;
- }
-
- .forwarding-container {
- display: flex;
- gap: 15px;
- }
-
- .user-selected-forwarding {
- font-family: Livvic, sans-serif;
- margin: 0;
- font-size: 16px;
- }
-
- .close-forwarding {
- color: #676b71;
- width: 14px;
- transition: all 0.1s ease-in-out;
- }
-
- .close-forwarding:hover {
- cursor: pointer;
- color: #4e5054;
- }
-
- .chat-gifs {
- position: absolute;
- right: 15px;
- bottom: 100px;
- justify-self: flex-end;
- width: fit-content;
- height: auto;
- transform: translateY(30%);
- animation: smooth-appear 0.5s ease forwards;
- z-index: 5;
- }
-
- @keyframes smooth-appear {
- to {
- transform: translateY(0);
- }
- }
-
- .gifs-backdrop {
- top: 0;
- height: 100vh;
- width: 100vw;
- background: transparent;
- position: fixed;
- }
-
- .modal-button-row {
- display: flex;
- align-items: center;
- justify-content: space-between;
- width: 100%;
- }
+ return [chatpageStyles];
+ }
- .attachment-icon-container {
- display: flex;
- align-items: center;
- justify-content: center;
- height: 120px;
- width: 120px;
- border-radius: 50%;
- border: none;
- background-color: var(--mdc-theme-primary);
- }
-
- .attachment-icon {
- width: 70%;
- }
-
- .attachment-name {
- font-family: Work Sans, sans-serif;
- font-size: 20px;
- color: var(--chat-bubble-msg-color);
- margin: 0px;
- letter-spacing: 1px;
- padding: 5px 0px;
- }
-`
- }
-
+
constructor() {
super()
this.getOldMessage = this.getOldMessage.bind(this)
@@ -2029,16 +880,14 @@ class ChatPage extends LitElement {
address: member.member,
name: name ? name : undefined
}
- } catch (error) {
- }
+ } catch (error) { /* empty */ }
return memberItem
})
const membersWithName = await Promise.all(getMembersWithName)
this.groupMembers = [...this.groupMembers, ...membersWithName]
this.pageNumber = this.pageNumber + 1
- } catch (error) {
- }
+ } catch (error) { /* empty */ }
}
async connectedCallback() {
@@ -2160,7 +1009,7 @@ class ChatPage extends LitElement {
document.addEventListener('keydown', this.initialChat)
document.addEventListener('paste', this.pasteImage)
- let callback = (entries, observer) => {
+ let callback = (entries) => {
entries.forEach(entry => {
if (entry.isIntersecting) {
@@ -2223,8 +1072,7 @@ class ChatPage extends LitElement {
initialChat(e) {
if (this.editor && !this.editor.isFocused && this.currentEditor === '_chatEditorDOM' && !this.openForwardOpen && !this.openTipUser && !this.openGifModal) {
// WARNING: Deprecated methods from KeyBoard Event
- if (e.code === "Space" || e.keyCode === 32 || e.which === 32) {
- } else if (inputKeyCodes.includes(e.keyCode)) {
+ if (e.code === "Space" || e.keyCode === 32 || e.which === 32) { /* empty */ } else if (inputKeyCodes.includes(e.keyCode)) {
this.editor.commands.insertContent(e.key)
this.editor.commands.focus('end')
} else {
@@ -2241,8 +1089,7 @@ class ChatPage extends LitElement {
const [firstItem] = dataTransfer.items
const blob = firstItem.getAsFile()
return blob
- } catch (error) {
- }
+ } catch (error) { /* empty */ }
}
if (event.clipboardData) {
const blobFound = handleTransferIntoURL(event.clipboardData)
@@ -2396,8 +1243,7 @@ class ChatPage extends LitElement {
delete message.reactions
const stringifyMessageObject = JSON.stringify(message)
this.sendMessage({messageText: stringifyMessageObject, chatReference: undefined, isForward: true})
- } catch (error) {
- }
+ } catch (error) { /* empty */ }
}
showLastMessageRefScroller(props) {
@@ -2514,8 +1360,7 @@ class ChatPage extends LitElement {
address: member.member,
name: name ? name : undefined
}
- } catch (error) {
- }
+ } catch (error) { /* empty */ }
return memberItem
})
@@ -2529,16 +1374,14 @@ class ChatPage extends LitElement {
address: member.member,
name: name ? name : undefined
}
- } catch (error) {
- }
+ } catch (error) { /* empty */ }
return memberItem
})
const membersWithName = await Promise.all(getMembersWithName)
this.groupAdmin = membersAdminsWithName
this.groupMembers = membersWithName
this.groupInfo = getGroupInfo
- } catch (error) {
- }
+ } catch (error) { /* empty */ }
}
}
@@ -2775,7 +1618,7 @@ class ChatPage extends LitElement {
res()
}
- this.webWorkerDecodeMessages.onerror = e => {
+ this.webWorkerDecodeMessages.onerror = () => {
rej()
}
@@ -2794,7 +1637,7 @@ class ChatPage extends LitElement {
let list = [...decodeMsgs]
- await new Promise((res, rej) => {
+ await new Promise((res) => {
this.webWorkerSortMessages.postMessage({list});
@@ -2834,7 +1677,7 @@ class ChatPage extends LitElement {
res()
}
- this.webWorkerDecodeMessages.onerror = e => {
+ this.webWorkerDecodeMessages.onerror = () => {
rej()
}
@@ -2852,7 +1695,7 @@ class ChatPage extends LitElement {
let list = [...decodeMsgs]
- await new Promise((res, rej) => {
+ await new Promise((res) => {
this.webWorkerSortMessages.postMessage({list});
@@ -2899,7 +1742,7 @@ class ChatPage extends LitElement {
res()
}
- this.webWorkerDecodeMessages.onerror = e => {
+ this.webWorkerDecodeMessages.onerror = () => {
rej()
}
@@ -2950,7 +1793,7 @@ class ChatPage extends LitElement {
res()
}
- this.webWorkerDecodeMessages.onerror = e => {
+ this.webWorkerDecodeMessages.onerror = () => {
rej()
}
@@ -3009,7 +1852,7 @@ class ChatPage extends LitElement {
res()
}
- this.webWorkerDecodeMessages.onerror = e => {
+ this.webWorkerDecodeMessages.onerror = () => {
rej()
}
@@ -3027,7 +1870,7 @@ class ChatPage extends LitElement {
let list = [ ...decodeMsgs]
- await new Promise((res, rej) => {
+ await new Promise((res) => {
this.webWorkerSortMessages.postMessage({list});
@@ -3068,7 +1911,7 @@ class ChatPage extends LitElement {
res()
}
- this.webWorkerDecodeMessages.onerror = e => {
+ this.webWorkerDecodeMessages.onerror = () => {
rej()
}
@@ -3088,7 +1931,7 @@ class ChatPage extends LitElement {
let list = [...decodeMsgs]
- await new Promise((res, rej) => {
+ await new Promise((res) => {
this.webWorkerSortMessages.postMessage({list});
@@ -3178,7 +2021,7 @@ class ChatPage extends LitElement {
res()
}
- this.webWorkerDecodeMessages.onerror = e => {
+ this.webWorkerDecodeMessages.onerror = () => {
rej()
}
@@ -3205,7 +2048,7 @@ class ChatPage extends LitElement {
let list = decodedMessages
- await new Promise((res, rej) => {
+ await new Promise((res) => {
this.webWorkerSortMessages.postMessage({list});
@@ -3489,8 +2332,7 @@ class ChatPage extends LitElement {
if (e.data) {
this.processMessages(JSON.parse(e.data), false)
}
- } catch (error) {
- }
+ } catch (error) { /* empty */ }
}
}
@@ -3617,8 +2459,7 @@ class ChatPage extends LitElement {
if (e.data) {
this.processMessages(JSON.parse(e.data), false)
}
- } catch (error) {
- }
+ } catch (error) { /* empty */ }
}
}
@@ -3696,8 +2537,7 @@ class ChatPage extends LitElement {
_publicKey.key = ''
_publicKey.hasPubKey = false
}
- } catch (error) {
- }
+ } catch (error) { /* empty */ }
if (!hasPublicKey || !_publicKey.hasPubKey) {
let err4string = get("chatpage.cchange39")
@@ -3781,7 +2621,7 @@ class ChatPage extends LitElement {
compressedFile = file
resolve()
},
- error(err) {
+ error() {
},
})
})
@@ -3834,7 +2674,7 @@ class ChatPage extends LitElement {
} else if (outSideMsg && outSideMsg.type === 'deleteAttachment') {
this.isDeletingAttachment = true
let compressedFile = ''
- var str = "iVBORw0KGgoAAAANSUhEUgAAAsAAAAGMAQMAAADuk4YmAAAAA1BMVEX///+nxBvIAAAAAXRSTlMAQObYZgAAADlJREFUeF7twDEBAAAAwiD7p7bGDlgYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAGJrAABgPqdWQAAAABJRU5ErkJggg=="
+ const str = "iVBORw0KGgoAAAANSUhEUgAAAsAAAAGMAQMAAADuk4YmAAAAA1BMVEX///+nxBvIAAAAAXRSTlMAQObYZgAAADlJREFUeF7twDEBAAAAwiD7p7bGDlgYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAGJrAABgPqdWQAAAABJRU5ErkJggg=="
const userName = outSideMsg.name
const identifier = outSideMsg.identifier
@@ -3878,7 +2718,7 @@ class ChatPage extends LitElement {
compressedFile = file
resolve()
},
- error(err) {
+ error() {
},
})
})
@@ -3987,7 +2827,7 @@ class ChatPage extends LitElement {
compressedFile = file
resolve()
},
- error(err) {
+ error() {
},
})
})
@@ -4334,8 +3174,7 @@ class ChatPage extends LitElement {
publicKey.key = ''
publicKey.hasPubKey = false
}
- } catch (error) {
- }
+ } catch (error) { /* empty */ }
}
if (!this.forwardActiveChatHeadUrl.selected && this.shadowRoot.getElementById("sendTo").value !== "") {
@@ -4403,8 +3242,7 @@ class ChatPage extends LitElement {
publicKey.key = ''
publicKey.hasPubKey = false
}
- } catch (error) {
- }
+ } catch (error) { /* empty */ }
}
const isRecipient = this.forwardActiveChatHeadUrl.url.includes('direct') === true ? true : false
@@ -4491,7 +3329,7 @@ class ChatPage extends LitElement {
return _response
}
- const getSendChatResponse = (response, isForward, customErrorMessage) => {
+ const getSendChatResponse = (response, isForward) => {
if (response === true) {
// this.resetChatEditor()
if (isForward) {
diff --git a/plugins/plugins/core/components/ChatRightPanelResources.js b/plugins/plugins/core/components/ChatRightPanelResources.js
index 64e16fbe..23686aac 100644
--- a/plugins/plugins/core/components/ChatRightPanelResources.js
+++ b/plugins/plugins/core/components/ChatRightPanelResources.js
@@ -1,8 +1,5 @@
import { LitElement, html, css } from 'lit';
-import { render } from 'lit/html.js';
import { Epml } from '../../../epml';
-import { getUserNameFromAddress } from '../../utils/getUserNameFromAddress';
-import snackbar from './snackbar.js';
import '@material/mwc-button';
import '@material/mwc-dialog';
import '@polymer/paper-spinner/paper-spinner-lite.js';
@@ -15,11 +12,8 @@ import './UserInfo/UserInfo';
import './ChatImage';
import './ReusableImage';
import {
- use,
get,
translate,
- translateUnsafeHTML,
- registerTranslateConfig,
} from 'lit-translate';
import { generateIdFromAddresses } from '../../utils/id-generation';
diff --git a/plugins/plugins/core/components/ChatScroller.js b/plugins/plugins/core/components/ChatScroller.js
index 6fdd3a8b..48faa283 100644
--- a/plugins/plugins/core/components/ChatScroller.js
+++ b/plugins/plugins/core/components/ChatScroller.js
@@ -1,22 +1,16 @@
-import { LitElement, html, css } from 'lit';
-import { render } from 'lit/html.js';
+import { LitElement, html, } from 'lit';
import { repeat } from 'lit/directives/repeat.js';
import {
- use,
get,
translate,
- translateUnsafeHTML,
- registerTranslateConfig,
} from 'lit-translate';
import { unsafeHTML } from 'lit/directives/unsafe-html.js';
import { chatStyles } from './ChatScroller-css.js';
import { Epml } from '../../../epml';
import { cropAddress } from '../../utils/cropAddress';
import { roundToNearestDecimal } from '../../utils/roundToNearestDecimal.js';
-import { EmojiPicker } from 'emoji-picker-js';
import { generateHTML } from '@tiptap/core';
import isElectron from 'is-electron';
-import localForage from 'localforage';
import axios from 'axios';
import Highlight from '@tiptap/extension-highlight';
@@ -40,9 +34,6 @@ import '@vaadin/tooltip';
import { chatLimit, totalMsgCount } from './ChatPage.js';
const parentEpml = new Epml({ type: 'WINDOW', source: window.parent });
-const chatLastSeen = localForage.createInstance({
- name: 'chat-last-seen',
-});
let toggledMessage = {};
const uid = new ShortUniqueId();
@@ -61,7 +52,7 @@ const extractComponents = async (url) => {
return null;
}
- url = url.replace(/^(qortal\:\/\/)/, '');
+ url = url.replace(/^(qortal:\/\/)/, '');
if (url.includes('/')) {
let parts = url.split('/');
const service = parts[0].toUpperCase();
@@ -313,7 +304,7 @@ class ChatScroller extends LitElement {
this.requestUpdate();
}
- async newListMessages(newMessages, message) {
+ async newListMessages(newMessages) {
let data = [];
const copy = [...newMessages];
copy.forEach((newMessage) => {
@@ -370,7 +361,7 @@ class ChatScroller extends LitElement {
}
}
- copy.forEach((newMessage, groupIndex) => {
+ copy.forEach((newMessage) => {
const lastGroupedMessage = data[data.length - 1];
if (
@@ -399,13 +390,8 @@ class ChatScroller extends LitElement {
async addNewMessages(newMessages, type) {
if (this.disableAddingNewMessages && type === 'newComingInAuto') return;
- let previousScrollTop;
- let previousScrollHeight;
const viewElement = this.shadowRoot.querySelector('#viewElement');
- previousScrollTop = viewElement.scrollTop;
- previousScrollHeight = viewElement.scrollHeight;
-
const copy = type === 'initial' ? [] : [...this.messagesToRender];
for (const newMessage of newMessages) {
@@ -531,8 +517,6 @@ class ChatScroller extends LitElement {
viewElement.scrollTop + viewElement.clientHeight ===
viewElement.scrollHeight;
- const previousScrollTop = viewElement.scrollTop;
- const previousScrollHeight = viewElement.scrollHeight;
// Using map to return a new array, rather than mutating the old one
const newMessagesToRender = this.messagesToRender.map((group) => {
@@ -750,7 +734,7 @@ class ChatScroller extends LitElement {
this.chatId.includes(item._chatId)
),
(message) => message.messageText,
- (message, indexMessage) => html`
+ (message) => html`