fix(core): update

This commit is contained in:
Philipp Kunz 2023-09-17 21:38:02 +02:00
parent 7e11627618
commit a27008a295
5 changed files with 140 additions and 79 deletions

View File

@ -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/**/*",

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.208',
version: '1.0.209',
description: 'website for lossless.com'
}

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

@ -99,6 +99,11 @@ export class DeesTable<T> extends DeesElement {
})
public displayFunction: TDisplayFunction = (itemArg: T) => itemArg as any;
@property({
attribute: false,
})
public reverseDisplayFunction: (itemArg: any) => T = (itemArg: any) => itemArg as T;
@property({
type: Object,
})
@ -112,6 +117,8 @@ export class DeesTable<T> extends DeesElement {
public files: File[] = [];
public fileWeakMap = new WeakMap();
public itemChangeSubject = new domtools.plugins.smartrx.rxjs.Subject();
constructor() {
super();
}
@ -259,7 +266,7 @@ export class DeesTable<T> extends DeesElement {
font-family: inherit;
font-size: inherit;
font-weight: inherit;
padding: 0px 6px
padding: 0px 6px;
}
.action {
@ -535,35 +542,34 @@ export class DeesTable<T> extends DeesElement {
// 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[] = [];
@ -574,22 +580,34 @@ export class DeesTable<T> extends DeesElement {
return actions;
}
handleCellEditing(event: Event, item: T, key: string) {
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 = (item[key] as unknown as string) || '';
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', () => {
item[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
blurInput(false, false);
});
input.addEventListener('keydown', (e: KeyboardEvent) => {
if (e.key === 'Enter') {
input.blur(); // This will trigger the blur event handler above
blurInput(true, true); // This will trigger the blur event handler above
}
});