diff --git a/package-lock.json b/package-lock.json index 18ce626..476f07b 100644 --- a/package-lock.json +++ b/package-lock.json @@ -144,6 +144,20 @@ "semver": "^5.5.0" } }, + "@babel/helper-create-class-features-plugin": { + "version": "7.9.6", + "resolved": "https://verdaccio.lossless.one/@babel%2fhelper-create-class-features-plugin/-/helper-create-class-features-plugin-7.9.6.tgz", + "integrity": "sha512-6N9IeuyHvMBRyjNYOMJHrhwtu4WJMrYf8hVbEHD3pbbbmNOk1kmXSQs7bA4dYDUaIx4ZEzdnvo6NwC3WHd/Qow==", + "dev": true, + "requires": { + "@babel/helper-function-name": "^7.9.5", + "@babel/helper-member-expression-to-functions": "^7.8.3", + "@babel/helper-optimise-call-expression": "^7.8.3", + "@babel/helper-plugin-utils": "^7.8.3", + "@babel/helper-replace-supers": "^7.9.6", + "@babel/helper-split-export-declaration": "^7.8.3" + } + }, "@babel/helper-create-regexp-features-plugin": { "version": "7.8.8", "resolved": "https://verdaccio.lossless.one/@babel%2fhelper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.8.8.tgz", @@ -363,6 +377,27 @@ "@babel/plugin-syntax-async-generators": "^7.8.0" } }, + "@babel/plugin-proposal-class-properties": { + "version": "7.8.3", + "resolved": "https://verdaccio.lossless.one/@babel%2fplugin-proposal-class-properties/-/plugin-proposal-class-properties-7.8.3.tgz", + "integrity": "sha512-EqFhbo7IosdgPgZggHaNObkmO1kNUe3slaKu54d5OWvy+p9QIKOzK1GAEpAIsZtWVtPXUHSMcT4smvDrCfY4AA==", + "dev": true, + "requires": { + "@babel/helper-create-class-features-plugin": "^7.8.3", + "@babel/helper-plugin-utils": "^7.8.3" + } + }, + "@babel/plugin-proposal-decorators": { + "version": "7.8.3", + "resolved": "https://verdaccio.lossless.one/@babel%2fplugin-proposal-decorators/-/plugin-proposal-decorators-7.8.3.tgz", + "integrity": "sha512-e3RvdvS4qPJVTe288DlXjwKflpfy1hr0j5dz5WpIYYeP7vQZg2WfAEIp8k5/Lwis/m5REXEteIz6rrcDtXXG7w==", + "dev": true, + "requires": { + "@babel/helper-create-class-features-plugin": "^7.8.3", + "@babel/helper-plugin-utils": "^7.8.3", + "@babel/plugin-syntax-decorators": "^7.8.3" + } + }, "@babel/plugin-proposal-dynamic-import": { "version": "7.8.3", "resolved": "https://verdaccio.lossless.one/@babel%2fplugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.8.3.tgz", @@ -453,6 +488,15 @@ "@babel/helper-plugin-utils": "^7.8.0" } }, + "@babel/plugin-syntax-decorators": { + "version": "7.8.3", + "resolved": "https://verdaccio.lossless.one/@babel%2fplugin-syntax-decorators/-/plugin-syntax-decorators-7.8.3.tgz", + "integrity": "sha512-8Hg4dNNT9/LcA1zQlfwuKR8BUc/if7Q7NkTam9sGTcJphLwpf2g4S42uhspQrIrR+dpzE0dtTqBVFoHl8GtnnQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.3" + } + }, "@babel/plugin-syntax-dynamic-import": { "version": "7.8.3", "resolved": "https://verdaccio.lossless.one/@babel%2fplugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", @@ -814,6 +858,18 @@ "@babel/helper-plugin-utils": "^7.8.3" } }, + "@babel/plugin-transform-runtime": { + "version": "7.9.6", + "resolved": "https://verdaccio.lossless.one/@babel%2fplugin-transform-runtime/-/plugin-transform-runtime-7.9.6.tgz", + "integrity": "sha512-qcmiECD0mYOjOIt8YHNsAP1SxPooC/rDmfmiSK9BNY72EitdSc7l44WTEklaWuFtbOEBjNhWWyph/kOImbNJ4w==", + "dev": true, + "requires": { + "@babel/helper-module-imports": "^7.8.3", + "@babel/helper-plugin-utils": "^7.8.3", + "resolve": "^1.8.1", + "semver": "^5.5.1" + } + }, "@babel/plugin-transform-shorthand-properties": { "version": "7.8.3", "resolved": "https://verdaccio.lossless.one/@babel%2fplugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.8.3.tgz", @@ -1000,6 +1056,64 @@ "to-fast-properties": "^2.0.0" } }, + "@designestate/dees-domtools": { + "version": "1.0.21", + "resolved": "https://verdaccio.lossless.one/@designestate%2fdees-domtools/-/dees-domtools-1.0.21.tgz", + "integrity": "sha512-oT8f0vjxitSUn+452u3IZj8D9zQGMh7POw+zH1bGLrlmhHrh+b9hshLyMIec6gjNejAa+HSp+3pyxSALfq0wiQ==", + "requires": { + "@pushrocks/lik": "^4.0.12", + "@pushrocks/smartpromise": "^3.0.6", + "@pushrocks/smartstate": "^1.0.16", + "lit-element": "^2.3.1" + }, + "dependencies": { + "@pushrocks/lik": { + "version": "4.0.12", + "resolved": "https://verdaccio.lossless.one/@pushrocks%2flik/-/lik-4.0.12.tgz", + "integrity": "sha512-ffd3bJL+kMuhXDulO5VC5OqgfhZR3I4HoVN7IBLlN1z6Dco6j4NFrp+/GKDoPssFPNQY4okv+N4Hm2T/7t+4CQ==", + "requires": { + "@pushrocks/smartdelay": "^2.0.9", + "@pushrocks/smartmatch": "^1.0.7", + "@pushrocks/smartpromise": "^3.0.6", + "@pushrocks/smartrx": "^2.0.15", + "@pushrocks/smarttime": "^3.0.18", + "@pushrocks/smartunique": "^3.0.3", + "@types/minimatch": "^3.0.3", + "symbol-tree": "^3.2.4" + } + }, + "@pushrocks/smartdelay": { + "version": "2.0.9", + "resolved": "https://verdaccio.lossless.one/@pushrocks%2fsmartdelay/-/smartdelay-2.0.9.tgz", + "integrity": "sha512-aVZJit1wq4fBG6ft2LJSPEnNbLSbRUuwNYggSeDqLtY7mXvAQmu4SIsXx18gfOtf69CoZR36RY3ff/IJv62C7w==", + "requires": { + "@pushrocks/smartpromise": "^3.0.6" + } + }, + "@pushrocks/smartrx": { + "version": "2.0.15", + "resolved": "https://verdaccio.lossless.one/@pushrocks%2fsmartrx/-/smartrx-2.0.15.tgz", + "integrity": "sha512-bvxyO19sUgWj7S/WflVO7QVYggTUXoM4rCYn+Akid844CC5zoSzIRx9Egm2xeMD6y4WbBbFWpHr67L7nEYxGWQ==", + "requires": { + "@pushrocks/lik": "^4.0.11", + "@pushrocks/smartpromise": "^3.0.6", + "rxjs": "^6.5.5" + } + }, + "@pushrocks/smarttime": { + "version": "3.0.18", + "resolved": "https://verdaccio.lossless.one/@pushrocks%2fsmarttime/-/smarttime-3.0.18.tgz", + "integrity": "sha512-G5Tx3etWRQNfNMrwX9gT3LGUAqIDwJ+7TitJsKPZcRGTuPoObhO8lXYkNQj9YuVxFVGmE+4xZaszYQO4xcLaPA==", + "requires": { + "@pushrocks/smartdelay": "^2.0.9", + "@pushrocks/smartpromise": "^3.0.2", + "croner": "^1.1.23", + "dayjs": "^1.8.27", + "is-nan": "^1.3.0" + } + } + } + }, "@gitzone/tsbuild": { "version": "2.1.24", "resolved": "https://verdaccio.lossless.one/@gitzone%2ftsbuild/-/tsbuild-2.1.24.tgz", @@ -1015,6 +1129,57 @@ "typescript": "^3.5.2" } }, + "@gitzone/tsbundle": { + "version": "1.0.69", + "resolved": "https://verdaccio.lossless.one/@gitzone%2ftsbundle/-/tsbundle-1.0.69.tgz", + "integrity": "sha512-ncug4QrZKD0Xyjt5linq+9mUex8MV26oycbECXANTYNp7DPx6F1QJxMJWNDAO2+b+kvuv+1D+qufB1AuOyBClg==", + "dev": true, + "requires": { + "@babel/core": "^7.9.6", + "@babel/plugin-proposal-class-properties": "^7.8.3", + "@babel/plugin-proposal-decorators": "^7.8.3", + "@babel/plugin-transform-runtime": "^7.9.6", + "@babel/preset-env": "^7.9.6", + "@babel/runtime": "^7.9.6", + "@pushrocks/early": "^3.0.3", + "@pushrocks/smartcli": "^3.0.11", + "@pushrocks/smartfile": "^7.0.12", + "@pushrocks/smartlog": "^2.0.21", + "@pushrocks/smartlog-destination-local": "^8.0.2", + "@rollup/plugin-commonjs": "^12.0.0", + "@rollup/plugin-json": "^4.0.3", + "@rollup/plugin-node-resolve": "^8.0.0", + "@rollup/plugin-typescript": "^4.1.2", + "@types/html-minifier": "^3.5.3", + "@types/node": "^14.0.5", + "html-minifier": "^4.0.0", + "rollup": "^2.10.9", + "rollup-plugin-babel": "^4.4.0", + "rollup-plugin-sourcemaps": "^0.6.2", + "rollup-plugin-terser": "^5.3.0", + "terser": "^4.7.0", + "typescript": "^3.9.3" + }, + "dependencies": { + "@types/node": { + "version": "14.0.5", + "resolved": "https://verdaccio.lossless.one/@types%2fnode/-/node-14.0.5.tgz", + "integrity": "sha512-90hiq6/VqtQgX8Sp0EzeIsv3r+ellbGj4URKj5j30tLlZvRUpnAe9YbYnjl3pJM93GyXU0tghHhvXHq+5rnCKA==", + "dev": true + }, + "terser": { + "version": "4.7.0", + "resolved": "https://verdaccio.lossless.one/terser/-/terser-4.7.0.tgz", + "integrity": "sha512-Lfb0RiZcjRDXCC3OSHJpEkxJ9Qeqs6mp2v4jf2MHfy8vGERmVDuvjXdd/EnP5Deme5F2yBRBymKmKHCBg2echw==", + "dev": true, + "requires": { + "commander": "^2.20.0", + "source-map": "~0.6.1", + "source-map-support": "~0.5.12" + } + } + } + }, "@gitzone/tsrun": { "version": "1.2.8", "resolved": "https://verdaccio.lossless.one/@gitzone%2ftsrun/-/tsrun-1.2.8.tgz", @@ -2186,6 +2351,14 @@ "resolved": "https://verdaccio.lossless.one/@pushrocks%2fsmartmanifest/-/smartmanifest-1.0.8.tgz", "integrity": "sha512-inHmTp58Z8xl+c6mdOrfxc9IjUKuqho1i+WUI74G7rn6HwEn3cMd/06R1v80Xlx+95EYWzBwnYtuo7j7DafrdQ==" }, + "@pushrocks/smartmatch": { + "version": "1.0.7", + "resolved": "https://verdaccio.lossless.one/@pushrocks%2fsmartmatch/-/smartmatch-1.0.7.tgz", + "integrity": "sha512-D+lK5HIKO4Kj1Jm/ycKvy1VzDJ3V6ucHqmf5DMBFdm18BrMj2Zb6M7wN8HUKtkfHvOI7ig85JMuANSEyO7kAPg==", + "requires": { + "matcher": "^3.0.0" + } + }, "@pushrocks/smartmime": { "version": "1.0.3", "resolved": "https://verdaccio.lossless.one/@pushrocks%2fsmartmime/-/smartmime-1.0.3.tgz", @@ -2278,6 +2451,64 @@ "which": "^1.3.1" } }, + "@pushrocks/smartstate": { + "version": "1.0.16", + "resolved": "https://verdaccio.lossless.one/@pushrocks%2fsmartstate/-/smartstate-1.0.16.tgz", + "integrity": "sha512-RUdeKuM2N5S3su9WEX2XoSE0VV12vMyR4vh4h2gV+uS4Syu4H13ntoN2MQfGh63JHkviICELZ0u+XqRtNvAO4g==", + "requires": { + "@pushrocks/lik": "^4.0.12", + "@pushrocks/smartpromise": "^3.0.6", + "@pushrocks/smartrx": "^2.0.15", + "rxjs": "^6.5.5" + }, + "dependencies": { + "@pushrocks/lik": { + "version": "4.0.12", + "resolved": "https://verdaccio.lossless.one/@pushrocks%2flik/-/lik-4.0.12.tgz", + "integrity": "sha512-ffd3bJL+kMuhXDulO5VC5OqgfhZR3I4HoVN7IBLlN1z6Dco6j4NFrp+/GKDoPssFPNQY4okv+N4Hm2T/7t+4CQ==", + "requires": { + "@pushrocks/smartdelay": "^2.0.9", + "@pushrocks/smartmatch": "^1.0.7", + "@pushrocks/smartpromise": "^3.0.6", + "@pushrocks/smartrx": "^2.0.15", + "@pushrocks/smarttime": "^3.0.18", + "@pushrocks/smartunique": "^3.0.3", + "@types/minimatch": "^3.0.3", + "symbol-tree": "^3.2.4" + } + }, + "@pushrocks/smartdelay": { + "version": "2.0.9", + "resolved": "https://verdaccio.lossless.one/@pushrocks%2fsmartdelay/-/smartdelay-2.0.9.tgz", + "integrity": "sha512-aVZJit1wq4fBG6ft2LJSPEnNbLSbRUuwNYggSeDqLtY7mXvAQmu4SIsXx18gfOtf69CoZR36RY3ff/IJv62C7w==", + "requires": { + "@pushrocks/smartpromise": "^3.0.6" + } + }, + "@pushrocks/smartrx": { + "version": "2.0.15", + "resolved": "https://verdaccio.lossless.one/@pushrocks%2fsmartrx/-/smartrx-2.0.15.tgz", + "integrity": "sha512-bvxyO19sUgWj7S/WflVO7QVYggTUXoM4rCYn+Akid844CC5zoSzIRx9Egm2xeMD6y4WbBbFWpHr67L7nEYxGWQ==", + "requires": { + "@pushrocks/lik": "^4.0.11", + "@pushrocks/smartpromise": "^3.0.6", + "rxjs": "^6.5.5" + } + }, + "@pushrocks/smarttime": { + "version": "3.0.18", + "resolved": "https://verdaccio.lossless.one/@pushrocks%2fsmarttime/-/smarttime-3.0.18.tgz", + "integrity": "sha512-G5Tx3etWRQNfNMrwX9gT3LGUAqIDwJ+7TitJsKPZcRGTuPoObhO8lXYkNQj9YuVxFVGmE+4xZaszYQO4xcLaPA==", + "requires": { + "@pushrocks/smartdelay": "^2.0.9", + "@pushrocks/smartpromise": "^3.0.2", + "croner": "^1.1.23", + "dayjs": "^1.8.27", + "is-nan": "^1.3.0" + } + } + } + }, "@pushrocks/smartstring": { "version": "3.0.18", "resolved": "https://verdaccio.lossless.one/@pushrocks%2fsmartstring/-/smartstring-3.0.18.tgz", @@ -2329,6 +2560,85 @@ "rxjs": "^6.5.3" } }, + "@rollup/plugin-commonjs": { + "version": "12.0.0", + "resolved": "https://verdaccio.lossless.one/@rollup%2fplugin-commonjs/-/plugin-commonjs-12.0.0.tgz", + "integrity": "sha512-8+mDQt1QUmN+4Y9D3yCG8AJNewuTSLYPJVzKKUZ+lGeQrI+bV12Tc5HCyt2WdlnG6ihIL/DPbKRJlB40DX40mw==", + "dev": true, + "requires": { + "@rollup/pluginutils": "^3.0.8", + "commondir": "^1.0.1", + "estree-walker": "^1.0.1", + "glob": "^7.1.2", + "is-reference": "^1.1.2", + "magic-string": "^0.25.2", + "resolve": "^1.11.0" + }, + "dependencies": { + "magic-string": { + "version": "0.25.7", + "resolved": "https://verdaccio.lossless.one/magic-string/-/magic-string-0.25.7.tgz", + "integrity": "sha512-4CrMT5DOHTDk4HYDlzmwu4FVCcIYI8gauveasrdCu2IKIFOJ3f0v/8MDGJCDL9oD2ppz/Av1b0Nj345H9M+XIA==", + "dev": true, + "requires": { + "sourcemap-codec": "^1.4.4" + } + } + } + }, + "@rollup/plugin-json": { + "version": "4.0.3", + "resolved": "https://verdaccio.lossless.one/@rollup%2fplugin-json/-/plugin-json-4.0.3.tgz", + "integrity": "sha512-QMUT0HZNf4CX17LMdwaslzlYHUKTYGuuk34yYIgZrNdu+pMEfqMS55gck7HEeHBKXHM4cz5Dg1OVwythDdbbuQ==", + "dev": true, + "requires": { + "@rollup/pluginutils": "^3.0.8" + } + }, + "@rollup/plugin-node-resolve": { + "version": "8.0.0", + "resolved": "https://verdaccio.lossless.one/@rollup%2fplugin-node-resolve/-/plugin-node-resolve-8.0.0.tgz", + "integrity": "sha512-5poJCChrkVggXXND/sQ7yNqwjUNT4fP31gpRWCnSNnlXuUXTCMHT33xZrTGxgjm5Rl18MHj7iEzlCT8rYWwQSA==", + "dev": true, + "requires": { + "@rollup/pluginutils": "^3.0.8", + "@types/resolve": "0.0.8", + "builtin-modules": "^3.1.0", + "deep-freeze": "^0.0.1", + "deepmerge": "^4.2.2", + "is-module": "^1.0.0", + "resolve": "^1.14.2" + }, + "dependencies": { + "builtin-modules": { + "version": "3.1.0", + "resolved": "https://verdaccio.lossless.one/builtin-modules/-/builtin-modules-3.1.0.tgz", + "integrity": "sha512-k0KL0aWZuBt2lrxrcASWDfwOLMnodeQjodT/1SxEQAXsHANgo6ZC/VEaSEHCXt7aSTZ4/4H5LKa+tBXmW7Vtvw==", + "dev": true + } + } + }, + "@rollup/plugin-typescript": { + "version": "4.1.2", + "resolved": "https://verdaccio.lossless.one/@rollup%2fplugin-typescript/-/plugin-typescript-4.1.2.tgz", + "integrity": "sha512-+7UlGat/99e2JbmGNnIauxwEhYLwrL7adO/tSJxUN57xrrS3Ps+ZzYpLCDGPZJ57j+ZJTZLLN89KXW9JMEB+jg==", + "dev": true, + "requires": { + "@rollup/pluginutils": "^3.0.1", + "resolve": "^1.14.1" + } + }, + "@rollup/pluginutils": { + "version": "3.0.10", + "resolved": "https://verdaccio.lossless.one/@rollup%2fpluginutils/-/pluginutils-3.0.10.tgz", + "integrity": "sha512-d44M7t+PjmMrASHbhgpSbVgtL6EFyX7J4mYxwQ/c5eoaE6N2VgCgEcWVzNnwycIloti+/MpwFr8qfw+nRw00sw==", + "dev": true, + "requires": { + "@types/estree": "0.0.39", + "estree-walker": "^1.0.1", + "picomatch": "^2.2.2" + } + }, "@types/body-parser": { "version": "1.19.0", "resolved": "https://verdaccio.lossless.one/@types%2fbody-parser/-/body-parser-1.19.0.tgz", @@ -2347,6 +2657,15 @@ "chokidar": "*" } }, + "@types/clean-css": { + "version": "4.2.1", + "resolved": "https://verdaccio.lossless.one/@types%2fclean-css/-/clean-css-4.2.1.tgz", + "integrity": "sha512-A1HQhQ0hkvqqByJMgg+Wiv9p9XdoYEzuwm11SVo1mX2/4PSdhjcrUlilJQoqLscIheC51t1D5g+EFWCXZ2VTQQ==", + "dev": true, + "requires": { + "@types/node": "*" + } + }, "@types/color-name": { "version": "1.1.1", "resolved": "https://verdaccio.lossless.one/@types%2fcolor-name/-/color-name-1.1.1.tgz", @@ -2370,6 +2689,12 @@ "moment": ">=2.14.0" } }, + "@types/estree": { + "version": "0.0.39", + "resolved": "https://verdaccio.lossless.one/@types%2festree/-/estree-0.0.39.tgz", + "integrity": "sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==", + "dev": true + }, "@types/expect": { "version": "1.20.4", "resolved": "https://verdaccio.lossless.one/@types%2fexpect/-/expect-1.20.4.tgz", @@ -2434,6 +2759,17 @@ "@types/express": "*" } }, + "@types/html-minifier": { + "version": "3.5.3", + "resolved": "https://verdaccio.lossless.one/@types%2fhtml-minifier/-/html-minifier-3.5.3.tgz", + "integrity": "sha512-j1P/4PcWVVCPEy5lofcHnQ6BtXz9tHGiFPWzqm7TtGuWZEfCHEP446HlkSNc9fQgNJaJZ6ewPtp2aaFla/Uerg==", + "dev": true, + "requires": { + "@types/clean-css": "*", + "@types/relateurl": "*", + "@types/uglify-js": "*" + } + }, "@types/luxon": { "version": "1.24.0", "resolved": "https://verdaccio.lossless.one/@types%2fluxon/-/luxon-1.24.0.tgz", @@ -2484,6 +2820,21 @@ "resolved": "https://verdaccio.lossless.one/@types%2frange-parser/-/range-parser-1.2.3.tgz", "integrity": "sha512-ewFXqrQHlFsgc09MK5jP5iR7vumV/BYayNC6PgJO2LPe8vrnNFyjQjSppfEngITi0qvfKtzFvgKymGheFM9UOA==" }, + "@types/relateurl": { + "version": "0.2.28", + "resolved": "https://verdaccio.lossless.one/@types%2frelateurl/-/relateurl-0.2.28.tgz", + "integrity": "sha1-a9p9uGU/piZD9e5p6facEaOS46Y=", + "dev": true + }, + "@types/resolve": { + "version": "0.0.8", + "resolved": "https://verdaccio.lossless.one/@types%2fresolve/-/resolve-0.0.8.tgz", + "integrity": "sha512-auApPaJf3NPfe18hSoJkp8EbZzer2ISk7o8mCC3M9he/a04+gbMF97NkpD2S8riMGvm4BMRI59/SZQSaLTKpsQ==", + "dev": true, + "requires": { + "@types/node": "*" + } + }, "@types/sax": { "version": "1.2.1", "resolved": "https://verdaccio.lossless.one/@types%2fsax/-/sax-1.2.1.tgz", @@ -2514,6 +2865,15 @@ "@types/node": "*" } }, + "@types/uglify-js": { + "version": "3.9.2", + "resolved": "https://verdaccio.lossless.one/@types%2fuglify-js/-/uglify-js-3.9.2.tgz", + "integrity": "sha512-d6dIfpPbF+8B7WiCi2ELY7m0w1joD8cRW4ms88Emdb2w062NeEpbNCeWwVCgzLRpVG+5e74VFSg4rgJ2xXjEiQ==", + "dev": true, + "requires": { + "source-map": "^0.6.1" + } + }, "@types/uuid": { "version": "7.0.3", "resolved": "https://verdaccio.lossless.one/@types%2fuuid/-/uuid-7.0.3.tgz", @@ -3288,6 +3648,16 @@ "integrity": "sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA=", "dev": true }, + "camel-case": { + "version": "3.0.0", + "resolved": "https://verdaccio.lossless.one/camel-case/-/camel-case-3.0.0.tgz", + "integrity": "sha1-yjw2iKTpzzpM2nd9xNy8cTJJz3M=", + "dev": true, + "requires": { + "no-case": "^2.2.0", + "upper-case": "^1.1.1" + } + }, "camelcase": { "version": "5.3.1", "resolved": "https://verdaccio.lossless.one/camelcase/-/camelcase-5.3.1.tgz", @@ -3409,6 +3779,15 @@ } } }, + "clean-css": { + "version": "4.2.3", + "resolved": "https://verdaccio.lossless.one/clean-css/-/clean-css-4.2.3.tgz", + "integrity": "sha512-VcMWDN54ZN/DS+g58HYL5/n4Zrqe8vHJpGA8KdgUXFU4fuP/aHNw8eld9SyEIyabIMJX/0RaY/fplOo5hYLSFA==", + "dev": true, + "requires": { + "source-map": "~0.6.0" + } + }, "cli-cursor": { "version": "2.1.0", "resolved": "https://verdaccio.lossless.one/cli-cursor/-/cli-cursor-2.1.0.tgz", @@ -3589,6 +3968,12 @@ "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", "dev": true }, + "commondir": { + "version": "1.0.1", + "resolved": "https://verdaccio.lossless.one/commondir/-/commondir-1.0.1.tgz", + "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=", + "dev": true + }, "component-emitter": { "version": "1.3.0", "resolved": "https://verdaccio.lossless.one/component-emitter/-/component-emitter-1.3.0.tgz", @@ -3818,6 +4203,11 @@ "moment-timezone": "^0.5.x" } }, + "croner": { + "version": "1.1.23", + "resolved": "https://verdaccio.lossless.one/croner/-/croner-1.1.23.tgz", + "integrity": "sha512-VsSyKBVtshU8qd2yPEWsBv5xxTLbRUuq6DX5bgUb4TTn/H6hmFGtfJtr0NKswu1UEsZZ6uhYc0kSOAvPlicQUA==" + }, "cross-spawn": { "version": "6.0.5", "resolved": "https://verdaccio.lossless.one/cross-spawn/-/cross-spawn-6.0.5.tgz", @@ -4160,6 +4550,11 @@ "whatwg-url": "^7.0.0" } }, + "dayjs": { + "version": "1.8.27", + "resolved": "https://verdaccio.lossless.one/dayjs/-/dayjs-1.8.27.tgz", + "integrity": "sha512-Jpa2acjWIeOkg8KURUHICk0EqnEFSSF5eMEscsOgyJ92ZukXwmpmRkPSUka7KHSfbj5eKH30ieosYip+ky9emQ==" + }, "deasync": { "version": "0.1.20", "resolved": "https://verdaccio.lossless.one/deasync/-/deasync-0.1.20.tgz", @@ -4190,12 +4585,24 @@ "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=", "dev": true }, + "deep-freeze": { + "version": "0.0.1", + "resolved": "https://verdaccio.lossless.one/deep-freeze/-/deep-freeze-0.0.1.tgz", + "integrity": "sha1-OgsABd4YZygZ39OM0x+RF5yJPoQ=", + "dev": true + }, "deep-is": { "version": "0.1.3", "resolved": "https://verdaccio.lossless.one/deep-is/-/deep-is-0.1.3.tgz", "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=", "dev": true }, + "deepmerge": { + "version": "4.2.2", + "resolved": "https://verdaccio.lossless.one/deepmerge/-/deepmerge-4.2.2.tgz", + "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==", + "dev": true + }, "defaults": { "version": "1.0.3", "resolved": "https://verdaccio.lossless.one/defaults/-/defaults-1.0.3.tgz", @@ -4209,7 +4616,6 @@ "version": "1.1.3", "resolved": "https://verdaccio.lossless.one/define-properties/-/define-properties-1.1.3.tgz", "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", - "dev": true, "requires": { "object-keys": "^1.0.12" } @@ -4597,6 +5003,12 @@ "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", "dev": true }, + "estree-walker": { + "version": "1.0.1", + "resolved": "https://verdaccio.lossless.one/estree-walker/-/estree-walker-1.0.1.tgz", + "integrity": "sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==", + "dev": true + }, "esutils": { "version": "2.0.3", "resolved": "https://verdaccio.lossless.one/esutils/-/esutils-2.0.3.tgz", @@ -5317,6 +5729,12 @@ "minimalistic-assert": "^1.0.1" } }, + "he": { + "version": "1.2.0", + "resolved": "https://verdaccio.lossless.one/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", + "dev": true + }, "helmet": { "version": "3.22.0", "resolved": "https://verdaccio.lossless.one/helmet/-/helmet-3.22.0.tgz", @@ -5431,6 +5849,21 @@ "whatwg-encoding": "^1.0.1" } }, + "html-minifier": { + "version": "4.0.0", + "resolved": "https://verdaccio.lossless.one/html-minifier/-/html-minifier-4.0.0.tgz", + "integrity": "sha512-aoGxanpFPLg7MkIl/DDFYtb0iWz7jMFGqFhvEDZga6/4QTjneiD8I/NXL1x5aaoCp7FSIT6h/OhykDdPsbtMig==", + "dev": true, + "requires": { + "camel-case": "^3.0.0", + "clean-css": "^4.2.1", + "commander": "^2.19.0", + "he": "^1.2.0", + "param-case": "^2.1.1", + "relateurl": "^0.2.7", + "uglify-js": "^3.5.1" + } + }, "html-tags": { "version": "1.2.0", "resolved": "https://verdaccio.lossless.one/html-tags/-/html-tags-1.2.0.tgz", @@ -5757,6 +6190,20 @@ "html-tags": "^1.0.0" } }, + "is-module": { + "version": "1.0.0", + "resolved": "https://verdaccio.lossless.one/is-module/-/is-module-1.0.0.tgz", + "integrity": "sha1-Mlj7afeMFNW4FdZkM2tM/7ZEFZE=", + "dev": true + }, + "is-nan": { + "version": "1.3.0", + "resolved": "https://verdaccio.lossless.one/is-nan/-/is-nan-1.3.0.tgz", + "integrity": "sha512-z7bbREymOqt2CCaZVly8aC4ML3Xhfi0ekuOnjO2L8vKdl+CttdVoGZQhd4adMFAsxQ5VeRVwORs4tU8RH+HFtQ==", + "requires": { + "define-properties": "^1.1.3" + } + }, "is-number": { "version": "7.0.0", "resolved": "https://verdaccio.lossless.one/is-number/-/is-number-7.0.0.tgz", @@ -5784,6 +6231,15 @@ "integrity": "sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ==", "dev": true }, + "is-reference": { + "version": "1.1.4", + "resolved": "https://verdaccio.lossless.one/is-reference/-/is-reference-1.1.4.tgz", + "integrity": "sha512-uJA/CDPO3Tao3GTrxYn6AwkM4nUPJiGGYu5+cB8qbC7WGFlrKZbiRo7SFKxUAEpFUfiHofWCXBUNhvYJMh+6zw==", + "dev": true, + "requires": { + "@types/estree": "0.0.39" + } + }, "is-regex": { "version": "1.0.5", "resolved": "https://verdaccio.lossless.one/is-regex/-/is-regex-1.0.5.tgz", @@ -5871,6 +6327,27 @@ "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", "dev": true }, + "jest-worker": { + "version": "24.9.0", + "resolved": "https://verdaccio.lossless.one/jest-worker/-/jest-worker-24.9.0.tgz", + "integrity": "sha512-51PE4haMSXcHohnSMdM42anbvZANYTqMrr52tVKPqqsPJMzoP6FYYDVqahX/HrAoKEKz3uUPzSvKs9A3qR4iVw==", + "dev": true, + "requires": { + "merge-stream": "^2.0.0", + "supports-color": "^6.1.0" + }, + "dependencies": { + "supports-color": { + "version": "6.1.0", + "resolved": "https://verdaccio.lossless.one/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, "js-base64": { "version": "2.5.2", "resolved": "https://verdaccio.lossless.one/js-base64/-/js-base64-2.5.2.tgz", @@ -6201,6 +6678,12 @@ "js-tokens": "^3.0.0 || ^4.0.0" } }, + "lower-case": { + "version": "1.1.4", + "resolved": "https://verdaccio.lossless.one/lower-case/-/lower-case-1.1.4.tgz", + "integrity": "sha1-miyr0bno4K6ZOkv31YdcOcQujqw=", + "dev": true + }, "luxon": { "version": "1.24.1", "resolved": "https://verdaccio.lossless.one/luxon/-/luxon-1.24.1.tgz", @@ -6235,6 +6718,21 @@ "object-visit": "^1.0.0" } }, + "matcher": { + "version": "3.0.0", + "resolved": "https://verdaccio.lossless.one/matcher/-/matcher-3.0.0.tgz", + "integrity": "sha512-OkeDaAZ/bQCxeFAozM55PKcKU0yJMPGifLwV4Qgjitu+5MoAfSQN4lsLJeXZ1b8w0x+/Emda6MZgXS1jvsapng==", + "requires": { + "escape-string-regexp": "^4.0.0" + }, + "dependencies": { + "escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://verdaccio.lossless.one/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==" + } + } + }, "math-random": { "version": "1.0.4", "resolved": "https://verdaccio.lossless.one/math-random/-/math-random-1.0.4.tgz", @@ -6285,6 +6783,12 @@ } } }, + "merge-stream": { + "version": "2.0.0", + "resolved": "https://verdaccio.lossless.one/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "dev": true + }, "merge2": { "version": "1.3.0", "resolved": "https://verdaccio.lossless.one/merge2/-/merge2-1.3.0.tgz", @@ -6558,6 +7062,15 @@ "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", "dev": true }, + "no-case": { + "version": "2.3.2", + "resolved": "https://verdaccio.lossless.one/no-case/-/no-case-2.3.2.tgz", + "integrity": "sha512-rmTZ9kz+f3rCvK2TD1Ue/oZlns7OGoIWP4fc3llxxRXlOkHKoWPPWJOfFYpITabSow43QJbRIoHQXtt10VldyQ==", + "dev": true, + "requires": { + "lower-case": "^1.1.1" + } + }, "nocache": { "version": "2.1.0", "resolved": "https://verdaccio.lossless.one/nocache/-/nocache-2.1.0.tgz", @@ -6742,8 +7255,7 @@ "object-keys": { "version": "1.1.1", "resolved": "https://verdaccio.lossless.one/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", - "dev": true + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==" }, "object-visit": { "version": "1.0.1", @@ -6921,6 +7433,15 @@ "integrity": "sha1-8/dSL073gjSNqBYbrZ7P1Rv4OnU=", "dev": true }, + "param-case": { + "version": "2.1.1", + "resolved": "https://verdaccio.lossless.one/param-case/-/param-case-2.1.1.tgz", + "integrity": "sha1-35T9jPZTHs915r75oIWPvHK+Ikc=", + "dev": true, + "requires": { + "no-case": "^2.2.0" + } + }, "parcel-bundler": { "version": "1.12.4", "resolved": "https://verdaccio.lossless.one/parcel-bundler/-/parcel-bundler-1.12.4.tgz", @@ -8136,6 +8657,12 @@ } } }, + "relateurl": { + "version": "0.2.7", + "resolved": "https://verdaccio.lossless.one/relateurl/-/relateurl-0.2.7.tgz", + "integrity": "sha1-VNvzd+UUQKypCkzSdGANP/LYiKk=", + "dev": true + }, "remove-trailing-separator": { "version": "1.1.0", "resolved": "https://verdaccio.lossless.one/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", @@ -8313,6 +8840,90 @@ "inherits": "^2.0.1" } }, + "rollup": { + "version": "2.10.9", + "resolved": "https://verdaccio.lossless.one/rollup/-/rollup-2.10.9.tgz", + "integrity": "sha512-dY/EbjiWC17ZCUSyk14hkxATAMAShkMsD43XmZGWjLrgFj15M3Dw2kEkA9ns64BiLFm9PKN6vTQw8neHwK74eg==", + "dev": true, + "requires": { + "fsevents": "~2.1.2" + } + }, + "rollup-plugin-babel": { + "version": "4.4.0", + "resolved": "https://verdaccio.lossless.one/rollup-plugin-babel/-/rollup-plugin-babel-4.4.0.tgz", + "integrity": "sha512-Lek/TYp1+7g7I+uMfJnnSJ7YWoD58ajo6Oarhlex7lvUce+RCKRuGRSgztDO3/MF/PuGKmUL5iTHKf208UNszw==", + "dev": true, + "requires": { + "@babel/helper-module-imports": "^7.0.0", + "rollup-pluginutils": "^2.8.1" + } + }, + "rollup-plugin-sourcemaps": { + "version": "0.6.2", + "resolved": "https://verdaccio.lossless.one/rollup-plugin-sourcemaps/-/rollup-plugin-sourcemaps-0.6.2.tgz", + "integrity": "sha512-9AwTKg3yRykwzemfLt71ySe0LvrAci+bpsOL1LaTYFk5BX4HF6X7DQfpHa74ANfSja3hyjiQkXCR8goSOnW//Q==", + "dev": true, + "requires": { + "@rollup/pluginutils": "^3.0.9", + "source-map-resolve": "^0.6.0" + }, + "dependencies": { + "source-map-resolve": { + "version": "0.6.0", + "resolved": "https://verdaccio.lossless.one/source-map-resolve/-/source-map-resolve-0.6.0.tgz", + "integrity": "sha512-KXBr9d/fO/bWo97NXsPIAW1bFSBOuCnjbNTBMO7N59hsv5i9yzRDfcYwwt0l04+VqnKC+EwzvJZIP/qkuMgR/w==", + "dev": true, + "requires": { + "atob": "^2.1.2", + "decode-uri-component": "^0.2.0" + } + } + } + }, + "rollup-plugin-terser": { + "version": "5.3.0", + "resolved": "https://verdaccio.lossless.one/rollup-plugin-terser/-/rollup-plugin-terser-5.3.0.tgz", + "integrity": "sha512-XGMJihTIO3eIBsVGq7jiNYOdDMb3pVxuzY0uhOE/FM4x/u9nQgr3+McsjzqBn3QfHIpNSZmFnpoKAwHBEcsT7g==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.5.5", + "jest-worker": "^24.9.0", + "rollup-pluginutils": "^2.8.2", + "serialize-javascript": "^2.1.2", + "terser": "^4.6.2" + }, + "dependencies": { + "terser": { + "version": "4.7.0", + "resolved": "https://verdaccio.lossless.one/terser/-/terser-4.7.0.tgz", + "integrity": "sha512-Lfb0RiZcjRDXCC3OSHJpEkxJ9Qeqs6mp2v4jf2MHfy8vGERmVDuvjXdd/EnP5Deme5F2yBRBymKmKHCBg2echw==", + "dev": true, + "requires": { + "commander": "^2.20.0", + "source-map": "~0.6.1", + "source-map-support": "~0.5.12" + } + } + } + }, + "rollup-pluginutils": { + "version": "2.8.2", + "resolved": "https://verdaccio.lossless.one/rollup-pluginutils/-/rollup-pluginutils-2.8.2.tgz", + "integrity": "sha512-EEp9NhnUkwY8aif6bxgovPHMoMoNr2FulJziTndpt5H9RdwC47GSGuII9XxpSdzVGM0GWrNPHV6ie1LTNJPaLQ==", + "dev": true, + "requires": { + "estree-walker": "^0.6.1" + }, + "dependencies": { + "estree-walker": { + "version": "0.6.1", + "resolved": "https://verdaccio.lossless.one/estree-walker/-/estree-walker-0.6.1.tgz", + "integrity": "sha512-SqmZANLWS0mnatqbSfRP5g8OXZC12Fgg1IwNtLsyHDzJizORW4khDfjPqJZsemPWBB2uqykUah5YpQ6epsqC/w==", + "dev": true + } + } + }, "rxjs": { "version": "6.5.5", "resolved": "https://verdaccio.lossless.one/rxjs/-/rxjs-6.5.5.tgz", @@ -8402,6 +9013,12 @@ } } }, + "serialize-javascript": { + "version": "2.1.2", + "resolved": "https://verdaccio.lossless.one/serialize-javascript/-/serialize-javascript-2.1.2.tgz", + "integrity": "sha512-rs9OggEUF0V4jUSecXazOYsLfu7OGK2qIn3c7IPBiffz32XniEp/TX9Xmc9LQfK2nQ2QKHvZ2oygKUGU0lG4jQ==", + "dev": true + }, "serialize-to-js": { "version": "3.1.1", "resolved": "https://verdaccio.lossless.one/serialize-to-js/-/serialize-to-js-3.1.1.tgz", @@ -8693,6 +9310,12 @@ "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=", "dev": true }, + "sourcemap-codec": { + "version": "1.4.8", + "resolved": "https://verdaccio.lossless.one/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", + "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==", + "dev": true + }, "split-string": { "version": "3.1.0", "resolved": "https://verdaccio.lossless.one/split-string/-/split-string-3.1.0.tgz", @@ -9335,6 +9958,15 @@ "resolved": "https://verdaccio.lossless.one/typescript/-/typescript-3.9.3.tgz", "integrity": "sha512-D/wqnB2xzNFIcoBG9FG8cXRDjiqSTbG2wd8DMZeQyJlP1vfTkIxH4GKveWaEBYySKIg+USu+E+EDIR47SqnaMQ==" }, + "uglify-js": { + "version": "3.9.3", + "resolved": "https://verdaccio.lossless.one/uglify-js/-/uglify-js-3.9.3.tgz", + "integrity": "sha512-r5ImcL6QyzQGVimQoov3aL2ZScywrOgBXGndbWrdehKoSvGe/RmiE5Jpw/v+GvxODt6l2tpBXwA7n+qZVlHBMA==", + "dev": true, + "requires": { + "commander": "~2.20.3" + } + }, "uncss": { "version": "0.17.3", "resolved": "https://verdaccio.lossless.one/uncss/-/uncss-0.17.3.tgz", @@ -9484,6 +10116,12 @@ "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==", "dev": true }, + "upper-case": { + "version": "1.1.3", + "resolved": "https://verdaccio.lossless.one/upper-case/-/upper-case-1.1.3.tgz", + "integrity": "sha1-9rRQHC7EzdJrp4vnIilh3ndiFZg=", + "dev": true + }, "uri-js": { "version": "4.2.2", "resolved": "https://verdaccio.lossless.one/uri-js/-/uri-js-4.2.2.tgz", diff --git a/package.json b/package.json index c018cf3..2e76d50 100644 --- a/package.json +++ b/package.json @@ -6,13 +6,14 @@ "main": "dist_ts_web/index.js", "typings": "dist_ts_web/index.d.ts", "scripts": { - "test": "npm run build", - "build": "tsbuild custom ts_web --web", + "test": "(npm run build)", + "build": "(tsbuild custom ts_web --web && tsbundle element)", "watch": "tswatch element" }, "author": "Lossless GmbH", "license": "UNLICENSED", "dependencies": { + "@designestate/dees-domtools": "^1.0.21", "@gitzone/tsrun": "^1.1.17", "@pushrocks/smartexpress": "^3.0.10", "lit-element": "^2.0.0-rc.5", @@ -21,6 +22,7 @@ }, "devDependencies": { "@gitzone/tsbuild": "^2.1.24", + "@gitzone/tsbundle": "^1.0.69", "@gitzone/tswatch": "^1.0.46", "@pushrocks/projectinfo": "^4.0.2", "tslint": "^6.1.2", diff --git a/ts_web/elements/wcc-dashboard.ts b/ts_web/elements/wcc-dashboard.ts index 77cde5c..40b732c 100644 --- a/ts_web/elements/wcc-dashboard.ts +++ b/ts_web/elements/wcc-dashboard.ts @@ -1,5 +1,7 @@ import { LitElement, property, html, customElement, TemplateResult } from 'lit-element'; +import * as deesDomtools from '@designestate/dees-domtools'; + import { WccDefaultElement } from './wcc-defaultelement'; // wcc tools @@ -16,7 +18,7 @@ export class WccDashboard extends LitElement { public selectedInstance; @property() - public selectedViewport: string = 'desktop'; + public selectedViewport: deesDomtools.breakpoints.TViewport = 'desktop'; @property() public pages: { [key: string]: TemplateResult } = {}; @@ -82,13 +84,13 @@ export class WccDashboard extends LitElement { `; } - public updateSlot() { + public async updateSlot() { console.log('updateSlot'); const oldSelectedItem = this.selectedItem; this.selectedItem = null; - setTimeout(() => { - this.selectedItem = oldSelectedItem; - }, 0); + const domtools = await deesDomtools.DomTools.setupDomTools(); + domtools.setVirtualViewport(this.selectedViewport); + this.selectedItem = oldSelectedItem; } public setWarning(warningTextArg: string) {