Compare commits

...

24 Commits

Author SHA1 Message Date
6e680085a4 1.0.215 2023-09-22 20:02:49 +02:00
286a843b67 fix(core): update 2023-09-22 20:02:48 +02:00
df7c5ebafc 1.0.214 2023-09-22 19:42:23 +02:00
9927323a9d fix(core): update 2023-09-22 19:42:23 +02:00
66f3e66c8b 1.0.213 2023-09-22 19:04:03 +02:00
c68b0c5090 fix(core): update 2023-09-22 19:04:02 +02:00
53ac03507d 1.0.212 2023-09-22 13:15:34 +02:00
0031b51bcf fix(core): update 2023-09-22 13:15:34 +02:00
67a8c6e591 1.0.211 2023-09-20 18:57:54 +02:00
806390a068 fix(core): update 2023-09-20 18:57:54 +02:00
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
10 changed files with 311 additions and 142 deletions

View File

@ -1,6 +1,6 @@
{ {
"name": "@design.estate/dees-catalog", "name": "@design.estate/dees-catalog",
"version": "1.0.203", "version": "1.0.215",
"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.203', version: '1.0.215',
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

@ -1,4 +1,4 @@
import { demoFunc } from './dees-dataview-codebox.demo.js'; import { demoFunc } from './dees-dataview-codebox.demo.js';
import { import {
DeesElement, DeesElement,
html, html,
@ -6,6 +6,7 @@ import {
type TemplateResult, type TemplateResult,
property, property,
state, state,
cssManager,
} from '@design.estate/dees-element'; } from '@design.estate/dees-element';
import hlight from 'highlight.js'; import hlight from 'highlight.js';
@ -13,6 +14,7 @@ import hlight from 'highlight.js';
import * as smartstring from '@push.rocks/smartstring'; import * as smartstring from '@push.rocks/smartstring';
import * as domtools from '@design.estate/dees-domtools'; import * as domtools from '@design.estate/dees-domtools';
import { DeesContextmenu } from './dees-contextmenu.js';
declare global { declare global {
interface HTMLElementTagNameMap { interface HTMLElementTagNameMap {
@ -58,31 +60,69 @@ export class DeesDataviewCodebox extends DeesElement {
} }
.appbar { .appbar {
color: ${cssManager.bdTheme('#333', '#ccc')};
background: ${cssManager.bdTheme('#ffffff', '#161616')};
border-bottom: 1px solid ${cssManager.bdTheme('#eeeeeb', '#222222')};
height: 24px; height: 24px;
background: #161616;
border-bottom: 1px solid #222222;
font-size: 12px; font-size: 12px;
color: #CCC;
font-family: 'Hubot Sans', 'monospace'; font-family: 'Hubot Sans', 'monospace';
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;
} }
.bottomBar { .bottomBar {
color: ${cssManager.bdTheme('#333', '#ccc')};
background: ${cssManager.bdTheme('#ffffff', '#161616')};
border-top: 1px solid ${cssManager.bdTheme('#eeeeeb', '#222222')};
height: 24px; height: 24px;
background: #161616;
border-top: 1px solid #222222;
font-size: 12px; font-size: 12px;
color: #CCC;
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: ${cssManager.bdTheme('#333', '#ccc')};
font-size: 12px; font-size: 12px;
line-height: 24px; line-height: 24px;
z-index: 10; z-index: 10;
@ -105,7 +145,6 @@ export class DeesDataviewCodebox extends DeesElement {
} }
.lineNumbers { .lineNumbers {
color: ${this.goBright ? '#acacac' : '#666666'}; color: ${this.goBright ? '#acacac' : '#666666'};
padding: 30px 16px 0px 0px; padding: 30px 16px 0px 0px;
text-align: right; text-align: right;
@ -156,8 +195,26 @@ export class DeesDataviewCodebox extends DeesElement {
color: ${this.goBright ? '#EF9300' : '#ffd765'}; color: ${this.goBright ? '#EF9300' : '#ffd765'};
} }
</style> </style>
<div class="mainbox"> <div
class="mainbox"
@contextmenu="${(eventArg) => {
DeesContextmenu.openContextMenuWithOptions(eventArg, [
{
name: 'About',
iconName: 'circleInfo',
action: async () => {
return null;
},
},
]);
}}"
>
<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

@ -0,0 +1,55 @@
import { html } from '@design.estate/dees-element';
import { faIcons } from './dees-icon.js';
export const demoFunc = () => html`
<style>
.demoContainer {
width: 100%;
display: flex;
flex-wrap: wrap;
background: #111111;
padding: 10px; font-size: 30px;
}
dees-icon {
transition: color 0.02s;
color: #ffffff;
}
dees-icon:hover {
color: #e4002b;
}
.iconContainer {
display: block;
padding: 16px 16px 0px 16px;
border: 1px solid #333333;
margin-right: 8px;
margin-bottom: 8px;
}
.iconName {
font-size: 12px;
text-align: center;
color: #ccc;
background: #333333;
padding: 4px 8px;
padding-bottom: 4px;
margin-left: -16px;
margin-right: -16px;
margin-top: 16px;
}
</style>
<div class="demoContainer">
${Object.keys(faIcons).map(
(iconName) => html`
<div class="iconContainer">
<dees-icon .iconFA=${iconName as any}></dees-icon>
<div class="iconName">${iconName}</div>
</div>
`
)}
</div>
`;

View File

@ -29,6 +29,7 @@ import {
faMessage as faMessageRegular, faMessage as faMessageRegular,
faPaste as faPasteRegular, faPaste as faPasteRegular,
faSun as faSunRegular, faSun as faSunRegular,
faTrashCan as faTrashCanRegular,
} from '@fortawesome/free-regular-svg-icons'; } from '@fortawesome/free-regular-svg-icons';
import { import {
faArrowRight as faArrowRightSolid, faArrowRight as faArrowRightSolid,
@ -53,66 +54,57 @@ import {
faMinus as faMinusSolid, faMinus as faMinusSolid,
faPaste as faPasteSolid, faPaste as faPasteSolid,
faPenToSquare as faPenToSquareSolid, faPenToSquare as faPenToSquareSolid,
faPlus as faPlusSolid,
faRss as faRssSolid, faRss as faRssSolid,
faUsers as faUsersSolid, faUsers as faUsersSolid,
faShare as faShareSolid, faShare as faShareSolid,
faSun as faSunSolid, faSun as faSunSolid,
faTrash as faTrashSolid,
faTrashCan as faTrashCanSolid,
faXmark as faXmarkSolid, faXmark as faXmarkSolid,
} from '@fortawesome/free-solid-svg-icons'; } from '@fortawesome/free-solid-svg-icons';
import { demoFunc } from './dees-icon.demo.js';
export const faIcons = { export const faIcons = {
// normal // normal
arrowRight: faArrowRightSolid, arrowRight: faArrowRightSolid,
arrowUpRightFromSquare: faArrowUpRightFromSquareSolid, arrowUpRightFromSquare: faArrowUpRightFromSquareSolid,
arrowUpRightFromSquareSolid: faArrowUpRightFromSquareSolid,
bell: faBellSolid, bell: faBellSolid,
bellSolid: faBellSolid,
bug: faBugSolid, bug: faBugSolid,
bugSolid: faBugSolid,
building: faBuildingSolid, building: faBuildingSolid,
buildingSolid: faBuildingSolid,
caretLeft: faCaretLeftSolid, caretLeft: faCaretLeftSolid,
caretLeftSolid: faCaretLeftSolid,
caretRight: faCaretRightSolid, caretRight: faCaretRightSolid,
caretRightSolid: faCaretRightSolid,
check: faCheckSolid, check: faCheckSolid,
checkSolid: faCheckSolid,
circleInfo: faCircleInfoSolid, circleInfo: faCircleInfoSolid,
circleInfoSolid: faCircleInfoSolid,
circleCheck: faCircleCheckRegular, circleCheck: faCircleCheckRegular,
circleCheckSolid: faCircleCheckSolid, circleCheckSolid: faCircleCheckSolid,
circleXmark: faCircleXmarkRegular, circleXmark: faCircleXmarkRegular,
circleXmarkSolid: faCircleXmarkSolid, circleXmarkSolid: faCircleXmarkSolid,
clockRotateLeft: faClockRotateLeftSolid, clockRotateLeft: faClockRotateLeftSolid,
clockRotateLeftSolid: faClockRotateLeftSolid,
copy: faCopyRegular, copy: faCopyRegular,
copySolid: faCopySolid, copySolid: faCopySolid,
desktop: faDesktopSolid, desktop: faDesktopSolid,
desktopSolid: faDesktopSolid,
eye: faEyeSolid, eye: faEyeSolid,
eyeSolid: faEyeSolid,
eyeSlash: faEyeSlashSolid, eyeSlash: faEyeSlashSolid,
eyeSlashSolid: faEyeSlashSolid,
grip: faGripSolid, grip: faGripSolid,
gripSolid: faGripSolid,
message: faMessageRegular, message: faMessageRegular,
messageSolid: faMessageSolid, messageSolid: faMessageSolid,
mugHot: faMugHotSolid, mugHot: faMugHotSolid,
mugHotSolid: faMugHotSolid,
minus: faMinusSolid, minus: faMinusSolid,
minusSolid: faMinusSolid,
paste: faPasteRegular, paste: faPasteRegular,
pasteSolid: faPasteSolid, pasteSolid: faPasteSolid,
penToSquare: faPenToSquareSolid, penToSquare: faPenToSquareSolid,
penToSquareSolid: faPenToSquareSolid, plus: faPlusSolid,
rss: faRssSolid, rss: faRssSolid,
rssSolid: faRssSolid,
share: faShareSolid, share: faShareSolid,
shareSolid: faShareSolid,
sun: faSunRegular, sun: faSunRegular,
sunSolid: faSunSolid, sunSolid: faSunSolid,
trash: faTrashSolid,
trashSolid: faTrashSolid,
trashCan: faTrashCanRegular,
trashCanSolid: faTrashCanSolid,
users: faUsersSolid,
xmark: faXmarkSolid, xmark: faXmarkSolid,
xmarkSolid: faXmarkSolid,
// brands // brands
facebook: faFacebook, facebook: faFacebook,
google: faGoogle, google: faGoogle,
@ -122,7 +114,6 @@ export const faIcons = {
slack: faSlackHash, slack: faSlackHash,
tiktok: faTiktok, tiktok: faTiktok,
twitter: faTwitter, twitter: faTwitter,
users: faUsersSolid,
}; };
export type TIconKey = keyof typeof faIcons; export type TIconKey = keyof typeof faIcons;
@ -135,24 +126,7 @@ declare global {
@customElement('dees-icon') @customElement('dees-icon')
export class DeesIcon extends DeesElement { export class DeesIcon extends DeesElement {
public static demo = () => html` public static demo = demoFunc;
<dees-icon iconName="visibility"></dees-icon>
<div style="background: #fff; padding: 10px; font-size: 30px">
<style>
dees-icon {
transition: color 0.05s;
}
dees-icon:hover {
color: #e4002b;
}
</style>
<dees-icon .iconFA=${'messageSolid'}></dees-icon>
<dees-icon .iconFA=${'sun'}></dees-icon>
<dees-icon .iconFA=${'sunSolid'}></dees-icon>
<dees-icon .iconFA=${'facebook'}></dees-icon>
<dees-icon .iconFA=${'arrowUpRightFromSquare'}></dees-icon>
</div>
`;
@property({ @property({
type: String type: String

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

@ -58,8 +58,8 @@ export const demoFunc = () => html`
iconName: 'bell', iconName: 'bell',
useTableBehaviour: 'upload', useTableBehaviour: 'upload',
type: ['inRow'], type: ['inRow'],
actionFunc: async (itemArg) => { actionFunc: async (optionsArg) => {
alert(itemArg.amount); alert(optionsArg.item.amount);
}, },
}, },
{ {
@ -112,7 +112,7 @@ export const demoFunc = () => html`
type: ['doubleClick', 'contextmenu'], type: ['doubleClick', 'contextmenu'],
iconName: 'eye', iconName: 'eye',
actionFunc: async (itemArg) => { actionFunc: async (itemArg) => {
alert(itemArg.amount); alert(itemArg.item.amount);
return null; return null;
}, },
} }

View File

@ -57,7 +57,12 @@ export interface ITableAction<T = any> {
* @param itemArg * @param itemArg
* @returns * @returns
*/ */
actionFunc: (itemArg: T) => Promise<any>; actionFunc: (actionDataArg: ITableActionDataArg<T>) => Promise<any>;
}
export interface ITableActionDataArg<T> {
item: T,
table: DeesTable<T>,
} }
export type TDisplayFunction<T = any> = (itemArg: T) => object; export type TDisplayFunction<T = any> = (itemArg: T) => object;
@ -99,6 +104,11 @@ export class DeesTable<T> extends DeesElement {
}) })
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,
}) })
@ -112,6 +122,8 @@ export class DeesTable<T> extends DeesElement {
public files: File[] = []; public files: File[] = [];
public fileWeakMap = new WeakMap(); public fileWeakMap = new WeakMap();
public dataChangeSubject = new domtools.plugins.smartrx.rxjs.Subject();
constructor() { constructor() {
super(); super();
} }
@ -199,7 +211,7 @@ export class DeesTable<T> extends DeesElement {
cursor: pointer; cursor: pointer;
} }
tr:hover td { 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;
@ -208,8 +220,13 @@ export class DeesTable<T> extends DeesElement {
background: none; background: none;
} }
tr.selected td { 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;
} }
@ -249,18 +266,19 @@ export class DeesTable<T> extends DeesElement {
right: 0px; right: 0px;
left: 0px; left: 0px;
position: absolute; position: absolute;
background: #00000060; background: #fa610140;
color: inherit; color: inherit;
font-family: inherit; font-family: inherit;
font-size: inherit; font-size: inherit;
font-weight: inherit; font-weight: inherit;
padding: 0px 6px 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;
} }
@ -270,7 +288,7 @@ export class DeesTable<T> extends DeesElement {
} }
.action:hover { .action:hover {
background: ${cssManager.bdTheme('#CCC', '#111')}; background: ${cssManager.bdTheme('#CCC', '#00000030')};
} }
.footer { .footer {
@ -326,7 +344,10 @@ export class DeesTable<T> extends DeesElement {
html`<div html`<div
class="headerAction" class="headerAction"
@click=${() => { @click=${() => {
action.actionFunc(this.selectedDataRow); action.actionFunc({
item: this.selectedDataRow,
table: this,
});
}} }}
> >
${action.iconName ${action.iconName
@ -391,14 +412,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();
@ -426,7 +447,10 @@ export class DeesTable<T> extends DeesElement {
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({
item: itemArg,
table: this,
});
return null; return null;
}, },
}; };
@ -447,7 +471,10 @@ export class DeesTable<T> extends DeesElement {
actionArg.type.includes('doubleClick') actionArg.type.includes('doubleClick')
); );
if (wantedAction) { if (wantedAction) {
wantedAction.actionFunc(itemArg); wantedAction.actionFunc({
item: itemArg,
table: this,
});
} }
} }
}} }}
@ -464,7 +491,10 @@ export class DeesTable<T> extends DeesElement {
${this.getActionsForType('inRow').map( ${this.getActionsForType('inRow').map(
(actionArg) => html`<div (actionArg) => html`<div
class="action" class="action"
@click=${() => actionArg.actionFunc(itemArg)} @click=${() => actionArg.actionFunc({
item: itemArg,
table: this,
})}
> >
${actionArg.iconName ${actionArg.iconName
? html` ? html`
@ -500,7 +530,10 @@ export class DeesTable<T> extends DeesElement {
html`<div html`<div
class="footerAction" class="footerAction"
@click=${() => { @click=${() => {
action.actionFunc(this.selectedDataRow); action.actionFunc({
item: this.selectedDataRow,
table: this,
});
}} }}
> >
${action.iconName ${action.iconName
@ -520,6 +553,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) {
@ -529,22 +600,34 @@ export class DeesTable<T> extends DeesElement {
return actions; return actions;
} }
handleCellEditing(event: Event, item: T, key: string) { handleCellEditing(event: Event, itemArg: T, key: string) {
const target = event.target as HTMLElement; const target = event.target as HTMLElement;
const transformedItem = this.displayFunction(itemArg);
const initialValue = (transformedItem[key] as unknown as string) || '';
// Create an input element // Create an input element
const input = document.createElement('input'); const input = document.createElement('input');
input.type = 'text'; 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 // When the input loses focus or the Enter key is pressed, update the data
input.addEventListener('blur', () => { input.addEventListener('blur', () => {
item[key] = input.value as any; // Convert string to T (you might need better type casting depending on your data structure) blurInput(false, false);
target.innerHTML = input.value; // Update the cell's display
}); });
input.addEventListener('keydown', (e: KeyboardEvent) => { input.addEventListener('keydown', (e: KeyboardEvent) => {
if (e.key === 'Enter') { 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
} }
}); });