Compare commits

...

30 Commits

Author SHA1 Message Date
508b18bc3b 1.0.210 2023-09-18 15:12:58 +02:00
c2499ea507 fix(core): update 2023-09-18 15:12:57 +02:00
c0c91aec94 1.0.209 2023-09-17 21:38:02 +02:00
a27008a295 fix(core): update 2023-09-17 21:38:02 +02:00
7e11627618 1.0.208 2023-09-17 10:29:23 +02:00
968ce63a53 fix(core): update 2023-09-17 10:29:22 +02:00
7c0eb3290f 1.0.207 2023-09-16 14:31:03 +02:00
62403625ba fix(core): update 2023-09-16 14:31:03 +02:00
9a34b03540 1.0.206 2023-09-15 20:51:04 +02:00
8bb63df7e3 fix(core): update 2023-09-15 20:51:03 +02:00
65cd73845a 1.0.205 2023-09-15 20:11:52 +02:00
8534bc254b fix(core): update 2023-09-15 20:11:51 +02:00
2a2fd324a0 1.0.204 2023-09-15 19:07:35 +02:00
58e3de2559 fix(core): update 2023-09-15 19:07:34 +02:00
c30736870d 1.0.203 2023-09-15 19:03:19 +02:00
cfd48de885 fix(core): update 2023-09-15 19:03:18 +02:00
462df2b648 1.0.202 2023-09-15 17:27:36 +02:00
f64da93cf9 fix(core): update 2023-09-15 17:27:35 +02:00
a55db621ef 1.0.201 2023-09-14 19:46:10 +02:00
c033bdfc3b fix(core): update 2023-09-14 19:46:09 +02:00
2610e56ec1 1.0.200 2023-09-14 19:43:27 +02:00
08aa9e3fe4 fix(core): update 2023-09-14 19:43:26 +02:00
411ae7ee07 1.0.199 2023-09-13 21:14:06 +02:00
41700c1eb1 fix(core): update 2023-09-13 21:14:05 +02:00
8d7bac9793 1.0.198 2023-09-13 21:13:48 +02:00
0229eefa4d fix(core): update 2023-09-13 21:13:47 +02:00
61f646743a 1.0.197 2023-09-13 19:15:54 +02:00
e3babde7e8 fix(core): update 2023-09-13 19:15:53 +02:00
c389e43e93 1.0.196 2023-09-13 18:12:02 +02:00
1511db4eea fix(core): update 2023-09-13 18:12:01 +02:00
10 changed files with 310 additions and 102 deletions

View File

@ -1,6 +1,6 @@
{
"name": "@design.estate/dees-catalog",
"version": "1.0.195",
"version": "1.0.210",
"private": false,
"description": "website for lossless.com",
"main": "dist_ts_web/index.js",
@ -15,8 +15,8 @@
"author": "Lossless GmbH",
"license": "MIT",
"dependencies": {
"@design.estate/dees-domtools": "^2.0.40",
"@design.estate/dees-element": "^2.0.27",
"@design.estate/dees-domtools": "^2.0.41",
"@design.estate/dees-element": "^2.0.29",
"@design.estate/dees-wcctools": "^1.0.78",
"@fortawesome/fontawesome-svg-core": "^6.4.2",
"@fortawesome/free-brands-svg-icons": "^6.4.2",
@ -35,7 +35,7 @@
"@gitzone/tswatch": "^2.0.7",
"@push.rocks/projectinfo": "^5.0.2",
"@push.rocks/tapbundle": "^5.0.15",
"@types/node": "^20.6.0"
"@types/node": "^20.6.2"
},
"files": [
"ts/**/*",

118
pnpm-lock.yaml generated
View File

@ -6,14 +6,14 @@ settings:
dependencies:
'@design.estate/dees-domtools':
specifier: ^2.0.40
version: 2.0.40
specifier: ^2.0.41
version: 2.0.41
'@design.estate/dees-element':
specifier: ^2.0.27
version: 2.0.27
specifier: ^2.0.29
version: 2.0.29
'@design.estate/dees-wcctools':
specifier: ^1.0.78
version: 1.0.78(@types/node@20.6.0)
version: 1.0.78(@types/node@20.6.2)
'@fortawesome/fontawesome-svg-core':
specifier: ^6.4.2
version: 6.4.2
@ -51,19 +51,19 @@ devDependencies:
version: 2.0.8
'@gitzone/tstest':
specifier: ^1.0.77
version: 1.0.77(@types/node@20.6.0)(sinon@15.2.0)
version: 1.0.77(@types/node@20.6.2)(sinon@16.0.0)
'@gitzone/tswatch':
specifier: ^2.0.7
version: 2.0.7(@types/node@20.6.0)
version: 2.0.7(@types/node@20.6.2)
'@push.rocks/projectinfo':
specifier: ^5.0.2
version: 5.0.2
'@push.rocks/tapbundle':
specifier: ^5.0.15
version: 5.0.15(sinon@15.2.0)
version: 5.0.15(sinon@16.0.0)
'@types/node':
specifier: ^20.6.0
version: 20.6.0
specifier: ^20.6.2
version: 20.6.2
packages:
@ -212,8 +212,8 @@ packages:
broadcast-channel: 3.7.0
dev: false
/@design.estate/dees-domtools@2.0.40:
resolution: {integrity: sha512-ErF7frRFABBiw6b8cobdWGwRPmfRFGJ7JjJphmpdRIVLm/BMhw6PMK+AXmdA+gsRLa0O4S8WilO80Wm4pdTZ6Q==}
/@design.estate/dees-domtools@2.0.41:
resolution: {integrity: sha512-4vDLWiEJLqSYBrZ0q2mmXiWvsK9EjYgvMioep8Qvzf1mhi+AdGXawa8QMcafHrEKO2r135Pl+8l5VCX35cuPxQ==}
dependencies:
'@api.global/typedrequest': 3.0.1
'@design.estate/dees-comms': 1.0.24
@ -232,21 +232,21 @@ packages:
sweet-scroll: 4.0.0
dev: false
/@design.estate/dees-element@2.0.27:
resolution: {integrity: sha512-0x2UutRHX0Go/7meuZNiRGO533ur7ZYV8d2/YQky1pXjv6LaFU6QQj2oYxSeNQ4cs8u3spLn25vBUg+/ErVVuw==}
/@design.estate/dees-element@2.0.29:
resolution: {integrity: sha512-aFVxWHfhyf+PqvD8tm90W86P1GKmwL0zUXTKi/G63gs/hCr5KOHlpQTkzbf66x3lVuWLX/TgvcvIYz/eQb0lmA==}
dependencies:
'@design.estate/dees-domtools': 2.0.40
'@design.estate/dees-domtools': 2.0.41
'@push.rocks/isounique': 1.0.5
'@push.rocks/smartrx': 3.0.6
lit: 2.8.0
dev: false
/@design.estate/dees-wcctools@1.0.78(@types/node@20.6.0):
/@design.estate/dees-wcctools@1.0.78(@types/node@20.6.2):
resolution: {integrity: sha512-7CgbDq+J1Wt2EW1EsDOApskq60jBZ9EOCNOEc0n3otxVOtUvutg6YBjY8fg7l/OJMxJfeJdEkNDlkTYePMIeXQ==}
dependencies:
'@design.estate/dees-domtools': 2.0.40
'@design.estate/dees-element': 2.0.27
'@gitzone/tsrun': 1.2.44(@types/node@20.6.0)
'@design.estate/dees-domtools': 2.0.41
'@design.estate/dees-element': 2.0.29
'@gitzone/tsrun': 1.2.44(@types/node@20.6.2)
'@push.rocks/smartdelay': 3.0.5
lit: 2.8.0
transitivePeerDependencies:
@ -525,26 +525,26 @@ packages:
- supports-color
dev: true
/@gitzone/tsrun@1.2.44(@types/node@20.6.0):
/@gitzone/tsrun@1.2.44(@types/node@20.6.2):
resolution: {integrity: sha512-7AfL9u+TmD7gLiRaTCimhWm5rq9GGBQnOF4q1FnFh2CAb1FbK5fzUVbj6wo3zGS2H+MSm6dqFA6mvdBI1ox0mQ==}
hasBin: true
dependencies:
'@push.rocks/smartfile': 10.0.28
'@push.rocks/smartshell': 3.0.3
ts-node: 10.9.1(@types/node@20.6.0)(typescript@5.1.6)
ts-node: 10.9.1(@types/node@20.6.2)(typescript@5.1.6)
typescript: 5.1.6
transitivePeerDependencies:
- '@swc/core'
- '@swc/wasm'
- '@types/node'
/@gitzone/tstest@1.0.77(@types/node@20.6.0)(sinon@15.2.0):
/@gitzone/tstest@1.0.77(@types/node@20.6.2)(sinon@16.0.0):
resolution: {integrity: sha512-YzBXnNqkYOiFf8xAA+m8owblrmAut8ukINghYy4DXoUR+5g1IKrpTjK4A8HzIsvVsQRyHPsQ2YFtsk+utqdivQ==}
hasBin: true
dependencies:
'@apiglobal/typedserver': 2.0.65
'@gitzone/tsbundle': 2.0.8
'@gitzone/tsrun': 1.2.44(@types/node@20.6.0)
'@gitzone/tsrun': 1.2.44(@types/node@20.6.2)
'@push.rocks/consolecolor': 2.0.1
'@push.rocks/smartbrowser': 2.0.5
'@push.rocks/smartdelay': 3.0.5
@ -552,7 +552,7 @@ packages:
'@push.rocks/smartlog': 3.0.3
'@push.rocks/smartpromise': 4.0.3
'@push.rocks/smartshell': 3.0.3
'@push.rocks/tapbundle': 5.0.15(sinon@15.2.0)
'@push.rocks/tapbundle': 5.0.15(sinon@16.0.0)
figures: 5.0.0
transitivePeerDependencies:
- '@swc/core'
@ -565,13 +565,13 @@ packages:
- utf-8-validate
dev: true
/@gitzone/tswatch@2.0.7(@types/node@20.6.0):
/@gitzone/tswatch@2.0.7(@types/node@20.6.2):
resolution: {integrity: sha512-rKvyYXsILinp/3OzGkM4KLDPJhleSlF+KFzl90vHh1DuLzJCELWxgl/BSqrBe/UUd5Qyakyf8ZCojUSYUqU5tw==}
hasBin: true
dependencies:
'@apiglobal/typedserver': 2.0.65
'@gitzone/tsbundle': 2.0.8
'@gitzone/tsrun': 1.2.44(@types/node@20.6.0)
'@gitzone/tsrun': 1.2.44(@types/node@20.6.2)
'@pushrocks/early': 4.0.3
'@pushrocks/lik': 6.0.2
'@pushrocks/smartchok': 1.0.23
@ -708,7 +708,7 @@ packages:
lit-html: 1.4.1
dev: true
/@open-wc/testing@2.5.33(sinon@15.2.0):
/@open-wc/testing@2.5.33(sinon@16.0.0):
resolution: {integrity: sha512-+EJNs0i+VV4nE+BrG70l2DNGXOZTSrluruaaU06HUSk57ZlKa+kIxWmkLxCOLlbgnQgrPrQWxbs3lgB1tIx/YA==}
dependencies:
'@open-wc/chai-dom-equals': 0.12.36
@ -722,7 +722,7 @@ packages:
chai-a11y-axe: 1.5.0
chai-dom: 1.11.0(chai@4.3.7)(mocha@6.2.3)
mocha: 6.2.3
sinon-chai: 3.7.0(chai@4.3.7)(sinon@15.2.0)
sinon-chai: 3.7.0(chai@4.3.7)(sinon@16.0.0)
transitivePeerDependencies:
- bufferutil
- sinon
@ -963,10 +963,10 @@ packages:
/@push.rocks/smarturl@3.0.7:
resolution: {integrity: sha512-nx4EWjQD9JeO7QVbOsxd1PFeDQYoSQOOOYCZ+r7QWXHLJG52iYzgvJDCQyX6p705HDkYMJWozW2ZzhR22qLKbw==}
/@push.rocks/tapbundle@5.0.15(sinon@15.2.0):
/@push.rocks/tapbundle@5.0.15(sinon@16.0.0):
resolution: {integrity: sha512-vVTVmQCovYq9xhif96z7wN8pFiB3UB9MZSkqMDgfNTWhlU19ZZR1azCZn+zXsYxgJmD8wKNYhvZYgdRz73KbBg==}
dependencies:
'@open-wc/testing': 2.5.33(sinon@15.2.0)
'@open-wc/testing': 2.5.33(sinon@16.0.0)
'@push.rocks/smartdelay': 3.0.5
'@push.rocks/smartenv': 5.0.5
'@push.rocks/smartexpect': 1.0.21
@ -1702,7 +1702,7 @@ packages:
/@types/accepts@1.3.5:
resolution: {integrity: sha512-jOdnI/3qTpHABjM5cx1Hc0sKsPoYCp+DP/GJRGtDlPd7fiV9oXGGIcjW/ZOxLIvjGz8MA+uMZI9metHlgqbgwQ==}
dependencies:
'@types/node': 20.6.0
'@types/node': 20.6.2
dev: true
/@types/babel__code-frame@7.0.3:
@ -1713,7 +1713,7 @@ packages:
resolution: {integrity: sha512-ALYone6pm6QmwZoAgeyNksccT9Q4AWZQ6PvfwR37GT6r6FWUPguq6sUmNGSMV2Wr761oQoBxwGGa6DR5o1DC9g==}
dependencies:
'@types/connect': 3.4.35
'@types/node': 20.6.0
'@types/node': 20.6.2
dev: true
/@types/buffer-json@2.0.1:
@ -1739,14 +1739,14 @@ packages:
/@types/clean-css@4.2.6:
resolution: {integrity: sha512-Ze1tf+LnGPmG6hBFMi0B4TEB0mhF7EiMM5oyjLDNPE9hxrPU0W+5+bHvO+eFPA+bt0iC1zkQMoU/iGdRVjcRbw==}
dependencies:
'@types/node': 20.6.0
'@types/node': 20.6.2
source-map: 0.6.1
dev: true
/@types/co-body@6.1.0:
resolution: {integrity: sha512-3e0q2jyDAnx/DSZi0z2H0yoZ2wt5yRDZ+P7ymcMObvq0ufWRT4tsajyO+Q1VwVWiv9PRR4W3YEjEzBjeZlhF+w==}
dependencies:
'@types/node': 20.6.0
'@types/node': 20.6.2
'@types/qs': 6.9.7
dev: true
@ -1759,7 +1759,7 @@ packages:
/@types/connect@3.4.35:
resolution: {integrity: sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ==}
dependencies:
'@types/node': 20.6.0
'@types/node': 20.6.2
dev: true
/@types/content-disposition@0.5.5:
@ -1780,13 +1780,13 @@ packages:
'@types/connect': 3.4.35
'@types/express': 4.17.17
'@types/keygrip': 1.0.2
'@types/node': 20.6.0
'@types/node': 20.6.2
dev: true
/@types/cors@2.8.13:
resolution: {integrity: sha512-RG8AStHlUiV5ysZQKq97copd2UmVYw3/pRMLefISZ3S1hK104Cwm7iLQ3fTKx+lsUH2CE8FlLaYeEA2LSeqYUA==}
dependencies:
'@types/node': 20.6.0
'@types/node': 20.6.2
dev: true
/@types/debounce@1.2.1:
@ -1800,7 +1800,7 @@ packages:
/@types/express-serve-static-core@4.17.35:
resolution: {integrity: sha512-wALWQwrgiB2AWTT91CB62b6Yt0sNHpznUXeZEcnPU3DRdlDIz74x8Qg1UUYKSVFi+va5vKOLYRBI1bRKiLLKIg==}
dependencies:
'@types/node': 20.6.0
'@types/node': 20.6.2
'@types/qs': 6.9.7
'@types/range-parser': 1.2.4
'@types/send': 0.17.1
@ -1818,25 +1818,25 @@ packages:
/@types/finalhandler@1.2.0:
resolution: {integrity: sha512-NgEZKOhxUSXkwNnWNaMXZaopQ5aFGPAYiEpEWIkQ6Dzc4iS0M1oQsvWne2t+ex9QZUAdTz/ZT4tOXJhWtP6mCw==}
dependencies:
'@types/node': 20.6.0
'@types/node': 20.6.2
dev: true
/@types/from2@2.3.2:
resolution: {integrity: sha512-s1pdctxW2+CA4FOxxTBRxC3RKQL9Br1a2s2LngP4jh1BI84JBL3mDXj87EwcckN9z/IXp8o3ySmvZveGEAAwqw==}
dependencies:
'@types/node': 20.6.0
'@types/node': 20.6.2
/@types/fs-extra@11.0.1:
resolution: {integrity: sha512-MxObHvNl4A69ofaTRU8DFqvgzzv8s9yRtaPPm5gud9HDNvpB3GPQFvNuTWAI59B9huVGV5jXYJwbCsmBsOGYWA==}
dependencies:
'@types/jsonfile': 6.1.1
'@types/node': 20.6.0
'@types/node': 20.6.2
/@types/glob@8.1.0:
resolution: {integrity: sha512-IO+MJPVhoqz+28h1qLAcBEH2+xHMK6MTyHJc7MTnnYb6wsoLR29POVGJ7LycmVXIqyy/4/2ShP5sUwTXuOwb/w==}
dependencies:
'@types/minimatch': 5.1.2
'@types/node': 20.6.0
'@types/node': 20.6.2
/@types/html-minifier@4.0.2:
resolution: {integrity: sha512-4IkmkXJP/25R2fZsCHDX2abztXuQRzUAZq39PfCMz2loLFj8vS9y7aF6vDl58koXSTpsF+eL4Lc5Y4Aww/GCTQ==}
@ -1884,7 +1884,7 @@ packages:
/@types/jsonfile@6.1.1:
resolution: {integrity: sha512-GSgiRCVeapDN+3pqA35IkQwasaCh/0YFH5dEF6S88iDvEn901DjOeH3/QPY+XYP1DFzDZPvIvfeEgk+7br5png==}
dependencies:
'@types/node': 20.6.0
'@types/node': 20.6.2
/@types/keygrip@1.0.2:
resolution: {integrity: sha512-GJhpTepz2udxGexqos8wgaBx4I/zWIDPh/KOGEwAqtuGDkOUJu5eFvwmdBX4AmB8Odsr+9pHCQqiAqDL/yKMKw==}
@ -1906,7 +1906,7 @@ packages:
'@types/http-errors': 2.0.1
'@types/keygrip': 1.0.2
'@types/koa-compose': 3.2.5
'@types/node': 20.6.0
'@types/node': 20.6.2
dev: true
/@types/mime-types@2.1.1:
@ -1930,8 +1930,8 @@ packages:
resolution: {integrity: sha512-NYrtPht0wGzhwe9+/idPaBB+TqkY9AhTvOLMkThm0IoEfLaiVQZwBwyJ5puCkO3AUCWrmcoePjp2mbFocKy4SQ==}
dev: true
/@types/node@20.6.0:
resolution: {integrity: sha512-najjVq5KN2vsH2U/xyh2opaSEz6cZMR2SetLIlxlj08nOcmPOemJmUK2o4kUzfLqfrWE0PIrNeE16XhYDd3nqg==}
/@types/node@20.6.2:
resolution: {integrity: sha512-Y+/1vGBHV/cYk6OI1Na/LHzwnlNCAfU3ZNGrc1LdRe/LAIbdDPTTv/HU3M7yXN448aTVDq3eKRm2cg7iKLb8gw==}
/@types/parse5@6.0.3:
resolution: {integrity: sha512-SuT16Q1K51EAVPz1K29DJ/sXjhSQ0zjvsypYJ6tlwVsRV9jwW5Adq2ch8Dq8kDBCkYnELS7N7VNCSB5nC56t/g==}
@ -1960,7 +1960,7 @@ packages:
resolution: {integrity: sha512-Cwo8LE/0rnvX7kIIa3QHCkcuF21c05Ayb0ZfxPiv0W8VRiZiNW/WuRupHKpqqGVGf7SUA44QSOUKaEd9lIrd/Q==}
dependencies:
'@types/mime': 1.3.2
'@types/node': 20.6.0
'@types/node': 20.6.2
dev: true
/@types/serve-static@1.15.2:
@ -1968,7 +1968,7 @@ packages:
dependencies:
'@types/http-errors': 2.0.1
'@types/mime': 3.0.1
'@types/node': 20.6.0
'@types/node': 20.6.2
dev: true
/@types/shortid@0.0.29:
@ -1998,7 +1998,7 @@ packages:
/@types/through2@2.0.38:
resolution: {integrity: sha512-YFu+nHmjxMurkH1BSzA0Z1WrKDAY8jUKPZctNQn7mc+/KKtp2XxnclHFXxdB1m7Iqnzb5aywgP8TMK283LezGQ==}
dependencies:
'@types/node': 20.6.0
'@types/node': 20.6.2
/@types/trusted-types@2.0.3:
resolution: {integrity: sha512-NfQ4gyz38SL8sDNrSixxU2Os1a5xcdFxipAFxYEuLUlvU2uDwS4NUpsImcf1//SlWItCVMMLiylsxbmNMToV/g==}
@ -2023,14 +2023,14 @@ packages:
/@types/ws@7.4.7:
resolution: {integrity: sha512-JQbbmxZTZehdc2iszGKs5oC3NFnjeay7mtAWrdt7qNtAVK0g19muApzAy4bm9byz79xa2ZnO/BOBC2R8RC5Lww==}
dependencies:
'@types/node': 20.6.0
'@types/node': 20.6.2
dev: true
/@types/yauzl@2.10.0:
resolution: {integrity: sha512-Cn6WYCm0tXv8p6k+A8PvbDG763EDpBoTzHdA+Q/MF6H3sapGjCm9NzoaJncJS9tUKSuCoDs9XHxYYsQDgxR6kw==}
requiresBuild: true
dependencies:
'@types/node': 20.6.0
'@types/node': 20.6.2
dev: true
optional: true
@ -3006,7 +3006,7 @@ packages:
dependencies:
'@types/cookie': 0.4.1
'@types/cors': 2.8.13
'@types/node': 20.6.0
'@types/node': 20.6.2
accepts: 1.3.8
base64id: 2.0.0
cookie: 0.4.2
@ -3026,7 +3026,7 @@ packages:
dependencies:
'@types/cookie': 0.4.1
'@types/cors': 2.8.13
'@types/node': 20.6.0
'@types/node': 20.6.2
accepts: 1.3.8
base64id: 2.0.0
cookie: 0.4.2
@ -5324,18 +5324,18 @@ packages:
dev: false
optional: true
/sinon-chai@3.7.0(chai@4.3.7)(sinon@15.2.0):
/sinon-chai@3.7.0(chai@4.3.7)(sinon@16.0.0):
resolution: {integrity: sha512-mf5NURdUaSdnatJx3uhoBOrY9dtL19fiOtAdT1Azxg3+lNJFiuN0uzaU3xX1LeAfL17kHQhTAJgpsfhbMJMY2g==}
peerDependencies:
chai: ^4.0.0
sinon: '>=4.0.0'
dependencies:
chai: 4.3.7
sinon: 15.2.0
sinon: 16.0.0
dev: true
/sinon@15.2.0:
resolution: {integrity: sha512-nPS85arNqwBXaIsFCkolHjGIkFo+Oxu9vbgmBJizLAhqe6P2o3Qmj3KCUoRkfhHtvgDhZdWD3risLHAUJ8npjw==}
/sinon@16.0.0:
resolution: {integrity: sha512-B8AaZZm9CT5pqe4l4uWJztfD/mOTa7dL8Qo0W4+s+t74xECOgSZDDQCBjNgIK3+n4kyxQrSTv2V5ul8K25qkiQ==}
dependencies:
'@sinonjs/commons': 3.0.0
'@sinonjs/fake-timers': 10.3.0
@ -5679,7 +5679,7 @@ packages:
resolution: {integrity: sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==}
hasBin: true
/ts-node@10.9.1(@types/node@20.6.0)(typescript@5.1.6):
/ts-node@10.9.1(@types/node@20.6.2)(typescript@5.1.6):
resolution: {integrity: sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==}
hasBin: true
peerDependencies:
@ -5698,7 +5698,7 @@ packages:
'@tsconfig/node12': 1.0.11
'@tsconfig/node14': 1.0.3
'@tsconfig/node16': 1.0.4
'@types/node': 20.6.0
'@types/node': 20.6.2
acorn: 8.10.0
acorn-walk: 8.2.0
arg: 4.1.3

View File

@ -3,6 +3,6 @@
*/
export const commitinfo = {
name: '@design.estate/dees-catalog',
version: '1.0.195',
version: '1.0.210',
description: 'website for lossless.com'
}

View File

@ -71,11 +71,11 @@ export class DeesContextmenu extends DeesElement {
color: ${cssManager.bdTheme('#222', '#ccc')};
font-size: 14px;
width: 200px;
border: 1px solid #444;
border: 1px solid ${cssManager.bdTheme('#fff', '#444')};
min-height: 34px;
border-radius: 3px;
background: #222;
box-shadow: 0px 1px 4px #000;
background: ${cssManager.bdTheme('#fff', '#222')};
box-shadow: 0px 1px 4px ${cssManager.bdTheme('#00000020', '#000000')};
user-select: none;
}
@ -92,7 +92,7 @@ export class DeesContextmenu extends DeesElement {
.mainbox .menuitem:hover {
cursor: pointer;
background: #ffffff10;
background: ${cssManager.bdTheme('#00000010', '#ffffff10')};
}
.mainbox .menuitem:active {

View File

@ -67,6 +67,42 @@ export class DeesDataviewCodebox extends DeesElement {
line-height: 24px;
}
.appbar .macControls {
position: absolute;
top: 6px;
left: 20px;
width: 200px;
display: grid;
grid-template-columns: 24px 24px 24px;
}
.appbar .macControls div {
width: 12px;
height: 12px;
display: inline-block;
border-radius: 50%;
margin: 0px;
padding: 0px;
cursor: pointer;
background: #222222;
}
.appbar .macControls div.close {
background: #FF5F57;
}
.appbar .macControls div.toDock {
background: #FFBD2E;
}
.appbar .macControls div.minMax {
background: #27C93F;
}
.appbar .macControls div:hover {
background: #333333;
}
.appbar .fileName {
text-align: center;
}
@ -76,13 +112,15 @@ export class DeesDataviewCodebox extends DeesElement {
background: #161616;
border-top: 1px solid #222222;
font-size: 12px;
color: #CCC;
color: #888;
font-family: 'Hubot Sans', 'monospace';
line-height: 24px;
text-align: right;
padding-right: 100px;
}
.languageLabel {
color: #fff;
color: #ccc;
font-size: 12px;
line-height: 24px;
z-index: 10;
@ -158,6 +196,11 @@ export class DeesDataviewCodebox extends DeesElement {
</style>
<div class="mainbox">
<div class="appbar">
<div class="macControls">
<div class="close"></div>
<div class="toDock"></div>
<div class="minMax"></div>
</div>
<div class="fileName">index.ts</div>
</div>
<div class="codegrid">

View File

@ -42,6 +42,7 @@ import {
faCircleInfo as faCircleInfoSolid,
faCircleCheck as faCircleCheckSolid,
faCircleXmark as faCircleXmarkSolid,
faClockRotateLeft as faClockRotateLeftSolid,
faCopy as faCopySolid,
faDesktop as faDesktopSolid,
faEye as faEyeSolid,
@ -82,6 +83,8 @@ export const faIcons = {
circleCheckSolid: faCircleCheckSolid,
circleXmark: faCircleXmarkRegular,
circleXmarkSolid: faCircleXmarkSolid,
clockRotateLeft: faClockRotateLeftSolid,
clockRotateLeftSolid: faClockRotateLeftSolid,
copy: faCopyRegular,
copySolid: faCopySolid,
desktop: faDesktopSolid,
@ -95,7 +98,7 @@ export const faIcons = {
message: faMessageRegular,
messageSolid: faMessageSolid,
mugHot: faMugHotSolid,
faMugHotSolid: faMugHotSolid,
mugHotSolid: faMugHotSolid,
minus: faMinusSolid,
minusSolid: faMinusSolid,
paste: faPasteRegular,

View File

@ -124,7 +124,7 @@ export class DeesInputText extends DeesElement {
.showPassword:hover {
cursor: pointer;
background: #333;
background: ${cssManager.bdTheme('#00000010', '#ffffff10')};
}
</style>
<div class="maincontainer">

View File

@ -86,7 +86,7 @@ export class DeesModal extends DeesElement {
}
.modal {
will-change: transform;
transform: translateY(10px);
transform: translateY(0px) scale(0.95);
opacity: 0;
width: 480px;
min-height: 120px;
@ -95,11 +95,17 @@ export class DeesModal extends DeesElement {
border: 1px solid #222;
transition: all 0.2s;
overflow: hidden;
box-shadow: 0px 2px 5px #00000080;
}
.modal.show {
opacity: 1;
transform: translateY(0px);
transform: translateY(0px) scale(1);
}
.modal.show.predestroy {
opacity: 0;
transform: translateY(10px) scale(1);
}
.modal .heading {
@ -182,7 +188,7 @@ export class DeesModal extends DeesElement {
public async destroy() {
const domtools = await this.domtoolsPromise;
const modal = this.shadowRoot.querySelector('.modal');
modal.classList.remove('show');
modal.classList.add('predestroy');
await domtools.convenience.smartdelay.delayFor(200);
document.body.removeChild(this);
await this.windowLayer.destroy();

View File

@ -2,6 +2,12 @@ import { type ITableAction } from './dees-table.js';
import * as plugins from './plugins.js';
import { html } from '@design.estate/dees-element';
interface ITableDemoData {
date: string;
amount: string;
description: string;
}
export const demoFunc = () => html`
<style>
.demoWrapper {
@ -17,6 +23,7 @@ export const demoFunc = () => html`
<dees-table
heading1="Current Account Statement"
heading2="Bunq - Payment Account 2 - April 2021"
.editableFields="${['description']}"
.data=${[
{
date: '2021-04-01',
@ -51,7 +58,7 @@ export const demoFunc = () => html`
iconName: 'bell',
useTableBehaviour: 'upload',
type: ['inRow'],
actionFunc: async (itemArg: any) => {
actionFunc: async (itemArg) => {
alert(itemArg.amount);
},
},
@ -100,7 +107,16 @@ export const demoFunc = () => html`
return null;
},
},
] as ITableAction[]}"
{
name: 'preview',
type: ['doubleClick', 'contextmenu'],
iconName: 'eye',
actionFunc: async (itemArg) => {
alert(itemArg.amount);
return null;
},
}
] as (ITableAction<ITableDemoData>)[] as any}"
.displayFunction=${(itemArg) => {
return {
...itemArg,

View File

@ -37,7 +37,15 @@ export interface ITableAction<T = any> {
/**
* the type of the action
*/
type: ('inRow' | 'contextmenu' | 'footer' | 'header' | 'preview' | 'keyCombination')[];
type: (
| 'inRow'
| 'contextmenu'
| 'doubleClick'
| 'footer'
| 'header'
| 'preview'
| 'keyCombination'
)[];
/**
* allows to check if the action is relevant for the given item
* @param itemArg
@ -84,21 +92,33 @@ export class DeesTable<T> extends DeesElement {
@property({
type: Array,
})
public dataActions: ITableAction[] = [];
public dataActions: ITableAction<T>[] = [];
@property({
attribute: false,
})
public displayFunction: TDisplayFunction = (itemArg: T) => itemArg as any;
@property({
attribute: false,
})
public reverseDisplayFunction: (itemArg: any) => T = (itemArg: any) => itemArg as T;
@property({
type: Object,
})
public selectedDataRow: T;
@property({
type: Array,
})
public editableFields: string[] = [];
public files: File[] = [];
public fileWeakMap = new WeakMap();
public itemChangeSubject = new domtools.plugins.smartrx.rxjs.Subject();
constructor() {
super();
}
@ -185,8 +205,8 @@ export class DeesTable<T> extends DeesElement {
tr:hover {
cursor: pointer;
}
tr:hover .innerCellContainer {
background: ${cssManager.bdTheme('#22222210', '#ffffff20')};
tr:hover td {
background: ${cssManager.bdTheme('#22222210', '#ffffff10')};
}
tr:first-child:hover {
cursor: auto;
@ -194,19 +214,30 @@ export class DeesTable<T> extends DeesElement {
tr:first-child:hover .innerCellContainer {
background: none;
}
tr.selected .innerCellContainer {
background: ${cssManager.bdTheme('#22222220', '#ffffff40')};
tr.selected td {
background: ${cssManager.bdTheme('#22222220', '#ffffff20')};
}
tr.hasAttachment td {
background: ${cssManager.bdTheme('#0098847c', '#0098847c')};
}
th {
text-transform: uppercase;
}
th,
td {
padding: 3px 0px;
position: relative;
padding: 0px;
border-right: 1px dashed ${cssManager.bdTheme('#999', '#808080')};
}
.innerCellContainer {
min-height: 36px;
position: relative;
height: 100%;
width: 100%;
padding: 6px 8px;
line-height: 24px;
}
th:first-child .innerCellContainer,
td:first-child .innerCellContainer {
@ -220,11 +251,29 @@ export class DeesTable<T> extends DeesElement {
td:last-child {
border-right: none;
}
td input {
width: 100%;
height: 100%;
outline: none;
border: 2px solid #fa6101;
top: 0px;
bottom: 0px;
right: 0px;
left: 0px;
position: absolute;
background: #fa610140;
color: inherit;
font-family: inherit;
font-size: inherit;
font-weight: inherit;
padding: 0px 6px;
}
.action {
margin: -8px 0px;
padding: 8px;
line-height: 16px;
margin: -6px 0px;
padding: 10px;
line-height: 36px;
height: 36px;
display: inline-block;
}
@ -234,7 +283,7 @@ export class DeesTable<T> extends DeesElement {
}
.action:hover {
background: ${cssManager.bdTheme('#CCC', '#111')};
background: ${cssManager.bdTheme('#CCC', '#00000030')};
}
.footer {
@ -355,14 +404,14 @@ export class DeesTable<T> extends DeesElement {
console.log('dragenter');
console.log(realTarget);
setTimeout(() => {
realTarget.style.background = 'green';
realTarget.classList.add('hasAttachment');
}, 0);
}}
@dragleave=${async (eventArg: DragEvent) => {
eventArg.preventDefault();
eventArg.stopPropagation();
const realTarget = getTr(eventArg.target as HTMLElement);
realTarget.style.background = 'none';
realTarget.classList.remove('hasAttachment');
}}
@dragover=${async (eventArg: DragEvent) => {
eventArg.preventDefault();
@ -383,23 +432,39 @@ export class DeesTable<T> extends DeesElement {
}
}}
@contextmenu=${async (eventArg: MouseEvent) => {
DeesContextmenu.openContextMenuWithOptions(eventArg, this.getActionsForType('contextmenu').map(action => {
const menuItem: plugins.tsclass.website.IMenuItem = {
name: action.name,
iconName: action.iconName as any,
action: async () => {
await action.actionFunc(itemArg);
return null;
}
}
return menuItem;
}));
DeesContextmenu.openContextMenuWithOptions(
eventArg,
this.getActionsForType('contextmenu').map((action) => {
const menuItem: plugins.tsclass.website.IMenuItem = {
name: action.name,
iconName: action.iconName as any,
action: async () => {
await action.actionFunc(itemArg);
return null;
},
};
return menuItem;
})
);
}}
class="${itemArg === this.selectedDataRow ? 'selected' : ''}"
>
${headings.map(
(headingArg) => html`
<td>
<td
@dblclick=${(e: Event) => {
if (this.editableFields.includes(headingArg)) {
this.handleCellEditing(e, itemArg, headingArg);
} else {
const wantedAction = this.dataActions.find((actionArg) =>
actionArg.type.includes('doubleClick')
);
if (wantedAction) {
wantedAction.actionFunc(itemArg);
}
}
}}
>
<div class="innerCellContainer">${transformedItem[headingArg]}</div>
</td>
`
@ -468,6 +533,44 @@ export class DeesTable<T> extends DeesElement {
public async firstUpdated() {}
public async updated(changedProperties: Map<string | number | symbol, unknown>): Promise<void> {
super.updated(changedProperties);
this.freezeColumnWidths();
}
freezeColumnWidths() {
// Get the table element
const table = this.shadowRoot.querySelector('table');
if (!table) return;
// Create a colgroup if it doesn't exist
let colgroup = table.querySelector('colgroup');
if (!colgroup) {
colgroup = document.createElement('colgroup');
table.insertBefore(colgroup, table.firstChild);
}
// Get the first row's cells to measure the widths
const cells = table.rows[0].cells;
for (let i = 0; i < cells.length; i++) {
const cell = cells[i];
// Get computed width
const width = window.getComputedStyle(cell).width;
// Check if there's already a <col> for this cell
let col = colgroup.children[i] as HTMLElement;
if (!col) {
col = document.createElement('col');
colgroup.appendChild(col);
}
// Set the width
col.style.width = width;
}
}
getActionsForType(typeArg: ITableAction['type'][0]) {
const actions: ITableAction[] = [];
for (const action of this.dataActions) {
@ -476,4 +579,41 @@ export class DeesTable<T> extends DeesElement {
}
return actions;
}
handleCellEditing(event: Event, itemArg: T, key: string) {
const target = event.target as HTMLElement;
const transformedItem = this.displayFunction(itemArg);
const initialValue = (transformedItem[key] as unknown as string) || '';
// Create an input element
const input = document.createElement('input');
input.type = 'text';
input.value = initialValue;
const blurInput = (blurArg = true, saveArg = false) => {
if (blurArg) {
input.blur();
}
if (saveArg) {
itemArg[key] = input.value as any; // Convert string to T (you might need better type casting depending on your data structure)
target.innerHTML = input.value; // Update the cell's display
} else {
target.innerHTML = initialValue;
}
};
// When the input loses focus or the Enter key is pressed, update the data
input.addEventListener('blur', () => {
blurInput(false, false);
});
input.addEventListener('keydown', (e: KeyboardEvent) => {
if (e.key === 'Enter') {
blurInput(true, true); // This will trigger the blur event handler above
}
});
// Replace the cell's content with the input
target.innerHTML = '';
target.appendChild(input);
input.focus();
}
}