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

118
pnpm-lock.yaml generated
View File

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

View File

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

View File

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

View File

@ -67,6 +67,42 @@ export class DeesDataviewCodebox extends DeesElement {
line-height: 24px; 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 { .appbar .fileName {
text-align: center; text-align: center;
} }
@ -76,13 +112,15 @@ export class DeesDataviewCodebox extends DeesElement {
background: #161616; background: #161616;
border-top: 1px solid #222222; border-top: 1px solid #222222;
font-size: 12px; font-size: 12px;
color: #CCC; color: #888;
font-family: 'Hubot Sans', 'monospace'; font-family: 'Hubot Sans', 'monospace';
line-height: 24px; line-height: 24px;
text-align: right;
padding-right: 100px;
} }
.languageLabel { .languageLabel {
color: #fff; color: #ccc;
font-size: 12px; font-size: 12px;
line-height: 24px; line-height: 24px;
z-index: 10; z-index: 10;
@ -158,6 +196,11 @@ export class DeesDataviewCodebox extends DeesElement {
</style> </style>
<div class="mainbox"> <div class="mainbox">
<div class="appbar"> <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 class="fileName">index.ts</div>
</div> </div>
<div class="codegrid"> <div class="codegrid">

View File

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

View File

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

View File

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

View File

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

View File

@ -37,7 +37,15 @@ export interface ITableAction<T = any> {
/** /**
* the type of the action * 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 * allows to check if the action is relevant for the given item
* @param itemArg * @param itemArg
@ -84,21 +92,33 @@ export class DeesTable<T> extends DeesElement {
@property({ @property({
type: Array, type: Array,
}) })
public dataActions: ITableAction[] = []; public dataActions: ITableAction<T>[] = [];
@property({ @property({
attribute: false, attribute: false,
}) })
public displayFunction: TDisplayFunction = (itemArg: T) => itemArg as any; public displayFunction: TDisplayFunction = (itemArg: T) => itemArg as any;
@property({
attribute: false,
})
public reverseDisplayFunction: (itemArg: any) => T = (itemArg: any) => itemArg as T;
@property({ @property({
type: Object, type: Object,
}) })
public selectedDataRow: T; public selectedDataRow: T;
@property({
type: Array,
})
public editableFields: string[] = [];
public files: File[] = []; public files: File[] = [];
public fileWeakMap = new WeakMap(); public fileWeakMap = new WeakMap();
public itemChangeSubject = new domtools.plugins.smartrx.rxjs.Subject();
constructor() { constructor() {
super(); super();
} }
@ -185,8 +205,8 @@ export class DeesTable<T> extends DeesElement {
tr:hover { tr:hover {
cursor: pointer; cursor: pointer;
} }
tr:hover .innerCellContainer { tr:hover td {
background: ${cssManager.bdTheme('#22222210', '#ffffff20')}; background: ${cssManager.bdTheme('#22222210', '#ffffff10')};
} }
tr:first-child:hover { tr:first-child:hover {
cursor: auto; cursor: auto;
@ -194,19 +214,30 @@ export class DeesTable<T> extends DeesElement {
tr:first-child:hover .innerCellContainer { tr:first-child:hover .innerCellContainer {
background: none; background: none;
} }
tr.selected .innerCellContainer { tr.selected td {
background: ${cssManager.bdTheme('#22222220', '#ffffff40')}; background: ${cssManager.bdTheme('#22222220', '#ffffff20')};
} }
tr.hasAttachment td {
background: ${cssManager.bdTheme('#0098847c', '#0098847c')};
}
th { th {
text-transform: uppercase; text-transform: uppercase;
} }
th, th,
td { td {
padding: 3px 0px; position: relative;
padding: 0px;
border-right: 1px dashed ${cssManager.bdTheme('#999', '#808080')}; border-right: 1px dashed ${cssManager.bdTheme('#999', '#808080')};
} }
.innerCellContainer { .innerCellContainer {
min-height: 36px;
position: relative;
height: 100%;
width: 100%;
padding: 6px 8px; padding: 6px 8px;
line-height: 24px;
} }
th:first-child .innerCellContainer, th:first-child .innerCellContainer,
td:first-child .innerCellContainer { td:first-child .innerCellContainer {
@ -220,11 +251,29 @@ export class DeesTable<T> extends DeesElement {
td:last-child { td:last-child {
border-right: none; 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 { .action {
margin: -8px 0px; margin: -6px 0px;
padding: 8px; padding: 10px;
line-height: 16px; line-height: 36px;
height: 36px;
display: inline-block; display: inline-block;
} }
@ -234,7 +283,7 @@ export class DeesTable<T> extends DeesElement {
} }
.action:hover { .action:hover {
background: ${cssManager.bdTheme('#CCC', '#111')}; background: ${cssManager.bdTheme('#CCC', '#00000030')};
} }
.footer { .footer {
@ -355,14 +404,14 @@ export class DeesTable<T> extends DeesElement {
console.log('dragenter'); console.log('dragenter');
console.log(realTarget); console.log(realTarget);
setTimeout(() => { setTimeout(() => {
realTarget.style.background = 'green'; realTarget.classList.add('hasAttachment');
}, 0); }, 0);
}} }}
@dragleave=${async (eventArg: DragEvent) => { @dragleave=${async (eventArg: DragEvent) => {
eventArg.preventDefault(); eventArg.preventDefault();
eventArg.stopPropagation(); eventArg.stopPropagation();
const realTarget = getTr(eventArg.target as HTMLElement); const realTarget = getTr(eventArg.target as HTMLElement);
realTarget.style.background = 'none'; realTarget.classList.remove('hasAttachment');
}} }}
@dragover=${async (eventArg: DragEvent) => { @dragover=${async (eventArg: DragEvent) => {
eventArg.preventDefault(); eventArg.preventDefault();
@ -383,23 +432,39 @@ export class DeesTable<T> extends DeesElement {
} }
}} }}
@contextmenu=${async (eventArg: MouseEvent) => { @contextmenu=${async (eventArg: MouseEvent) => {
DeesContextmenu.openContextMenuWithOptions(eventArg, this.getActionsForType('contextmenu').map(action => { DeesContextmenu.openContextMenuWithOptions(
eventArg,
this.getActionsForType('contextmenu').map((action) => {
const menuItem: plugins.tsclass.website.IMenuItem = { const menuItem: plugins.tsclass.website.IMenuItem = {
name: action.name, name: action.name,
iconName: action.iconName as any, iconName: action.iconName as any,
action: async () => { action: async () => {
await action.actionFunc(itemArg); await action.actionFunc(itemArg);
return null; return null;
} },
} };
return menuItem; return menuItem;
})); })
);
}} }}
class="${itemArg === this.selectedDataRow ? 'selected' : ''}" class="${itemArg === this.selectedDataRow ? 'selected' : ''}"
> >
${headings.map( ${headings.map(
(headingArg) => html` (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> <div class="innerCellContainer">${transformedItem[headingArg]}</div>
</td> </td>
` `
@ -468,6 +533,44 @@ export class DeesTable<T> extends DeesElement {
public async firstUpdated() {} 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]) { getActionsForType(typeArg: ITableAction['type'][0]) {
const actions: ITableAction[] = []; const actions: ITableAction[] = [];
for (const action of this.dataActions) { for (const action of this.dataActions) {
@ -476,4 +579,41 @@ export class DeesTable<T> extends DeesElement {
} }
return actions; 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();
}
} }