Compare commits
56 Commits
Author | SHA1 | Date | |
---|---|---|---|
b154631c77 | |||
466a24ac10 | |||
7db91a2fe6 | |||
46652dec6f | |||
50e591b80c | |||
6710a163a9 | |||
a39f43f79a | |||
964520a2f9 | |||
6e680085a4 | |||
286a843b67 | |||
df7c5ebafc | |||
9927323a9d | |||
66f3e66c8b | |||
c68b0c5090 | |||
53ac03507d | |||
0031b51bcf | |||
67a8c6e591 | |||
806390a068 | |||
508b18bc3b | |||
c2499ea507 | |||
c0c91aec94 | |||
a27008a295 | |||
7e11627618 | |||
968ce63a53 | |||
7c0eb3290f | |||
62403625ba | |||
9a34b03540 | |||
8bb63df7e3 | |||
65cd73845a | |||
8534bc254b | |||
2a2fd324a0 | |||
58e3de2559 | |||
c30736870d | |||
cfd48de885 | |||
462df2b648 | |||
f64da93cf9 | |||
a55db621ef | |||
c033bdfc3b | |||
2610e56ec1 | |||
08aa9e3fe4 | |||
411ae7ee07 | |||
41700c1eb1 | |||
8d7bac9793 | |||
0229eefa4d | |||
61f646743a | |||
e3babde7e8 | |||
c389e43e93 | |||
1511db4eea | |||
d713756034 | |||
17d224332d | |||
32dd5e769b | |||
12ace00a90 | |||
bbc09330c9 | |||
82ead7bd1a | |||
f8f9b150b8 | |||
494e8b7e26 |
12
package.json
12
package.json
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@design.estate/dees-catalog",
|
||||
"version": "1.0.191",
|
||||
"version": "1.0.219",
|
||||
"private": false,
|
||||
"description": "website for lossless.com",
|
||||
"main": "dist_ts_web/index.js",
|
||||
@ -15,8 +15,8 @@
|
||||
"author": "Lossless GmbH",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@design.estate/dees-domtools": "^2.0.40",
|
||||
"@design.estate/dees-element": "^2.0.27",
|
||||
"@design.estate/dees-domtools": "^2.0.50",
|
||||
"@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",
|
||||
@ -24,9 +24,9 @@
|
||||
"@fortawesome/free-solid-svg-icons": "^6.4.2",
|
||||
"@push.rocks/smartpromise": "^4.0.3",
|
||||
"@push.rocks/smartstring": "^4.0.9",
|
||||
"@tsclass/tsclass": "^4.0.42",
|
||||
"@tsclass/tsclass": "^4.0.43",
|
||||
"highlight.js": "11.8.0",
|
||||
"pdfjs-dist": "^3.10.111"
|
||||
"pdfjs-dist": "^3.11.174"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@gitzone/tsbuild": "^2.1.66",
|
||||
@ -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.8.2"
|
||||
},
|
||||
"files": [
|
||||
"ts/**/*",
|
||||
|
195
pnpm-lock.yaml
generated
195
pnpm-lock.yaml
generated
@ -6,14 +6,14 @@ settings:
|
||||
|
||||
dependencies:
|
||||
'@design.estate/dees-domtools':
|
||||
specifier: ^2.0.40
|
||||
version: 2.0.40
|
||||
specifier: ^2.0.50
|
||||
version: 2.0.50
|
||||
'@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.8.2)
|
||||
'@fortawesome/fontawesome-svg-core':
|
||||
specifier: ^6.4.2
|
||||
version: 6.4.2
|
||||
@ -33,14 +33,14 @@ dependencies:
|
||||
specifier: ^4.0.9
|
||||
version: 4.0.9
|
||||
'@tsclass/tsclass':
|
||||
specifier: ^4.0.42
|
||||
version: 4.0.42
|
||||
specifier: ^4.0.43
|
||||
version: 4.0.43
|
||||
highlight.js:
|
||||
specifier: 11.8.0
|
||||
version: 11.8.0
|
||||
pdfjs-dist:
|
||||
specifier: ^3.10.111
|
||||
version: 3.10.111
|
||||
specifier: ^3.11.174
|
||||
version: 3.11.174
|
||||
|
||||
devDependencies:
|
||||
'@gitzone/tsbuild':
|
||||
@ -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.8.2)(sinon@16.1.0)
|
||||
'@gitzone/tswatch':
|
||||
specifier: ^2.0.7
|
||||
version: 2.0.7(@types/node@20.6.0)
|
||||
version: 2.0.7(@types/node@20.8.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.1.0)
|
||||
'@types/node':
|
||||
specifier: ^20.6.0
|
||||
version: 20.6.0
|
||||
specifier: ^20.8.2
|
||||
version: 20.8.2
|
||||
|
||||
packages:
|
||||
|
||||
@ -139,7 +139,7 @@ packages:
|
||||
'@pushrocks/smartsitemap': 2.0.1
|
||||
'@pushrocks/smarttime': 4.0.1
|
||||
'@pushrocks/webstore': 2.0.8
|
||||
'@tsclass/tsclass': 4.0.42
|
||||
'@tsclass/tsclass': 4.0.43
|
||||
'@types/express': 4.17.17
|
||||
body-parser: 1.20.2
|
||||
cors: 2.8.5
|
||||
@ -190,8 +190,8 @@ packages:
|
||||
js-tokens: 4.0.0
|
||||
dev: true
|
||||
|
||||
/@babel/runtime@7.22.15:
|
||||
resolution: {integrity: sha512-T0O+aa+4w0u06iNmapipJXMV4HoUir03hpx3/YqXXhu9xim3w+dVphjFWl1OH8NbZHw5Lbm9k45drDkgq2VNNA==}
|
||||
/@babel/runtime@7.23.1:
|
||||
resolution: {integrity: sha512-hC2v6p8ZSI/W0HUzh3V8C5g+NwSKzKPtJwSpTjwl0o297GP9+ZLQSkdvHz46CM3LqyoXxq+5G9komY+eSqSO0g==}
|
||||
engines: {node: '>=6.9.0'}
|
||||
dependencies:
|
||||
regenerator-runtime: 0.14.0
|
||||
@ -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.50:
|
||||
resolution: {integrity: sha512-asb7h6CG8TmAzeGQ5Aszdt/VKW699348SpribJdRLG37YNaYJEzpBxPXGm+2Wvjl2/eBt7XPTYKSwVL8Pc6RjQ==}
|
||||
dependencies:
|
||||
'@api.global/typedrequest': 3.0.1
|
||||
'@design.estate/dees-comms': 1.0.24
|
||||
@ -223,30 +223,30 @@ packages:
|
||||
'@push.rocks/smartpromise': 4.0.3
|
||||
'@push.rocks/smartrouter': 1.0.16
|
||||
'@push.rocks/smartrx': 3.0.6
|
||||
'@push.rocks/smartstate': 2.0.9
|
||||
'@push.rocks/smartstate': 2.0.16
|
||||
'@push.rocks/smarturl': 3.0.7
|
||||
'@push.rocks/webrequest': 3.0.33
|
||||
'@push.rocks/websetup': 3.0.19
|
||||
'@push.rocks/webstore': 2.0.9
|
||||
'@push.rocks/webstore': 2.0.13
|
||||
lit: 2.8.0
|
||||
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.50
|
||||
'@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.8.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.50
|
||||
'@design.estate/dees-element': 2.0.29
|
||||
'@gitzone/tsrun': 1.2.44(@types/node@20.8.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.8.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.8.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.8.2)(sinon@16.1.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.8.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.1.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.8.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.8.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.1.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.1.0)
|
||||
transitivePeerDependencies:
|
||||
- bufferutil
|
||||
- sinon
|
||||
@ -792,6 +792,12 @@ packages:
|
||||
dependencies:
|
||||
'@push.rocks/smartpromise': 4.0.3
|
||||
|
||||
/@push.rocks/smartenv@5.0.10:
|
||||
resolution: {integrity: sha512-yJURKoz5awTPyN+5MO1A9maf5+Zh2qutHlbZPx2y5P6rwGPFWThippLicqXUSs2rM49ES6RKAD48Q8w5GQkWFw==}
|
||||
dependencies:
|
||||
'@push.rocks/smartpromise': 4.0.3
|
||||
dev: false
|
||||
|
||||
/@push.rocks/smartenv@5.0.5:
|
||||
resolution: {integrity: sha512-GmFGcUvi6iXU3uS4dNyxFGLktnroHE5Kjn+5sqojiJh/U+F134Ep5DwI3aeBtsD+BNHrDNa8t74v7uoWd1zR4g==}
|
||||
dependencies:
|
||||
@ -915,14 +921,15 @@ packages:
|
||||
tree-kill: 1.2.2
|
||||
which: 3.0.1
|
||||
|
||||
/@push.rocks/smartstate@2.0.9:
|
||||
resolution: {integrity: sha512-jdMjF99NUaSrRUajl/xy5tMIvU+F39bmZxv11kKBSwrqM2UQ7zXh9CrXIYe6AbwXEoSNYIrhXzjOE8JvOrglCA==}
|
||||
/@push.rocks/smartstate@2.0.16:
|
||||
resolution: {integrity: sha512-QeDlVxJfprQozHABK1Qh8+bAf0S9vS3cBghFM7DFIdd1+rW/yCCJ58mf5judY68TSrlAjqVoZH1VDYh+580L7Q==}
|
||||
dependencies:
|
||||
'@push.rocks/isohash': 2.0.1
|
||||
'@push.rocks/lik': 6.0.5
|
||||
'@push.rocks/smartjson': 5.0.10
|
||||
'@push.rocks/smartpromise': 4.0.3
|
||||
'@push.rocks/smartrx': 3.0.6
|
||||
'@push.rocks/webstore': 2.0.13
|
||||
dev: false
|
||||
|
||||
/@push.rocks/smartstream@2.0.4:
|
||||
@ -963,10 +970,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.1.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.1.0)
|
||||
'@push.rocks/smartdelay': 3.0.5
|
||||
'@push.rocks/smartenv': 5.0.5
|
||||
'@push.rocks/smartexpect': 1.0.21
|
||||
@ -983,10 +990,10 @@ packages:
|
||||
resolution: {integrity: sha512-wO2ibVdTMIE4hwsK9pZSNMl1OcFNbn0/ZUjZS18wzHKR4WMMaVUPmI4eHUzc7fWR6PWvkseNGn3JFxA9YK4p1Q==}
|
||||
dependencies:
|
||||
'@push.rocks/smartdelay': 3.0.5
|
||||
'@push.rocks/smartenv': 5.0.5
|
||||
'@push.rocks/smartenv': 5.0.10
|
||||
'@push.rocks/smartjson': 5.0.10
|
||||
'@push.rocks/smartpromise': 4.0.3
|
||||
'@push.rocks/webstore': 2.0.9
|
||||
'@push.rocks/webstore': 2.0.13
|
||||
dev: false
|
||||
|
||||
/@push.rocks/websetup@3.0.19:
|
||||
@ -994,15 +1001,15 @@ packages:
|
||||
dependencies:
|
||||
'@pushrocks/smartdelay': 3.0.1
|
||||
'@pushrocks/smartpromise': 4.0.2
|
||||
'@tsclass/tsclass': 4.0.42
|
||||
'@tsclass/tsclass': 4.0.43
|
||||
dev: false
|
||||
|
||||
/@push.rocks/webstore@2.0.9:
|
||||
resolution: {integrity: sha512-B/a/M+udyr0pByGdOEcWyY+gugIx36YJXWwNUrslh9XjIWs+0NKSFJRnZKuVYSCHOnc/WblAOceSlGVwFmYVBw==}
|
||||
/@push.rocks/webstore@2.0.13:
|
||||
resolution: {integrity: sha512-w5Q3g1TT5SDIXukAAoYVuWud+Y5ysS8qiBqPU00/re895VVZhUOSNJMNU6jyneZigmbWtwSLsxDkZHlsHWpfuA==}
|
||||
dependencies:
|
||||
'@apiglobal/typedrequest-interfaces': 2.0.1
|
||||
'@push.rocks/lik': 6.0.5
|
||||
'@push.rocks/smartenv': 5.0.5
|
||||
'@push.rocks/smartenv': 5.0.10
|
||||
'@push.rocks/smartjson': 5.0.10
|
||||
'@push.rocks/smartpromise': 4.0.3
|
||||
'@push.rocks/smartrx': 3.0.6
|
||||
@ -1174,7 +1181,7 @@ packages:
|
||||
'@pushrocks/smartrequest': 2.0.15
|
||||
'@pushrocks/smartsitemap': 2.0.1
|
||||
'@pushrocks/smarttime': 4.0.1
|
||||
'@tsclass/tsclass': 4.0.42
|
||||
'@tsclass/tsclass': 4.0.43
|
||||
'@types/compression': 1.7.2
|
||||
'@types/cors': 2.8.13
|
||||
'@types/express': 4.17.17
|
||||
@ -1356,7 +1363,7 @@ packages:
|
||||
'@pushrocks/smartpromise': 3.1.10
|
||||
'@pushrocks/smartpuppeteer': 2.0.2
|
||||
'@pushrocks/smartunique': 3.0.3
|
||||
'@tsclass/tsclass': 4.0.42
|
||||
'@tsclass/tsclass': 4.0.43
|
||||
'@types/express': 4.17.17
|
||||
express: 4.18.2
|
||||
pdf-merger-js: 3.4.0
|
||||
@ -1682,10 +1689,10 @@ packages:
|
||||
type-fest: 2.19.0
|
||||
dev: true
|
||||
|
||||
/@tsclass/tsclass@4.0.42:
|
||||
resolution: {integrity: sha512-mWZ8k3G7VL/dSNaJCv7mjbad6movf2rTE+1MdsXMoCxblZpJ3YzqlRsKm/JUQkxqF1H28q6m/L5BV42LfNZsiA==}
|
||||
/@tsclass/tsclass@4.0.43:
|
||||
resolution: {integrity: sha512-BGihF65KjD/pqQIrTUemff7OMvQi22FBZCti+7NHWIb7ZxtFrJsciEyAFQrx0de5GQWOFTwQx6HNKqwgkP2Mhg==}
|
||||
dependencies:
|
||||
type-fest: 3.13.1
|
||||
type-fest: 4.3.1
|
||||
|
||||
/@tsconfig/node10@1.0.9:
|
||||
resolution: {integrity: sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA==}
|
||||
@ -1702,7 +1709,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.8.2
|
||||
dev: true
|
||||
|
||||
/@types/babel__code-frame@7.0.3:
|
||||
@ -1713,7 +1720,7 @@ packages:
|
||||
resolution: {integrity: sha512-ALYone6pm6QmwZoAgeyNksccT9Q4AWZQ6PvfwR37GT6r6FWUPguq6sUmNGSMV2Wr761oQoBxwGGa6DR5o1DC9g==}
|
||||
dependencies:
|
||||
'@types/connect': 3.4.35
|
||||
'@types/node': 20.6.0
|
||||
'@types/node': 20.8.2
|
||||
dev: true
|
||||
|
||||
/@types/buffer-json@2.0.1:
|
||||
@ -1739,14 +1746,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.8.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.8.2
|
||||
'@types/qs': 6.9.7
|
||||
dev: true
|
||||
|
||||
@ -1759,7 +1766,7 @@ packages:
|
||||
/@types/connect@3.4.35:
|
||||
resolution: {integrity: sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ==}
|
||||
dependencies:
|
||||
'@types/node': 20.6.0
|
||||
'@types/node': 20.8.2
|
||||
dev: true
|
||||
|
||||
/@types/content-disposition@0.5.5:
|
||||
@ -1780,13 +1787,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.8.2
|
||||
dev: true
|
||||
|
||||
/@types/cors@2.8.13:
|
||||
resolution: {integrity: sha512-RG8AStHlUiV5ysZQKq97copd2UmVYw3/pRMLefISZ3S1hK104Cwm7iLQ3fTKx+lsUH2CE8FlLaYeEA2LSeqYUA==}
|
||||
dependencies:
|
||||
'@types/node': 20.6.0
|
||||
'@types/node': 20.8.2
|
||||
dev: true
|
||||
|
||||
/@types/debounce@1.2.1:
|
||||
@ -1800,7 +1807,7 @@ packages:
|
||||
/@types/express-serve-static-core@4.17.35:
|
||||
resolution: {integrity: sha512-wALWQwrgiB2AWTT91CB62b6Yt0sNHpznUXeZEcnPU3DRdlDIz74x8Qg1UUYKSVFi+va5vKOLYRBI1bRKiLLKIg==}
|
||||
dependencies:
|
||||
'@types/node': 20.6.0
|
||||
'@types/node': 20.8.2
|
||||
'@types/qs': 6.9.7
|
||||
'@types/range-parser': 1.2.4
|
||||
'@types/send': 0.17.1
|
||||
@ -1818,25 +1825,25 @@ packages:
|
||||
/@types/finalhandler@1.2.0:
|
||||
resolution: {integrity: sha512-NgEZKOhxUSXkwNnWNaMXZaopQ5aFGPAYiEpEWIkQ6Dzc4iS0M1oQsvWne2t+ex9QZUAdTz/ZT4tOXJhWtP6mCw==}
|
||||
dependencies:
|
||||
'@types/node': 20.6.0
|
||||
'@types/node': 20.8.2
|
||||
dev: true
|
||||
|
||||
/@types/from2@2.3.2:
|
||||
resolution: {integrity: sha512-s1pdctxW2+CA4FOxxTBRxC3RKQL9Br1a2s2LngP4jh1BI84JBL3mDXj87EwcckN9z/IXp8o3ySmvZveGEAAwqw==}
|
||||
dependencies:
|
||||
'@types/node': 20.6.0
|
||||
'@types/node': 20.8.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.8.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.8.2
|
||||
|
||||
/@types/html-minifier@4.0.2:
|
||||
resolution: {integrity: sha512-4IkmkXJP/25R2fZsCHDX2abztXuQRzUAZq39PfCMz2loLFj8vS9y7aF6vDl58koXSTpsF+eL4Lc5Y4Aww/GCTQ==}
|
||||
@ -1884,7 +1891,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.8.2
|
||||
|
||||
/@types/keygrip@1.0.2:
|
||||
resolution: {integrity: sha512-GJhpTepz2udxGexqos8wgaBx4I/zWIDPh/KOGEwAqtuGDkOUJu5eFvwmdBX4AmB8Odsr+9pHCQqiAqDL/yKMKw==}
|
||||
@ -1906,7 +1913,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.8.2
|
||||
dev: true
|
||||
|
||||
/@types/mime-types@2.1.1:
|
||||
@ -1930,8 +1937,8 @@ packages:
|
||||
resolution: {integrity: sha512-NYrtPht0wGzhwe9+/idPaBB+TqkY9AhTvOLMkThm0IoEfLaiVQZwBwyJ5puCkO3AUCWrmcoePjp2mbFocKy4SQ==}
|
||||
dev: true
|
||||
|
||||
/@types/node@20.6.0:
|
||||
resolution: {integrity: sha512-najjVq5KN2vsH2U/xyh2opaSEz6cZMR2SetLIlxlj08nOcmPOemJmUK2o4kUzfLqfrWE0PIrNeE16XhYDd3nqg==}
|
||||
/@types/node@20.8.2:
|
||||
resolution: {integrity: sha512-Vvycsc9FQdwhxE3y3DzeIxuEJbWGDsnrxvMADzTDF/lcdR9/K+AQIeAghTQsHtotg/q0j3WEOYS/jQgSdWue3w==}
|
||||
|
||||
/@types/parse5@6.0.3:
|
||||
resolution: {integrity: sha512-SuT16Q1K51EAVPz1K29DJ/sXjhSQ0zjvsypYJ6tlwVsRV9jwW5Adq2ch8Dq8kDBCkYnELS7N7VNCSB5nC56t/g==}
|
||||
@ -1960,7 +1967,7 @@ packages:
|
||||
resolution: {integrity: sha512-Cwo8LE/0rnvX7kIIa3QHCkcuF21c05Ayb0ZfxPiv0W8VRiZiNW/WuRupHKpqqGVGf7SUA44QSOUKaEd9lIrd/Q==}
|
||||
dependencies:
|
||||
'@types/mime': 1.3.2
|
||||
'@types/node': 20.6.0
|
||||
'@types/node': 20.8.2
|
||||
dev: true
|
||||
|
||||
/@types/serve-static@1.15.2:
|
||||
@ -1968,7 +1975,7 @@ packages:
|
||||
dependencies:
|
||||
'@types/http-errors': 2.0.1
|
||||
'@types/mime': 3.0.1
|
||||
'@types/node': 20.6.0
|
||||
'@types/node': 20.8.2
|
||||
dev: true
|
||||
|
||||
/@types/shortid@0.0.29:
|
||||
@ -1998,7 +2005,7 @@ packages:
|
||||
/@types/through2@2.0.38:
|
||||
resolution: {integrity: sha512-YFu+nHmjxMurkH1BSzA0Z1WrKDAY8jUKPZctNQn7mc+/KKtp2XxnclHFXxdB1m7Iqnzb5aywgP8TMK283LezGQ==}
|
||||
dependencies:
|
||||
'@types/node': 20.6.0
|
||||
'@types/node': 20.8.2
|
||||
|
||||
/@types/trusted-types@2.0.3:
|
||||
resolution: {integrity: sha512-NfQ4gyz38SL8sDNrSixxU2Os1a5xcdFxipAFxYEuLUlvU2uDwS4NUpsImcf1//SlWItCVMMLiylsxbmNMToV/g==}
|
||||
@ -2023,14 +2030,14 @@ packages:
|
||||
/@types/ws@7.4.7:
|
||||
resolution: {integrity: sha512-JQbbmxZTZehdc2iszGKs5oC3NFnjeay7mtAWrdt7qNtAVK0g19muApzAy4bm9byz79xa2ZnO/BOBC2R8RC5Lww==}
|
||||
dependencies:
|
||||
'@types/node': 20.6.0
|
||||
'@types/node': 20.8.2
|
||||
dev: true
|
||||
|
||||
/@types/yauzl@2.10.0:
|
||||
resolution: {integrity: sha512-Cn6WYCm0tXv8p6k+A8PvbDG763EDpBoTzHdA+Q/MF6H3sapGjCm9NzoaJncJS9tUKSuCoDs9XHxYYsQDgxR6kw==}
|
||||
/@types/yauzl@2.10.1:
|
||||
resolution: {integrity: sha512-CHzgNU3qYBnp/O4S3yv2tXPlvMTq0YWSTVg2/JYLqWZGHwwgJGAwd00poay/11asPq8wLFwHzubyInqHIFmmiw==}
|
||||
requiresBuild: true
|
||||
dependencies:
|
||||
'@types/node': 20.6.0
|
||||
'@types/node': 20.8.2
|
||||
dev: true
|
||||
optional: true
|
||||
|
||||
@ -2419,7 +2426,7 @@ packages:
|
||||
/broadcast-channel@3.7.0:
|
||||
resolution: {integrity: sha512-cIAKJXAxGJceNZGTZSBzMxzyOn72cVgPnKx4dc6LRjQgbaJUQqhy5rzL3zbMxkMWsGKkv2hSFkPRMEXfoMZ2Mg==}
|
||||
dependencies:
|
||||
'@babel/runtime': 7.22.15
|
||||
'@babel/runtime': 7.23.1
|
||||
detect-node: 2.1.0
|
||||
js-sha3: 0.8.0
|
||||
microseconds: 0.2.0
|
||||
@ -2513,7 +2520,7 @@ packages:
|
||||
requiresBuild: true
|
||||
dependencies:
|
||||
'@mapbox/node-pre-gyp': 1.0.11
|
||||
nan: 2.17.0
|
||||
nan: 2.18.0
|
||||
simple-get: 3.1.1
|
||||
transitivePeerDependencies:
|
||||
- encoding
|
||||
@ -3006,7 +3013,7 @@ packages:
|
||||
dependencies:
|
||||
'@types/cookie': 0.4.1
|
||||
'@types/cors': 2.8.13
|
||||
'@types/node': 20.6.0
|
||||
'@types/node': 20.8.2
|
||||
accepts: 1.3.8
|
||||
base64id: 2.0.0
|
||||
cookie: 0.4.2
|
||||
@ -3026,7 +3033,7 @@ packages:
|
||||
dependencies:
|
||||
'@types/cookie': 0.4.1
|
||||
'@types/cors': 2.8.13
|
||||
'@types/node': 20.6.0
|
||||
'@types/node': 20.8.2
|
||||
accepts: 1.3.8
|
||||
base64id: 2.0.0
|
||||
cookie: 0.4.2
|
||||
@ -3237,7 +3244,7 @@ packages:
|
||||
get-stream: 5.2.0
|
||||
yauzl: 2.10.0
|
||||
optionalDependencies:
|
||||
'@types/yauzl': 2.10.0
|
||||
'@types/yauzl': 2.10.1
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
dev: true
|
||||
@ -4546,8 +4553,8 @@ packages:
|
||||
/ms@2.1.3:
|
||||
resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==}
|
||||
|
||||
/nan@2.17.0:
|
||||
resolution: {integrity: sha512-2ZTgtl0nJsO0KQCjEpxcIr5D+Yv90plTitZt9JBfQvVJDS5seMl3FOvsh3+9CoYWXf/1l5OaZzzF6nDm4cagaQ==}
|
||||
/nan@2.18.0:
|
||||
resolution: {integrity: sha512-W7tfG7vMOGtD30sHoZSSc/JVYiyDPEyQVso/Zz+/uQd0B0L46gtC+pHha5FFMRpil6fm/AoEcRWyOVi4+E/f8w==}
|
||||
requiresBuild: true
|
||||
dev: false
|
||||
optional: true
|
||||
@ -4887,8 +4894,8 @@ packages:
|
||||
bundledDependencies:
|
||||
- '@xmldom/xmldom'
|
||||
|
||||
/pdfjs-dist@3.10.111:
|
||||
resolution: {integrity: sha512-+SXXGN/3YTNQSK5Ae7EyqQuR+4IAsNunJq/Us5ByOkRJ45qBXXOwkiWi3RIDU+CyF+ak5eSWXl2FQW2PKBrsRA==}
|
||||
/pdfjs-dist@3.11.174:
|
||||
resolution: {integrity: sha512-TdTZPf1trZ8/UFu5Cx/GXB7GZM30LT+wWUNfsi6Bq8ePLnb+woNKtDymI2mxZYBpMbonNFqKmiz684DIfnd8dA==}
|
||||
engines: {node: '>=18'}
|
||||
optionalDependencies:
|
||||
canvas: 2.11.2
|
||||
@ -5324,18 +5331,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.1.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.1.0
|
||||
dev: true
|
||||
|
||||
/sinon@15.2.0:
|
||||
resolution: {integrity: sha512-nPS85arNqwBXaIsFCkolHjGIkFo+Oxu9vbgmBJizLAhqe6P2o3Qmj3KCUoRkfhHtvgDhZdWD3risLHAUJ8npjw==}
|
||||
/sinon@16.1.0:
|
||||
resolution: {integrity: sha512-ZSgzF0vwmoa8pq0GEynqfdnpEDyP1PkYmEChnkjW0Vyh8IDlyFEJ+fkMhCP0il6d5cJjPl2PUsnUSAuP5sttOQ==}
|
||||
dependencies:
|
||||
'@sinonjs/commons': 3.0.0
|
||||
'@sinonjs/fake-timers': 10.3.0
|
||||
@ -5679,7 +5686,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.8.2)(typescript@5.1.6):
|
||||
resolution: {integrity: sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==}
|
||||
hasBin: true
|
||||
peerDependencies:
|
||||
@ -5698,7 +5705,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.8.2
|
||||
acorn: 8.10.0
|
||||
acorn-walk: 8.2.0
|
||||
arg: 4.1.3
|
||||
@ -5731,9 +5738,9 @@ packages:
|
||||
resolution: {integrity: sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==}
|
||||
engines: {node: '>=12.20'}
|
||||
|
||||
/type-fest@3.13.1:
|
||||
resolution: {integrity: sha512-tLq3bSNx+xSpwvAJnzrK0Ep5CLNWjvFTOp71URMaAEWBfRb9nnJiBoUe0tF8bI4ZFO3omgBR6NvnbzVUT3Ly4g==}
|
||||
engines: {node: '>=14.16'}
|
||||
/type-fest@4.3.1:
|
||||
resolution: {integrity: sha512-pphNW/msgOUSkJbH58x8sqpq8uQj6b0ZKGxEsLKMUnGorRcDjrUaLS+39+/ub41JNTwrrMyJcUB8+YZs3mbwqw==}
|
||||
engines: {node: '>=16'}
|
||||
|
||||
/type-is@1.6.18:
|
||||
resolution: {integrity: sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==}
|
||||
@ -5834,7 +5841,7 @@ packages:
|
||||
/unload@2.2.0:
|
||||
resolution: {integrity: sha512-B60uB5TNBLtN6/LsgAf3udH9saB5p7gqJwcFfbOEZ8BcBHnGwCf6G/TGiEqkRAxX7zAFIUtzdrXQSdL3Q/wqNA==}
|
||||
dependencies:
|
||||
'@babel/runtime': 7.22.15
|
||||
'@babel/runtime': 7.23.1
|
||||
detect-node: 2.1.0
|
||||
dev: false
|
||||
|
||||
|
@ -3,6 +3,6 @@
|
||||
*/
|
||||
export const commitinfo = {
|
||||
name: '@design.estate/dees-catalog',
|
||||
version: '1.0.191',
|
||||
version: '1.0.219',
|
||||
description: 'website for lossless.com'
|
||||
}
|
||||
|
15
ts_web/elements/dees-button.demo.ts
Normal file
15
ts_web/elements/dees-button.demo.ts
Normal file
@ -0,0 +1,15 @@
|
||||
import { html } from '@design.estate/dees-element';
|
||||
|
||||
export const demoFunc = () => html`
|
||||
<dees-button>This is a slotted Text</dees-button>
|
||||
<p>
|
||||
<dees-button text="Highlighted: This text shows" type="highlighted">Highlighted</dees-button>
|
||||
</p>
|
||||
<p><dees-button type="discreet">This is discreete button</dees-button></p>
|
||||
<p><dees-button disabled>This is a disabled button</dees-button></p>
|
||||
<p><dees-button type="big">This is a slotted Text</dees-button></p>
|
||||
<p><dees-button status="normal">Normal Status</dees-button></p>
|
||||
<p><dees-button disabled status="pending">Pending Status</dees-button></p>
|
||||
<p><dees-button disabled status="success">Success Status</dees-button></p>
|
||||
<p><dees-button disabled status="error">Error Status</dees-button></p>
|
||||
`;
|
@ -1,3 +1,4 @@
|
||||
import { demoFunc } from './dees-button.demo.js';
|
||||
import {
|
||||
customElement,
|
||||
html,
|
||||
@ -20,17 +21,7 @@ declare global {
|
||||
|
||||
@customElement('dees-button')
|
||||
export class DeesButton extends DeesElement {
|
||||
public static demo = () => html`
|
||||
<dees-button>This is a slotted Text</dees-button>
|
||||
<p><dees-button text="Highlighted: This text shows" type="highlighted">Highlighted</dees-button></p>
|
||||
<p><dees-button type="discreet">This is discreete button</dees-button></p>
|
||||
<p><dees-button disabled>This is a disabled button</dees-button></p>
|
||||
<p><dees-button type="big">This is a slotted Text</dees-button></p>
|
||||
<p><dees-button status="normal">Normal Status</dees-button></p>
|
||||
<p><dees-button disabled status="pending">Pending Status</dees-button></p>
|
||||
<p><dees-button disabled status="success">Success Status</dees-button></p>
|
||||
<p><dees-button disabled status="error">Error Status</dees-button></p>
|
||||
`;
|
||||
public static demo = demoFunc;
|
||||
|
||||
@property({
|
||||
reflect: true,
|
||||
@ -74,6 +65,7 @@ export class DeesButton extends DeesElement {
|
||||
:host {
|
||||
display: block;
|
||||
box-sizing: border-box;
|
||||
font-family: 'Roboto', 'monospace';
|
||||
}
|
||||
:host([hidden]) {
|
||||
display: none;
|
||||
|
@ -33,7 +33,7 @@ export const demoFunc = () => html`
|
||||
},
|
||||
},
|
||||
]);
|
||||
}}>Hello</dees-button>
|
||||
}}>Right-Click for contextmenu</dees-button>
|
||||
<dees-contextmenu class="withMargin"></dees-contextmenu>
|
||||
<dees-contextmenu
|
||||
class="withMargin"
|
||||
|
@ -31,7 +31,7 @@ export class DeesContextmenu extends DeesElement {
|
||||
eventArg.preventDefault();
|
||||
eventArg.stopPropagation();
|
||||
const contextMenu = new DeesContextmenu();
|
||||
contextMenu.style.position = 'absolute';
|
||||
contextMenu.style.position = 'fixed';
|
||||
contextMenu.style.zIndex = '2000';
|
||||
contextMenu.style.top = `${eventArg.clientY.toString()}px`;
|
||||
contextMenu.style.left = `${eventArg.clientX.toString()}px`;
|
||||
@ -71,11 +71,11 @@ export class DeesContextmenu extends DeesElement {
|
||||
color: ${cssManager.bdTheme('#222', '#ccc')};
|
||||
font-size: 14px;
|
||||
width: 200px;
|
||||
border: 1px solid #444;
|
||||
border: 1px solid ${cssManager.bdTheme('#fff', '#444')};
|
||||
min-height: 34px;
|
||||
border-radius: 3px;
|
||||
background: #222;
|
||||
box-shadow: 0px 1px 4px #000;
|
||||
background: ${cssManager.bdTheme('#fff', '#222')};
|
||||
box-shadow: 0px 1px 4px ${cssManager.bdTheme('#00000020', '#000000')};
|
||||
user-select: none;
|
||||
}
|
||||
|
||||
@ -92,7 +92,7 @@ export class DeesContextmenu extends DeesElement {
|
||||
|
||||
.mainbox .menuitem:hover {
|
||||
cursor: pointer;
|
||||
background: #ffffff10;
|
||||
background: ${cssManager.bdTheme('#00000010', '#ffffff10')};
|
||||
}
|
||||
|
||||
.mainbox .menuitem:active {
|
||||
|
@ -1,4 +1,4 @@
|
||||
import { demoFunc } from './dees-dataview-codebox.demo.js';
|
||||
import { demoFunc } from './dees-dataview-codebox.demo.js';
|
||||
import {
|
||||
DeesElement,
|
||||
html,
|
||||
@ -6,6 +6,7 @@ import {
|
||||
type TemplateResult,
|
||||
property,
|
||||
state,
|
||||
cssManager,
|
||||
} from '@design.estate/dees-element';
|
||||
|
||||
import hlight from 'highlight.js';
|
||||
@ -13,6 +14,7 @@ import hlight from 'highlight.js';
|
||||
import * as smartstring from '@push.rocks/smartstring';
|
||||
|
||||
import * as domtools from '@design.estate/dees-domtools';
|
||||
import { DeesContextmenu } from './dees-contextmenu.js';
|
||||
|
||||
declare global {
|
||||
interface HTMLElementTagNameMap {
|
||||
@ -46,6 +48,7 @@ export class DeesDataviewCodebox extends DeesElement {
|
||||
display: block;
|
||||
text-align: left;
|
||||
font-size: 16px;
|
||||
font-family: 'Roboto', 'Inter', sans-serif;
|
||||
}
|
||||
.mainbox {
|
||||
position: relative;
|
||||
@ -58,31 +61,67 @@ export class DeesDataviewCodebox extends DeesElement {
|
||||
}
|
||||
|
||||
.appbar {
|
||||
color: ${cssManager.bdTheme('#333', '#ccc')};
|
||||
background: ${cssManager.bdTheme('#ffffff', '#161616')};
|
||||
border-bottom: 1px solid ${cssManager.bdTheme('#eeeeeb', '#222222')};
|
||||
height: 24px;
|
||||
background: #161616;
|
||||
border-bottom: 1px solid #222222;
|
||||
font-size: 12px;
|
||||
color: #CCC;
|
||||
font-family: 'Hubot Sans', 'monospace';
|
||||
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;
|
||||
}
|
||||
|
||||
.bottomBar {
|
||||
color: ${cssManager.bdTheme('#333', '#ccc')};
|
||||
background: ${cssManager.bdTheme('#ffffff', '#161616')};
|
||||
border-top: 1px solid ${cssManager.bdTheme('#eeeeeb', '#222222')};
|
||||
height: 24px;
|
||||
background: #161616;
|
||||
border-top: 1px solid #222222;
|
||||
font-size: 12px;
|
||||
color: #CCC;
|
||||
font-family: 'Hubot Sans', 'monospace';
|
||||
line-height: 24px;
|
||||
text-align: right;
|
||||
padding-right: 100px;
|
||||
}
|
||||
|
||||
.languageLabel {
|
||||
color: #fff;
|
||||
color: ${cssManager.bdTheme('#333', '#ccc')};
|
||||
font-size: 12px;
|
||||
line-height: 24px;
|
||||
z-index: 10;
|
||||
@ -105,7 +144,6 @@ export class DeesDataviewCodebox extends DeesElement {
|
||||
}
|
||||
|
||||
.lineNumbers {
|
||||
|
||||
color: ${this.goBright ? '#acacac' : '#666666'};
|
||||
padding: 30px 16px 0px 0px;
|
||||
text-align: right;
|
||||
@ -156,8 +194,26 @@ export class DeesDataviewCodebox extends DeesElement {
|
||||
color: ${this.goBright ? '#EF9300' : '#ffd765'};
|
||||
}
|
||||
</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="macControls">
|
||||
<div class="close"></div>
|
||||
<div class="toDock"></div>
|
||||
<div class="minMax"></div>
|
||||
</div>
|
||||
<div class="fileName">index.ts</div>
|
||||
</div>
|
||||
<div class="codegrid">
|
||||
|
@ -29,7 +29,7 @@ export class DeesDataviewStatusobject extends DeesElement {
|
||||
cssManager.defaultStyles,
|
||||
css`
|
||||
.mainbox {
|
||||
border-radius: 3px;
|
||||
border-radius: 8px;
|
||||
background: ${cssManager.bdTheme('#fff', '#1b1b1b')};
|
||||
box-shadow: 0px 1px 3px #00000030;
|
||||
min-height: 48px;
|
||||
|
55
ts_web/elements/dees-icon.demo.ts
Normal file
55
ts_web/elements/dees-icon.demo.ts
Normal 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>
|
||||
|
||||
`;
|
@ -29,6 +29,7 @@ import {
|
||||
faMessage as faMessageRegular,
|
||||
faPaste as faPasteRegular,
|
||||
faSun as faSunRegular,
|
||||
faTrashCan as faTrashCanRegular,
|
||||
} from '@fortawesome/free-regular-svg-icons';
|
||||
import {
|
||||
faArrowRight as faArrowRightSolid,
|
||||
@ -42,6 +43,7 @@ import {
|
||||
faCircleInfo as faCircleInfoSolid,
|
||||
faCircleCheck as faCircleCheckSolid,
|
||||
faCircleXmark as faCircleXmarkSolid,
|
||||
faClockRotateLeft as faClockRotateLeftSolid,
|
||||
faCopy as faCopySolid,
|
||||
faDesktop as faDesktopSolid,
|
||||
faEye as faEyeSolid,
|
||||
@ -52,64 +54,57 @@ import {
|
||||
faMinus as faMinusSolid,
|
||||
faPaste as faPasteSolid,
|
||||
faPenToSquare as faPenToSquareSolid,
|
||||
faPlus as faPlusSolid,
|
||||
faRss as faRssSolid,
|
||||
faUsers as faUsersSolid,
|
||||
faShare as faShareSolid,
|
||||
faSun as faSunSolid,
|
||||
faTrash as faTrashSolid,
|
||||
faTrashCan as faTrashCanSolid,
|
||||
faXmark as faXmarkSolid,
|
||||
} from '@fortawesome/free-solid-svg-icons';
|
||||
import { demoFunc } from './dees-icon.demo.js';
|
||||
|
||||
export const faIcons = {
|
||||
// normal
|
||||
arrowRight: faArrowRightSolid,
|
||||
arrowUpRightFromSquare: faArrowUpRightFromSquareSolid,
|
||||
arrowUpRightFromSquareSolid: faArrowUpRightFromSquareSolid,
|
||||
bell: faBellSolid,
|
||||
bellSolid: faBellSolid,
|
||||
bug: faBugSolid,
|
||||
bugSolid: faBugSolid,
|
||||
building: faBuildingSolid,
|
||||
buildingSolid: faBuildingSolid,
|
||||
caretLeft: faCaretLeftSolid,
|
||||
caretLeftSolid: faCaretLeftSolid,
|
||||
caretRight: faCaretRightSolid,
|
||||
caretRightSolid: faCaretRightSolid,
|
||||
check: faCheckSolid,
|
||||
checkSolid: faCheckSolid,
|
||||
circleInfo: faCircleInfoSolid,
|
||||
circleInfoSolid: faCircleInfoSolid,
|
||||
circleCheck: faCircleCheckRegular,
|
||||
circleCheckSolid: faCircleCheckSolid,
|
||||
circleXmark: faCircleXmarkRegular,
|
||||
circleXmarkSolid: faCircleXmarkSolid,
|
||||
clockRotateLeft: faClockRotateLeftSolid,
|
||||
copy: faCopyRegular,
|
||||
copySolid: faCopySolid,
|
||||
desktop: faDesktopSolid,
|
||||
desktopSolid: faDesktopSolid,
|
||||
eye: faEyeSolid,
|
||||
eyeSolid: faEyeSolid,
|
||||
eyeSlash: faEyeSlashSolid,
|
||||
eyeSlashSolid: faEyeSlashSolid,
|
||||
grip: faGripSolid,
|
||||
gripSolid: faGripSolid,
|
||||
message: faMessageRegular,
|
||||
messageSolid: faMessageSolid,
|
||||
mugHot: faMugHotSolid,
|
||||
faMugHotSolid: faMugHotSolid,
|
||||
minus: faMinusSolid,
|
||||
minusSolid: faMinusSolid,
|
||||
paste: faPasteRegular,
|
||||
pasteSolid: faPasteSolid,
|
||||
penToSquare: faPenToSquareSolid,
|
||||
penToSquareSolid: faPenToSquareSolid,
|
||||
plus: faPlusSolid,
|
||||
rss: faRssSolid,
|
||||
rssSolid: faRssSolid,
|
||||
share: faShareSolid,
|
||||
shareSolid: faShareSolid,
|
||||
sun: faSunRegular,
|
||||
sunSolid: faSunSolid,
|
||||
trash: faTrashSolid,
|
||||
trashSolid: faTrashSolid,
|
||||
trashCan: faTrashCanRegular,
|
||||
trashCanSolid: faTrashCanSolid,
|
||||
users: faUsersSolid,
|
||||
xmark: faXmarkSolid,
|
||||
xmarkSolid: faXmarkSolid,
|
||||
// brands
|
||||
facebook: faFacebook,
|
||||
google: faGoogle,
|
||||
@ -119,7 +114,6 @@ export const faIcons = {
|
||||
slack: faSlackHash,
|
||||
tiktok: faTiktok,
|
||||
twitter: faTwitter,
|
||||
users: faUsersSolid,
|
||||
};
|
||||
|
||||
export type TIconKey = keyof typeof faIcons;
|
||||
@ -132,24 +126,7 @@ declare global {
|
||||
|
||||
@customElement('dees-icon')
|
||||
export class DeesIcon extends DeesElement {
|
||||
public static demo = () => html`
|
||||
<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>
|
||||
`;
|
||||
public static demo = demoFunc;
|
||||
|
||||
@property({
|
||||
type: String
|
||||
|
@ -124,7 +124,7 @@ export class DeesInputFileupload extends DeesElement {
|
||||
border-bottom: 1px dashed #444;
|
||||
color: ${cssManager.bdTheme('#666', '#ccc')};
|
||||
padding: 8px;
|
||||
font-family: 'Mona Sans', 'Inter', sans-serif;
|
||||
font-family: 'Roboto', 'Inter', sans-serif;
|
||||
}
|
||||
|
||||
.uploadButton:hover .uploadCandidate {
|
||||
|
@ -124,7 +124,7 @@ export class DeesInputText extends DeesElement {
|
||||
|
||||
.showPassword:hover {
|
||||
cursor: pointer;
|
||||
background: #333;
|
||||
background: ${cssManager.bdTheme('#00000010', '#ffffff10')};
|
||||
}
|
||||
</style>
|
||||
<div class="maincontainer">
|
||||
|
@ -16,11 +16,12 @@ export class DeesMobilenavigation extends DeesElement {
|
||||
// STATIC
|
||||
public static demo = () => html`
|
||||
<dees-button @click=${() => {
|
||||
DeesMobilenavigation.createAndInit([
|
||||
DeesMobilenavigation.createAndShow([
|
||||
{
|
||||
name: 'Test',
|
||||
action: () => {
|
||||
action: async (deesMobileNav) => {
|
||||
alert('test');
|
||||
return null;
|
||||
},
|
||||
},
|
||||
]);
|
||||
@ -28,7 +29,7 @@ export class DeesMobilenavigation extends DeesElement {
|
||||
`;
|
||||
|
||||
private static singletonRef: DeesMobilenavigation;
|
||||
public static async createAndInit(menuItemsArg: plugins.tsclass.website.IMenuItem[]) {
|
||||
public static async createAndShow(menuItemsArg: plugins.tsclass.website.IMenuItem<DeesMobilenavigation>[]) {
|
||||
if (!this.singletonRef) {
|
||||
this.singletonRef = new DeesMobilenavigation();
|
||||
document.body.append(this.singletonRef);
|
||||
@ -115,7 +116,7 @@ export class DeesMobilenavigation extends DeesElement {
|
||||
text-align: left;
|
||||
font-size: 24px;
|
||||
padding: 8px 0px;
|
||||
font-family: 'Mona Sans', 'Inter', sans-serif;
|
||||
font-family: 'Roboto', 'Inter', sans-serif;
|
||||
font-weight: 300;
|
||||
border-bottom: 1px dashed #444;
|
||||
margin-top: 16px;
|
||||
@ -134,7 +135,7 @@ export class DeesMobilenavigation extends DeesElement {
|
||||
class="menuItem"
|
||||
@click="${() => {
|
||||
this.hide();
|
||||
menuItem.action();
|
||||
menuItem.action(this);
|
||||
}}"
|
||||
>
|
||||
${menuItem.name}
|
||||
|
37
ts_web/elements/dees-modal.demo.ts
Normal file
37
ts_web/elements/dees-modal.demo.ts
Normal file
@ -0,0 +1,37 @@
|
||||
import { html } from '@design.estate/dees-element';
|
||||
import { DeesModal } from './dees-modal.js';
|
||||
|
||||
export const demoFunc = () => html`
|
||||
<dees-button @click=${() => {
|
||||
DeesModal.createAndShow({
|
||||
heading: 'This is a heading',
|
||||
content: html`
|
||||
<dees-form>
|
||||
<dees-input-text
|
||||
.label=${'Username'}
|
||||
>
|
||||
</dees-input-text>
|
||||
<dees-input-text
|
||||
.label=${'Password'}
|
||||
>
|
||||
</dees-input-text>
|
||||
</dees-form>
|
||||
`,
|
||||
menuOptions: [{
|
||||
name: 'Cancel',
|
||||
iconName: null,
|
||||
action: async (deesModalArg) => {
|
||||
deesModalArg.destroy();
|
||||
return null;
|
||||
}
|
||||
}, {
|
||||
name: 'Ok',
|
||||
iconName: null,
|
||||
action: async (deesModalArg) => {
|
||||
deesModalArg.destroy();
|
||||
return null;
|
||||
}
|
||||
}],
|
||||
});
|
||||
}}>open modal</dees-button>
|
||||
`
|
196
ts_web/elements/dees-modal.ts
Normal file
196
ts_web/elements/dees-modal.ts
Normal file
@ -0,0 +1,196 @@
|
||||
import * as plugins from './plugins.js';
|
||||
import { demoFunc } from './dees-modal.demo.js';
|
||||
import {
|
||||
customElement,
|
||||
html,
|
||||
DeesElement,
|
||||
property,
|
||||
type TemplateResult,
|
||||
cssManager,
|
||||
css,
|
||||
type CSSResult,
|
||||
unsafeCSS,
|
||||
unsafeHTML,
|
||||
state,
|
||||
} from '@design.estate/dees-element';
|
||||
|
||||
import * as domtools from '@design.estate/dees-domtools';
|
||||
import { DeesWindowLayer } from './dees-windowlayer.js';
|
||||
|
||||
declare global {
|
||||
interface HTMLElementTagNameMap {
|
||||
'dees-modal': DeesModal;
|
||||
}
|
||||
}
|
||||
|
||||
@customElement('dees-modal')
|
||||
export class DeesModal extends DeesElement {
|
||||
// STATIC
|
||||
public static demo = demoFunc;
|
||||
|
||||
public static async createAndShow(optionsArg: {
|
||||
heading: string;
|
||||
content: TemplateResult;
|
||||
menuOptions: plugins.tsclass.website.IMenuItem<DeesModal>[];
|
||||
}) {
|
||||
const body = document.body;
|
||||
const modal = new DeesModal();
|
||||
modal.heading = optionsArg.heading;
|
||||
modal.content = optionsArg.content;
|
||||
modal.menuOptions = optionsArg.menuOptions;
|
||||
modal.windowLayer = await DeesWindowLayer.createAndShow({
|
||||
blur: true,
|
||||
});
|
||||
modal.windowLayer.addEventListener('click', async () => {
|
||||
await modal.destroy();
|
||||
});
|
||||
body.append(modal.windowLayer);
|
||||
body.append(modal);
|
||||
}
|
||||
|
||||
// INSTANCE
|
||||
|
||||
@property({
|
||||
type: String,
|
||||
})
|
||||
public heading = '';
|
||||
|
||||
@state({})
|
||||
public content: TemplateResult;
|
||||
|
||||
@state({})
|
||||
public menuOptions: plugins.tsclass.website.IMenuItem<DeesModal>[] = [];
|
||||
|
||||
constructor() {
|
||||
super();
|
||||
}
|
||||
|
||||
public static styles = [
|
||||
cssManager.defaultStyles,
|
||||
css`
|
||||
:host {
|
||||
font-family: 'Roboto', 'Inter', sans-serif;
|
||||
color: ${cssManager.bdTheme('#333', '#fff')};
|
||||
}
|
||||
.modalContainer {
|
||||
display: flex;
|
||||
position: fixed;
|
||||
top: 0px;
|
||||
left: 0px;
|
||||
width: 100vw;
|
||||
height: 100vh;
|
||||
box-sizing: border-box;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
z-index: 2000;
|
||||
}
|
||||
.modal {
|
||||
will-change: transform;
|
||||
transform: translateY(0px) scale(0.95);
|
||||
opacity: 0;
|
||||
width: 480px;
|
||||
min-height: 120px;
|
||||
background: #111;
|
||||
border-radius: 8px;
|
||||
border: 1px solid #222;
|
||||
transition: all 0.2s;
|
||||
overflow: hidden;
|
||||
box-shadow: 0px 2px 5px #00000080;
|
||||
}
|
||||
|
||||
.modal.show {
|
||||
opacity: 1;
|
||||
transform: translateY(0px) scale(1);
|
||||
}
|
||||
|
||||
.modal.show.predestroy {
|
||||
opacity: 0;
|
||||
transform: translateY(10px) scale(1);
|
||||
}
|
||||
|
||||
.modal .heading {
|
||||
height: 32px;
|
||||
font-family: 'Roboto', 'Inter', sans-serif;
|
||||
line-height: 32px;
|
||||
text-align: center;
|
||||
font-weight: 600;
|
||||
font-size: 12px;
|
||||
border-bottom: 1px solid #222;
|
||||
}
|
||||
|
||||
.modal .content {
|
||||
padding: 16px;
|
||||
}
|
||||
.modal .bottomButtons {
|
||||
display: grid;
|
||||
border-top: 1px solid #222;
|
||||
}
|
||||
|
||||
.modal .bottomButtons .bottomButton {
|
||||
height: 40px;
|
||||
line-height: 40px;
|
||||
text-align: center;
|
||||
font-size: 14px;
|
||||
border-right: 1px solid #222;
|
||||
cursor: pointer;
|
||||
}
|
||||
.modal .bottomButtons .bottomButton:hover {
|
||||
background: #222;
|
||||
}
|
||||
.modal .bottomButtons .bottomButton:last-child {
|
||||
border-right: none;
|
||||
}
|
||||
`,
|
||||
];
|
||||
|
||||
public render(): TemplateResult {
|
||||
return html`
|
||||
<style>
|
||||
.modal .bottomButtons {
|
||||
grid-template-columns: ${cssManager.cssGridColumns(this.menuOptions.length, 0)};
|
||||
}
|
||||
</style>
|
||||
<div class="modalContainer" @click=${this.handleOutsideClick}>
|
||||
<div class="modal">
|
||||
<div class="heading">${this.heading}</div>
|
||||
<div class="content">${this.content}</div>
|
||||
<div class="bottomButtons">
|
||||
${this.menuOptions.map(
|
||||
(actionArg) => html`
|
||||
<div class="bottomButton" @click=${() => {
|
||||
actionArg.action(this);
|
||||
}}>${actionArg.name}</div>
|
||||
`
|
||||
)}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
`;
|
||||
}
|
||||
|
||||
private windowLayer: DeesWindowLayer;
|
||||
public async firstUpdated(_changedProperties: Map<string | number | symbol, unknown>) {
|
||||
super.firstUpdated(_changedProperties);
|
||||
const domtools = await this.domtoolsPromise;
|
||||
await domtools.convenience.smartdelay.delayFor(30);
|
||||
const modal = this.shadowRoot.querySelector('.modal');
|
||||
modal.classList.add('show');
|
||||
}
|
||||
|
||||
public async handleOutsideClick(eventArg: MouseEvent) {
|
||||
eventArg.stopPropagation();
|
||||
const modalContainer = this.shadowRoot.querySelector('.modalContainer');
|
||||
if (eventArg.target === modalContainer) {
|
||||
await this.destroy();
|
||||
}
|
||||
}
|
||||
|
||||
public async destroy() {
|
||||
const domtools = await this.domtoolsPromise;
|
||||
const modal = this.shadowRoot.querySelector('.modal');
|
||||
modal.classList.add('predestroy');
|
||||
await domtools.convenience.smartdelay.delayFor(200);
|
||||
document.body.removeChild(this);
|
||||
await this.windowLayer.destroy();
|
||||
}
|
||||
}
|
@ -32,7 +32,7 @@ export class DeesPdf extends DeesElement {
|
||||
return html`
|
||||
<style>
|
||||
:host {
|
||||
font-family: 'Mona Sans', 'Inter', sans-serif;
|
||||
font-family: 'Roboto', 'Inter', sans-serif;
|
||||
display: block;
|
||||
box-sizing: border-box;
|
||||
max-width: 800px;
|
||||
|
@ -25,7 +25,7 @@ export class DeesSimpleAppDash extends DeesElement {
|
||||
// INSTANCE
|
||||
|
||||
@property()
|
||||
public title = 'Dees Simple Login';
|
||||
public name = 'Dees Simple Login';
|
||||
|
||||
public static styles = [
|
||||
cssManager.defaultStyles,
|
||||
@ -43,7 +43,7 @@ export class DeesSimpleAppDash extends DeesElement {
|
||||
border-bottom: 1px solid ${cssManager.bdTheme('#ccc', '#333')};
|
||||
font-size: 14px;
|
||||
line-height: 40px;
|
||||
font-family: 'Hubot Sans', 'Inter', sans-serif;
|
||||
font-family: 'Roboto', 'Inter', sans-serif;
|
||||
padding: 0px 16px;
|
||||
}
|
||||
.appcontent {
|
||||
|
@ -1,3 +1,3 @@
|
||||
import { html } from '@design.estate/dees-element';
|
||||
|
||||
export const demoFunc = () => html` <dees-simple-login> Hello there </dees-simple-login> `;
|
||||
export const demoFunc = () => html` <dees-simple-login name="someapp"> Hello there </dees-simple-login> `;
|
||||
|
@ -26,7 +26,7 @@ export class DeesSimpleLogin extends DeesElement {
|
||||
// INSTANCE
|
||||
|
||||
@property()
|
||||
public title = 'Dees Simple Login';
|
||||
public name = 'Dees Simple Login';
|
||||
|
||||
public static styles = [
|
||||
cssManager.defaultStyles,
|
||||
@ -69,7 +69,7 @@ export class DeesSimpleLogin extends DeesElement {
|
||||
<div class="loginContainer">
|
||||
<div class="login">
|
||||
<dees-form>
|
||||
<div class="header">Login to ${this.title}</div>
|
||||
<div class="header">Login to ${this.name}</div>
|
||||
<dees-input-text key="username" label="username" required></dees-input-text>
|
||||
<dees-input-text key="password" label="password" isPasswordBool required></dees-input-text>
|
||||
<dees-form-submit disabled>login</dees-form-submit>
|
||||
|
@ -154,7 +154,7 @@ export class DeesStepper extends DeesElement {
|
||||
.step .title {
|
||||
text-align: center;
|
||||
padding-top: 50px;
|
||||
font-family: 'Mona Sans', 'Inter', sans-serif;
|
||||
font-family: 'Roboto', 'Inter', sans-serif;
|
||||
font-size: 25px;
|
||||
font-weight: 300;
|
||||
}
|
||||
|
@ -2,6 +2,12 @@ import { type ITableAction } from './dees-table.js';
|
||||
import * as plugins from './plugins.js';
|
||||
import { html } from '@design.estate/dees-element';
|
||||
|
||||
interface ITableDemoData {
|
||||
date: string;
|
||||
amount: string;
|
||||
description: string;
|
||||
}
|
||||
|
||||
export const demoFunc = () => html`
|
||||
<style>
|
||||
.demoWrapper {
|
||||
@ -17,6 +23,7 @@ export const demoFunc = () => html`
|
||||
<dees-table
|
||||
heading1="Current Account Statement"
|
||||
heading2="Bunq - Payment Account 2 - April 2021"
|
||||
.editableFields="${['description']}"
|
||||
.data=${[
|
||||
{
|
||||
date: '2021-04-01',
|
||||
@ -51,8 +58,8 @@ export const demoFunc = () => html`
|
||||
iconName: 'bell',
|
||||
useTableBehaviour: 'upload',
|
||||
type: ['inRow'],
|
||||
actionFunc: async (itemArg: any) => {
|
||||
alert(itemArg.amount);
|
||||
actionFunc: async (optionsArg) => {
|
||||
alert(optionsArg.item.amount);
|
||||
},
|
||||
},
|
||||
{
|
||||
@ -100,7 +107,16 @@ export const demoFunc = () => html`
|
||||
return null;
|
||||
},
|
||||
},
|
||||
] as ITableAction[]}"
|
||||
{
|
||||
name: 'preview',
|
||||
type: ['doubleClick', 'contextmenu'],
|
||||
iconName: 'eye',
|
||||
actionFunc: async (itemArg) => {
|
||||
alert(itemArg.item.amount);
|
||||
return null;
|
||||
},
|
||||
}
|
||||
] as (ITableAction<ITableDemoData>)[] as any}"
|
||||
.displayFunction=${(itemArg) => {
|
||||
return {
|
||||
...itemArg,
|
||||
|
@ -37,7 +37,15 @@ export interface ITableAction<T = any> {
|
||||
/**
|
||||
* the type of the action
|
||||
*/
|
||||
type: ('inRow' | 'contextmenu' | 'footer' | 'header' | 'preview' | 'keyCombination')[];
|
||||
type: (
|
||||
| 'inRow'
|
||||
| 'contextmenu'
|
||||
| 'doubleClick'
|
||||
| 'footer'
|
||||
| 'header'
|
||||
| 'preview'
|
||||
| 'keyCombination'
|
||||
)[];
|
||||
/**
|
||||
* allows to check if the action is relevant for the given item
|
||||
* @param itemArg
|
||||
@ -49,7 +57,12 @@ export interface ITableAction<T = any> {
|
||||
* @param itemArg
|
||||
* @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;
|
||||
@ -84,21 +97,33 @@ export class DeesTable<T> extends DeesElement {
|
||||
@property({
|
||||
type: Array,
|
||||
})
|
||||
public dataActions: ITableAction[] = [];
|
||||
public dataActions: ITableAction<T>[] = [];
|
||||
|
||||
@property({
|
||||
attribute: false,
|
||||
})
|
||||
public displayFunction: TDisplayFunction = (itemArg: T) => itemArg as any;
|
||||
|
||||
@property({
|
||||
attribute: false,
|
||||
})
|
||||
public reverseDisplayFunction: (itemArg: any) => T = (itemArg: any) => itemArg as T;
|
||||
|
||||
@property({
|
||||
type: Object,
|
||||
})
|
||||
public selectedDataRow: T;
|
||||
|
||||
@property({
|
||||
type: Array,
|
||||
})
|
||||
public editableFields: string[] = [];
|
||||
|
||||
public files: File[] = [];
|
||||
public fileWeakMap = new WeakMap();
|
||||
|
||||
public dataChangeSubject = new domtools.plugins.smartrx.rxjs.Subject();
|
||||
|
||||
constructor() {
|
||||
super();
|
||||
}
|
||||
@ -108,7 +133,7 @@ export class DeesTable<T> extends DeesElement {
|
||||
css`
|
||||
.mainbox {
|
||||
color: ${cssManager.bdTheme('#333', '#fff')};
|
||||
font-family: 'Mona Sans', 'Inter', sans-serif;
|
||||
font-family: 'Roboto', 'Inter', sans-serif;
|
||||
font-weight: 400;
|
||||
font-size: 14px;
|
||||
padding: 16px;
|
||||
@ -126,13 +151,13 @@ export class DeesTable<T> extends DeesElement {
|
||||
display: flex;
|
||||
justify-content: flex-end;
|
||||
align-items: center;
|
||||
font-family: 'Roboto', 'Inter', sans-serif;
|
||||
}
|
||||
|
||||
.headingContainer {
|
||||
}
|
||||
|
||||
.heading {
|
||||
font-family: 'Hubot Sans', 'Inter', sans-serif;
|
||||
}
|
||||
|
||||
.heading1 {
|
||||
@ -185,8 +210,8 @@ export class DeesTable<T> extends DeesElement {
|
||||
tr:hover {
|
||||
cursor: pointer;
|
||||
}
|
||||
tr:hover .innerCellContainer {
|
||||
background: ${cssManager.bdTheme('#22222210', '#ffffff20')};
|
||||
tr:hover td {
|
||||
background: ${cssManager.bdTheme('#22222210', '#ffffff10')};
|
||||
}
|
||||
tr:first-child:hover {
|
||||
cursor: auto;
|
||||
@ -194,19 +219,32 @@ export class DeesTable<T> extends DeesElement {
|
||||
tr:first-child:hover .innerCellContainer {
|
||||
background: none;
|
||||
}
|
||||
tr.selected .innerCellContainer {
|
||||
background: ${cssManager.bdTheme('#22222220', '#ffffff40')};
|
||||
tr.selected td {
|
||||
background: ${cssManager.bdTheme('#22222220', '#ffffff20')};
|
||||
}
|
||||
|
||||
tr.hasAttachment td {
|
||||
background: ${cssManager.bdTheme('#0098847c', '#0098847c')};
|
||||
}
|
||||
|
||||
th {
|
||||
text-transform: uppercase;
|
||||
text-transform: none;
|
||||
font-family: 'Roboto', 'Inter', sans-serif;
|
||||
font-weight: 500;
|
||||
}
|
||||
th,
|
||||
td {
|
||||
padding: 3px 0px;
|
||||
position: relative;
|
||||
padding: 0px;
|
||||
border-right: 1px dashed ${cssManager.bdTheme('#999', '#808080')};
|
||||
}
|
||||
.innerCellContainer {
|
||||
min-height: 36px;
|
||||
position: relative;
|
||||
height: 100%;
|
||||
width: 100%;
|
||||
padding: 6px 8px;
|
||||
line-height: 24px;
|
||||
}
|
||||
th:first-child .innerCellContainer,
|
||||
td:first-child .innerCellContainer {
|
||||
@ -220,11 +258,29 @@ export class DeesTable<T> extends DeesElement {
|
||||
td:last-child {
|
||||
border-right: none;
|
||||
}
|
||||
td input {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
outline: none;
|
||||
border: 2px solid #fa6101;
|
||||
top: 0px;
|
||||
bottom: 0px;
|
||||
right: 0px;
|
||||
left: 0px;
|
||||
position: absolute;
|
||||
background: #fa610140;
|
||||
color: ${cssManager.bdTheme('#333', '#fff')};
|
||||
font-family: inherit;
|
||||
font-size: inherit;
|
||||
font-weight: inherit;
|
||||
padding: 0px 6px;
|
||||
}
|
||||
|
||||
.action {
|
||||
margin: -8px 0px;
|
||||
padding: 8px;
|
||||
line-height: 16px;
|
||||
margin: -6px 0px;
|
||||
padding: 10px;
|
||||
line-height: 36px;
|
||||
height: 36px;
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
@ -234,10 +290,11 @@ export class DeesTable<T> extends DeesElement {
|
||||
}
|
||||
|
||||
.action:hover {
|
||||
background: ${cssManager.bdTheme('#CCC', '#111')};
|
||||
background: ${cssManager.bdTheme('#CCC', '#00000030')};
|
||||
}
|
||||
|
||||
.footer {
|
||||
font-family: 'Roboto', 'Inter', sans-serif;
|
||||
font-size: 14px;
|
||||
color: ${cssManager.bdTheme('#111', '#ffffff90')};
|
||||
background: ${cssManager.bdTheme('#eeeeeb', '#00000050')};
|
||||
@ -290,7 +347,10 @@ export class DeesTable<T> extends DeesElement {
|
||||
html`<div
|
||||
class="headerAction"
|
||||
@click=${() => {
|
||||
action.actionFunc(this.selectedDataRow);
|
||||
action.actionFunc({
|
||||
item: this.selectedDataRow,
|
||||
table: this,
|
||||
});
|
||||
}}
|
||||
>
|
||||
${action.iconName
|
||||
@ -355,14 +415,14 @@ export class DeesTable<T> extends DeesElement {
|
||||
console.log('dragenter');
|
||||
console.log(realTarget);
|
||||
setTimeout(() => {
|
||||
realTarget.style.background = 'green';
|
||||
realTarget.classList.add('hasAttachment');
|
||||
}, 0);
|
||||
}}
|
||||
@dragleave=${async (eventArg: DragEvent) => {
|
||||
eventArg.preventDefault();
|
||||
eventArg.stopPropagation();
|
||||
const realTarget = getTr(eventArg.target as HTMLElement);
|
||||
realTarget.style.background = 'none';
|
||||
realTarget.classList.remove('hasAttachment');
|
||||
}}
|
||||
@dragover=${async (eventArg: DragEvent) => {
|
||||
eventArg.preventDefault();
|
||||
@ -383,23 +443,45 @@ export class DeesTable<T> extends DeesElement {
|
||||
}
|
||||
}}
|
||||
@contextmenu=${async (eventArg: MouseEvent) => {
|
||||
DeesContextmenu.openContextMenuWithOptions(eventArg, this.getActionsForType('contextmenu').map(action => {
|
||||
const menuItem: plugins.tsclass.website.IMenuItem = {
|
||||
name: action.name,
|
||||
iconName: action.iconName as any,
|
||||
action: async () => {
|
||||
await action.actionFunc(itemArg);
|
||||
return null;
|
||||
}
|
||||
}
|
||||
return menuItem;
|
||||
}));
|
||||
DeesContextmenu.openContextMenuWithOptions(
|
||||
eventArg,
|
||||
this.getActionsForType('contextmenu').map((action) => {
|
||||
const menuItem: plugins.tsclass.website.IMenuItem = {
|
||||
name: action.name,
|
||||
iconName: action.iconName as any,
|
||||
action: async () => {
|
||||
await action.actionFunc({
|
||||
item: itemArg,
|
||||
table: this,
|
||||
});
|
||||
return null;
|
||||
},
|
||||
};
|
||||
return menuItem;
|
||||
})
|
||||
);
|
||||
}}
|
||||
class="${itemArg === this.selectedDataRow ? 'selected' : ''}"
|
||||
>
|
||||
${headings.map(
|
||||
(headingArg) => html`
|
||||
<td>
|
||||
<td
|
||||
@dblclick=${(e: Event) => {
|
||||
if (this.editableFields.includes(headingArg)) {
|
||||
this.handleCellEditing(e, itemArg, headingArg);
|
||||
} else {
|
||||
const wantedAction = this.dataActions.find((actionArg) =>
|
||||
actionArg.type.includes('doubleClick')
|
||||
);
|
||||
if (wantedAction) {
|
||||
wantedAction.actionFunc({
|
||||
item: itemArg,
|
||||
table: this,
|
||||
});
|
||||
}
|
||||
}
|
||||
}}
|
||||
>
|
||||
<div class="innerCellContainer">${transformedItem[headingArg]}</div>
|
||||
</td>
|
||||
`
|
||||
@ -412,7 +494,10 @@ export class DeesTable<T> extends DeesElement {
|
||||
${this.getActionsForType('inRow').map(
|
||||
(actionArg) => html`<div
|
||||
class="action"
|
||||
@click=${() => actionArg.actionFunc(itemArg)}
|
||||
@click=${() => actionArg.actionFunc({
|
||||
item: itemArg,
|
||||
table: this,
|
||||
})}
|
||||
>
|
||||
${actionArg.iconName
|
||||
? html`
|
||||
@ -448,7 +533,10 @@ export class DeesTable<T> extends DeesElement {
|
||||
html`<div
|
||||
class="footerAction"
|
||||
@click=${() => {
|
||||
action.actionFunc(this.selectedDataRow);
|
||||
action.actionFunc({
|
||||
item: this.selectedDataRow,
|
||||
table: this,
|
||||
});
|
||||
}}
|
||||
>
|
||||
${action.iconName
|
||||
@ -468,6 +556,44 @@ export class DeesTable<T> extends DeesElement {
|
||||
|
||||
public async firstUpdated() {}
|
||||
|
||||
public async updated(changedProperties: Map<string | number | symbol, unknown>): Promise<void> {
|
||||
super.updated(changedProperties);
|
||||
this.freezeColumnWidths();
|
||||
}
|
||||
|
||||
freezeColumnWidths() {
|
||||
// Get the table element
|
||||
const table = this.shadowRoot.querySelector('table');
|
||||
if (!table) return;
|
||||
|
||||
// Create a colgroup if it doesn't exist
|
||||
let colgroup = table.querySelector('colgroup');
|
||||
if (!colgroup) {
|
||||
colgroup = document.createElement('colgroup');
|
||||
table.insertBefore(colgroup, table.firstChild);
|
||||
}
|
||||
|
||||
// Get the first row's cells to measure the widths
|
||||
const cells = table.rows[0].cells;
|
||||
|
||||
for (let i = 0; i < cells.length; i++) {
|
||||
const cell = cells[i];
|
||||
|
||||
// Get computed width
|
||||
const width = window.getComputedStyle(cell).width;
|
||||
|
||||
// Check if there's already a <col> for this cell
|
||||
let col = colgroup.children[i] as HTMLElement;
|
||||
if (!col) {
|
||||
col = document.createElement('col');
|
||||
colgroup.appendChild(col);
|
||||
}
|
||||
|
||||
// Set the width
|
||||
col.style.width = width;
|
||||
}
|
||||
}
|
||||
|
||||
getActionsForType(typeArg: ITableAction['type'][0]) {
|
||||
const actions: ITableAction[] = [];
|
||||
for (const action of this.dataActions) {
|
||||
@ -476,4 +602,43 @@ export class DeesTable<T> extends DeesElement {
|
||||
}
|
||||
return actions;
|
||||
}
|
||||
|
||||
async handleCellEditing(event: Event, itemArg: T, key: string) {
|
||||
const domtools = await this.domtoolsPromise;
|
||||
const target = event.target as HTMLElement;
|
||||
const originalColor = target.style.color;
|
||||
target.style.color = 'transparent';
|
||||
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 = async (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)
|
||||
}
|
||||
input.remove();
|
||||
target.style.color = originalColor;
|
||||
this.requestUpdate();
|
||||
};
|
||||
|
||||
// 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.appendChild(input);
|
||||
input.focus();
|
||||
}
|
||||
}
|
||||
|
@ -1,4 +1,4 @@
|
||||
import { customElement, DeesElement, type TemplateResult, html, property, type CSSResult, } from '@design.estate/dees-element';
|
||||
import { customElement, DeesElement, type TemplateResult, html, property, type CSSResult, state, } from '@design.estate/dees-element';
|
||||
|
||||
import * as domtools from '@design.estate/dees-domtools';
|
||||
|
||||
@ -8,20 +8,33 @@ declare global {
|
||||
}
|
||||
}
|
||||
|
||||
export interface IOptions_DeesWindowLayer {
|
||||
blur: boolean;
|
||||
}
|
||||
|
||||
@customElement('dees-windowlayer')
|
||||
export class DeesWindowLayer extends DeesElement {
|
||||
// STATIC
|
||||
public static demo = () => html`<dees-windowlayer></dees-windowlayer>`;
|
||||
|
||||
public static async createAndShow() {
|
||||
public static async createAndShow(optionsArg?: IOptions_DeesWindowLayer) {
|
||||
const domtoolsInstance = domtools.DomTools.getGlobalDomToolsSync();
|
||||
const windowLayer = new DeesWindowLayer();
|
||||
windowLayer.options = {
|
||||
...windowLayer.options,
|
||||
...optionsArg,
|
||||
}
|
||||
document.body.append(windowLayer);
|
||||
await domtoolsInstance.convenience.smartdelay.delayFor(0);
|
||||
windowLayer.show();
|
||||
return windowLayer;
|
||||
}
|
||||
|
||||
@state()
|
||||
public options: IOptions_DeesWindowLayer = {
|
||||
blur: false
|
||||
};
|
||||
|
||||
// INSTANCE
|
||||
@property({
|
||||
type: Boolean
|
||||
@ -49,14 +62,14 @@ export class DeesWindowLayer extends DeesElement {
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
background: rgba(0, 0, 0, 0.0);
|
||||
backdrop-filter: brightness(1);
|
||||
backdrop-filter: brightness(1) ${this.options.blur ? 'blur(0px)' : ''};
|
||||
pointer-events: none;
|
||||
z-index: 200;
|
||||
}
|
||||
|
||||
.visible {
|
||||
background: rgba(0, 0, 0, 0.2);
|
||||
backdrop-filter: brightness(0.3);
|
||||
backdrop-filter: brightness(0.9) ${this.options.blur ? 'blur(2px)' : ''};
|
||||
pointer-events: all;
|
||||
}
|
||||
</style>
|
||||
|
@ -14,6 +14,7 @@ export * from './dees-input-quantityselector.js';
|
||||
export * from './dees-input-radio.js';
|
||||
export * from './dees-input-text.js';
|
||||
export * from './dees-mobilenavigation.js';
|
||||
export * from './dees-modal.js';
|
||||
export * from './dees-pdf.js';
|
||||
export * from './dees-simple-appdash.js';
|
||||
export * from './dees-simple-login.js';
|
||||
|
Reference in New Issue
Block a user