From 5564aea9c25f8e81ff85afa8352325b9992e4043 Mon Sep 17 00:00:00 2001 From: Mihajlo Medjedovic Date: Wed, 8 May 2024 16:51:01 +0200 Subject: [PATCH 01/19] feat(dark mode): refactoring clarity to enable dark mode, added toggle button --- .gitignore | 1 + client/package-lock.json | 143 +++++------------- client/package.json | 2 + client/src/app/app.component.scss | 131 +++++++--------- client/src/app/app.component.ts | 4 + client/src/app/editor/editor.component.html | 4 +- client/src/app/editor/editor.component.scss | 3 +- client/src/app/editor/editor.component.ts | 4 + client/src/app/group/group.component.html | 1 + client/src/app/group/group.component.ts | 9 ++ client/src/app/home/home.component.html | 2 + client/src/app/home/home.component.ts | 9 ++ client/src/app/lineage/lineage.component.html | 3 + client/src/app/lineage/lineage.component.ts | 9 ++ .../src/app/metadata/metadata.component.html | 1 + client/src/app/metadata/metadata.component.ts | 9 ++ client/src/app/role/role.component.html | 1 + client/src/app/role/role.component.ts | 9 ++ client/src/app/services/event.service.ts | 13 ++ .../app/shared/dc-tree/dc-tree.component.html | 3 + .../app/shared/dc-tree/dc-tree.component.ts | 9 ++ .../app/shared/sidebar/sidebar.component.scss | 1 - .../header-actions.component.html | 5 + .../header-actions.component.scss | 3 - .../header-actions.component.ts | 5 + client/src/app/user/user.component.html | 1 + client/src/app/user/user.component.ts | 9 ++ client/src/app/viewer/viewer.component.html | 2 + client/src/app/viewer/viewer.component.ts | 9 ++ .../viya-api-explorer.component.html | 1 + .../viya-api-explorer.component.ts | 9 ++ client/src/app/xlmap/xlmap.component.html | 1 + client/src/app/xlmap/xlmap.component.ts | 9 ++ client/src/styles.scss | 64 +++++++- 34 files changed, 299 insertions(+), 190 deletions(-) diff --git a/.gitignore b/.gitignore index 459723a..829aaf0 100644 --- a/.gitignore +++ b/.gitignore @@ -13,6 +13,7 @@ client/cypress/videos client/documentation client/sheet-crypto* client/.nx +client/libraries/sheet-crypto.tgz cypress.env.json sasjsbuild sasjsresults diff --git a/client/package-lock.json b/client/package-lock.json index a410c50..0538e3c 100644 --- a/client/package-lock.json +++ b/client/package-lock.json @@ -23,6 +23,7 @@ "@handsontable/angular": "^13.1.0", "@sasjs/adapter": "4.10.2", "@sasjs/utils": "^3.4.0", + "@sheet/crypto": "file:libraries/sheet-crypto.tgz", "@types/d3-graphviz": "^2.6.7", "@types/text-encoding": "0.0.35", "base64-arraybuffer": "^0.2.0", @@ -50,6 +51,7 @@ "text-encoding": "^0.7.0", "tslib": "^2.3.0", "vm": "^0.1.0", + "webpack": "^5.91.0", "zone.js": "~0.14.4" }, "devDependencies": { @@ -4604,7 +4606,6 @@ "version": "0.3.5", "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==", - "dev": true, "dependencies": { "@jridgewell/set-array": "^1.2.1", "@jridgewell/sourcemap-codec": "^1.4.10", @@ -4618,7 +4619,6 @@ "version": "3.1.2", "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", - "dev": true, "engines": { "node": ">=6.0.0" } @@ -4627,7 +4627,6 @@ "version": "1.2.1", "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", - "dev": true, "engines": { "node": ">=6.0.0" } @@ -4636,7 +4635,6 @@ "version": "0.3.6", "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.6.tgz", "integrity": "sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==", - "dev": true, "dependencies": { "@jridgewell/gen-mapping": "^0.3.5", "@jridgewell/trace-mapping": "^0.3.25" @@ -4645,14 +4643,12 @@ "node_modules/@jridgewell/sourcemap-codec": { "version": "1.4.15", "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", - "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==", - "dev": true + "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==" }, "node_modules/@jridgewell/trace-mapping": { "version": "0.3.25", "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", - "dev": true, "dependencies": { "@jridgewell/resolve-uri": "^3.1.0", "@jridgewell/sourcemap-codec": "^1.4.14" @@ -5656,6 +5652,17 @@ "yarn": ">= 1.13.0" } }, + "node_modules/@sheet/crypto": { + "version": "1.20211122.1", + "resolved": "file:libraries/sheet-crypto.tgz", + "integrity": "sha512-G3/HWyzFUYbbVQoQIa+KSeMOhFnK492Ep595FXbzWN9IGZSwuvFl4saEyMl8R8pE2Al5YgSZuR9MpDpx3f7Izg==", + "bin": { + "xlsx": "bin/xlsx.njs" + }, + "engines": { + "node": ">=0.8" + } + }, "node_modules/@sideway/address": { "version": "4.1.5", "resolved": "https://registry.npmjs.org/@sideway/address/-/address-4.1.5.tgz", @@ -5998,7 +6005,6 @@ "version": "8.56.10", "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.56.10.tgz", "integrity": "sha512-Shavhk87gCtY2fhXDctcfS3e6FdxWkCx1iUZ9eEUbh7rTqlZT0/IzOkCOVt0fCjcFuZ9FPYfuezTBImfHCDBGQ==", - "dev": true, "dependencies": { "@types/estree": "*", "@types/json-schema": "*" @@ -6008,7 +6014,6 @@ "version": "3.7.7", "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.7.tgz", "integrity": "sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==", - "dev": true, "dependencies": { "@types/eslint": "*", "@types/estree": "*" @@ -6017,8 +6022,7 @@ "node_modules/@types/estree": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz", - "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==", - "dev": true + "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==" }, "node_modules/@types/express": { "version": "4.17.21", @@ -6076,8 +6080,7 @@ "node_modules/@types/json-schema": { "version": "7.0.15", "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", - "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", - "dev": true + "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==" }, "node_modules/@types/lodash": { "version": "4.17.0", @@ -6699,7 +6702,6 @@ "version": "1.12.1", "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.12.1.tgz", "integrity": "sha512-EKfMUOPRRUTy5UII4qJDGPpqfwjOmZ5jeGFwid9mnoqIFK+e0vqoi1qH56JpmZSzEL53jKnNzScdmftJyG5xWg==", - "dev": true, "dependencies": { "@webassemblyjs/helper-numbers": "1.11.6", "@webassemblyjs/helper-wasm-bytecode": "1.11.6" @@ -6708,26 +6710,22 @@ "node_modules/@webassemblyjs/floating-point-hex-parser": { "version": "1.11.6", "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.6.tgz", - "integrity": "sha512-ejAj9hfRJ2XMsNHk/v6Fu2dGS+i4UaXBXGemOfQ/JfQ6mdQg/WXtwleQRLLS4OvfDhv8rYnVwH27YJLMyYsxhw==", - "dev": true + "integrity": "sha512-ejAj9hfRJ2XMsNHk/v6Fu2dGS+i4UaXBXGemOfQ/JfQ6mdQg/WXtwleQRLLS4OvfDhv8rYnVwH27YJLMyYsxhw==" }, "node_modules/@webassemblyjs/helper-api-error": { "version": "1.11.6", "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.6.tgz", - "integrity": "sha512-o0YkoP4pVu4rN8aTJgAyj9hC2Sv5UlkzCHhxqWj8butaLvnpdc2jOwh4ewE6CX0txSfLn/UYaV/pheS2Txg//Q==", - "dev": true + "integrity": "sha512-o0YkoP4pVu4rN8aTJgAyj9hC2Sv5UlkzCHhxqWj8butaLvnpdc2jOwh4ewE6CX0txSfLn/UYaV/pheS2Txg//Q==" }, "node_modules/@webassemblyjs/helper-buffer": { "version": "1.12.1", "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.12.1.tgz", - "integrity": "sha512-nzJwQw99DNDKr9BVCOZcLuJJUlqkJh+kVzVl6Fmq/tI5ZtEyWT1KZMyOXltXLZJmDtvLCDgwsyrkohEtopTXCw==", - "dev": true + "integrity": "sha512-nzJwQw99DNDKr9BVCOZcLuJJUlqkJh+kVzVl6Fmq/tI5ZtEyWT1KZMyOXltXLZJmDtvLCDgwsyrkohEtopTXCw==" }, "node_modules/@webassemblyjs/helper-numbers": { "version": "1.11.6", "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.6.tgz", "integrity": "sha512-vUIhZ8LZoIWHBohiEObxVm6hwP034jwmc9kuq5GdHZH0wiLVLIPcMCdpJzG4C11cHoQ25TFIQj9kaVADVX7N3g==", - "dev": true, "dependencies": { "@webassemblyjs/floating-point-hex-parser": "1.11.6", "@webassemblyjs/helper-api-error": "1.11.6", @@ -6737,14 +6735,12 @@ "node_modules/@webassemblyjs/helper-wasm-bytecode": { "version": "1.11.6", "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.6.tgz", - "integrity": "sha512-sFFHKwcmBprO9e7Icf0+gddyWYDViL8bpPjJJl0WHxCdETktXdmtWLGVzoHbqUcY4Be1LkNfwTmXOJUFZYSJdA==", - "dev": true + "integrity": "sha512-sFFHKwcmBprO9e7Icf0+gddyWYDViL8bpPjJJl0WHxCdETktXdmtWLGVzoHbqUcY4Be1LkNfwTmXOJUFZYSJdA==" }, "node_modules/@webassemblyjs/helper-wasm-section": { "version": "1.12.1", "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.12.1.tgz", "integrity": "sha512-Jif4vfB6FJlUlSbgEMHUyk1j234GTNG9dBJ4XJdOySoj518Xj0oGsNi59cUQF4RRMS9ouBUxDDdyBVfPTypa5g==", - "dev": true, "dependencies": { "@webassemblyjs/ast": "1.12.1", "@webassemblyjs/helper-buffer": "1.12.1", @@ -6756,7 +6752,6 @@ "version": "1.11.6", "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.6.tgz", "integrity": "sha512-LM4p2csPNvbij6U1f19v6WR56QZ8JcHg3QIJTlSwzFcmx6WSORicYj6I63f9yU1kEUtrpG+kjkiIAkevHpDXrg==", - "dev": true, "dependencies": { "@xtuc/ieee754": "^1.2.0" } @@ -6765,7 +6760,6 @@ "version": "1.11.6", "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.6.tgz", "integrity": "sha512-m7a0FhE67DQXgouf1tbN5XQcdWoNgaAuoULHIfGFIEVKA6tu/edls6XnIlkmS6FrXAquJRPni3ZZKjw6FSPjPQ==", - "dev": true, "dependencies": { "@xtuc/long": "4.2.2" } @@ -6773,14 +6767,12 @@ "node_modules/@webassemblyjs/utf8": { "version": "1.11.6", "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.6.tgz", - "integrity": "sha512-vtXf2wTQ3+up9Zsg8sa2yWiQpzSsMyXj0qViVP6xKGCUT8p8YJ6HqI7l5eCnWx1T/FYdsv07HQs2wTFbbof/RA==", - "dev": true + "integrity": "sha512-vtXf2wTQ3+up9Zsg8sa2yWiQpzSsMyXj0qViVP6xKGCUT8p8YJ6HqI7l5eCnWx1T/FYdsv07HQs2wTFbbof/RA==" }, "node_modules/@webassemblyjs/wasm-edit": { "version": "1.12.1", "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.12.1.tgz", "integrity": "sha512-1DuwbVvADvS5mGnXbE+c9NfA8QRcZ6iKquqjjmR10k6o+zzsRVesil54DKexiowcFCPdr/Q0qaMgB01+SQ1u6g==", - "dev": true, "dependencies": { "@webassemblyjs/ast": "1.12.1", "@webassemblyjs/helper-buffer": "1.12.1", @@ -6796,7 +6788,6 @@ "version": "1.12.1", "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.12.1.tgz", "integrity": "sha512-TDq4Ojh9fcohAw6OIMXqiIcTq5KUXTGRkVxbSo1hQnSy6lAM5GSdfwWeSxpAo0YzgsgF182E/U0mDNhuA0tW7w==", - "dev": true, "dependencies": { "@webassemblyjs/ast": "1.12.1", "@webassemblyjs/helper-wasm-bytecode": "1.11.6", @@ -6809,7 +6800,6 @@ "version": "1.12.1", "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.12.1.tgz", "integrity": "sha512-Jg99j/2gG2iaz3hijw857AVYekZe2SAskcqlWIZXjji5WStnOpVoat3gQfT/Q5tb2djnCjBtMocY/Su1GfxPBg==", - "dev": true, "dependencies": { "@webassemblyjs/ast": "1.12.1", "@webassemblyjs/helper-buffer": "1.12.1", @@ -6821,7 +6811,6 @@ "version": "1.12.1", "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.12.1.tgz", "integrity": "sha512-xikIi7c2FHXysxXe3COrVUPSheuBtpcfhbpFj4gmu7KRLYOzANztwUU0IbsqvMqzuNK2+glRGWCEqZo1WCLyAQ==", - "dev": true, "dependencies": { "@webassemblyjs/ast": "1.12.1", "@webassemblyjs/helper-api-error": "1.11.6", @@ -6835,7 +6824,6 @@ "version": "1.12.1", "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.12.1.tgz", "integrity": "sha512-+X4WAlOisVWQMikjbcvY2e0rwPsKQ9F688lksZhBcPycBBuii3O7m8FACbDMWDojpAqvjIncrG8J0XHKyQfVeA==", - "dev": true, "dependencies": { "@webassemblyjs/ast": "1.12.1", "@xtuc/long": "4.2.2" @@ -6850,14 +6838,12 @@ "node_modules/@xtuc/ieee754": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", - "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", - "dev": true + "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==" }, "node_modules/@xtuc/long": { "version": "4.2.2", "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", - "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", - "dev": true + "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==" }, "node_modules/@yarnpkg/lockfile": { "version": "1.1.0", @@ -6919,7 +6905,6 @@ "version": "8.11.3", "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.3.tgz", "integrity": "sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==", - "dev": true, "bin": { "acorn": "bin/acorn" }, @@ -6931,7 +6916,6 @@ "version": "1.9.0", "resolved": "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.9.0.tgz", "integrity": "sha512-cmMwop9x+8KFhxvKrKfPYmN6/pKTYYHBqLa0DfvVZcKMJWNyWLnaqND7dx/qn66R7ewM1UX5XMaDVP5wlVTaVA==", - "dev": true, "peerDependencies": { "acorn": "^8" } @@ -7914,7 +7898,6 @@ "version": "4.23.0", "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.23.0.tgz", "integrity": "sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==", - "dev": true, "funding": [ { "type": "opencollective", @@ -7977,8 +7960,7 @@ "node_modules/buffer-from": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", - "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", - "dev": true + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==" }, "node_modules/buffer-xor": { "version": "1.0.3", @@ -8099,7 +8081,6 @@ "version": "1.0.30001615", "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001615.tgz", "integrity": "sha512-1IpazM5G3r38meiae0bHRnPhz+CBQ3ZLqbQMtrg+AsTPKAXgW38JNsXkyZ+v8waCsDmPq87lmfun5Q2AGysNEQ==", - "dev": true, "funding": [ { "type": "opencollective", @@ -8233,7 +8214,6 @@ "version": "1.0.3", "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz", "integrity": "sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==", - "dev": true, "engines": { "node": ">=6.0" } @@ -10013,8 +9993,7 @@ "node_modules/electron-to-chromium": { "version": "1.4.754", "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.754.tgz", - "integrity": "sha512-7Kr5jUdns5rL/M9wFFmMZAgFDuL2YOnanFH4OI4iFzUqyh3XOL7nAGbSlSMZdzKMIyyTpNSbqZsWG9odwLeKvA==", - "dev": true + "integrity": "sha512-7Kr5jUdns5rL/M9wFFmMZAgFDuL2YOnanFH4OI4iFzUqyh3XOL7nAGbSlSMZdzKMIyyTpNSbqZsWG9odwLeKvA==" }, "node_modules/elliptic": { "version": "6.5.5", @@ -10133,7 +10112,6 @@ "version": "5.16.0", "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.16.0.tgz", "integrity": "sha512-O+QWCviPNSSLAD9Ucn8Awv+poAkqn3T1XY5/N7kR7rQO9yfSGWkYZDwpJ+iKF7B8rxaQKWngSqACpgzeapSyoA==", - "dev": true, "dependencies": { "graceful-fs": "^4.2.4", "tapable": "^2.2.0" @@ -10293,8 +10271,7 @@ "node_modules/es-module-lexer": { "version": "1.5.2", "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.5.2.tgz", - "integrity": "sha512-l60ETUTmLqbVbVHv1J4/qj+M8nq7AwMzEcg3kmJDt9dCNrTk+yHcYFf/Kw75pMDwd9mPcIGCG5LcS20SxYRzFA==", - "dev": true + "integrity": "sha512-l60ETUTmLqbVbVHv1J4/qj+M8nq7AwMzEcg3kmJDt9dCNrTk+yHcYFf/Kw75pMDwd9mPcIGCG5LcS20SxYRzFA==" }, "node_modules/es-object-atoms": { "version": "1.0.0", @@ -10786,7 +10763,6 @@ "version": "4.3.0", "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", - "dev": true, "dependencies": { "estraverse": "^5.2.0" }, @@ -10798,7 +10774,6 @@ "version": "5.3.0", "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true, "engines": { "node": ">=4.0" } @@ -10852,7 +10827,6 @@ "version": "3.3.0", "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", - "dev": true, "engines": { "node": ">=0.8.x" } @@ -11133,8 +11107,7 @@ "node_modules/fast-deep-equal": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "dev": true + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" }, "node_modules/fast-glob": { "version": "3.3.2", @@ -11155,8 +11128,7 @@ "node_modules/fast-json-stable-stringify": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", - "dev": true + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==" }, "node_modules/fast-levenshtein": { "version": "2.0.6", @@ -11733,8 +11705,7 @@ "node_modules/glob-to-regexp": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", - "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", - "dev": true + "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==" }, "node_modules/glob/node_modules/brace-expansion": { "version": "2.0.1", @@ -13381,7 +13352,6 @@ "version": "27.5.1", "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", - "dev": true, "dependencies": { "@types/node": "*", "merge-stream": "^2.0.0", @@ -13395,7 +13365,6 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, "engines": { "node": ">=8" } @@ -13404,7 +13373,6 @@ "version": "8.1.1", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "dev": true, "dependencies": { "has-flag": "^4.0.0" }, @@ -14180,7 +14148,6 @@ "version": "4.3.0", "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.0.tgz", "integrity": "sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==", - "dev": true, "engines": { "node": ">=6.11.5" } @@ -14635,8 +14602,7 @@ "node_modules/merge-stream": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", - "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", - "dev": true + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==" }, "node_modules/merge2": { "version": "1.4.1", @@ -15734,8 +15700,7 @@ "node_modules/neo-async": { "version": "2.6.2", "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", - "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", - "dev": true + "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==" }, "node_modules/ngx-clipboard": { "version": "16.0.0", @@ -15898,8 +15863,7 @@ "node_modules/node-releases": { "version": "2.0.14", "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz", - "integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==", - "dev": true + "integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==" }, "node_modules/nodejs": { "version": "0.0.0", @@ -17074,8 +17038,7 @@ "node_modules/picocolors": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", - "dev": true + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" }, "node_modules/picomatch": { "version": "4.0.1", @@ -18626,7 +18589,6 @@ "version": "6.0.2", "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.2.tgz", "integrity": "sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==", - "dev": true, "dependencies": { "randombytes": "^2.1.0" } @@ -19071,7 +19033,6 @@ "version": "0.5.21", "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", - "dev": true, "dependencies": { "buffer-from": "^1.0.0", "source-map": "^0.6.0" @@ -19081,7 +19042,6 @@ "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, "engines": { "node": ">=0.10.0" } @@ -19554,7 +19514,6 @@ "version": "2.2.1", "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", - "dev": true, "engines": { "node": ">=6" } @@ -19676,7 +19635,6 @@ "version": "5.29.1", "resolved": "https://registry.npmjs.org/terser/-/terser-5.29.1.tgz", "integrity": "sha512-lZQ/fyaIGxsbGxApKmoPTODIzELy3++mXhS5hOqaAWZjQtpq/hFHAc+rm29NND1rYRxRWKcjuARNwULNXa5RtQ==", - "dev": true, "dependencies": { "@jridgewell/source-map": "^0.3.3", "acorn": "^8.8.2", @@ -19694,7 +19652,6 @@ "version": "5.3.10", "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.10.tgz", "integrity": "sha512-BKFPWlPDndPs+NGGCr1U59t0XScL5317Y0UReNrHaw9/FwhPENlq6bfgs+4yPfyP51vqC1bQ4rp1EfXW5ZSH9w==", - "dev": true, "dependencies": { "@jridgewell/trace-mapping": "^0.3.20", "jest-worker": "^27.4.5", @@ -19728,7 +19685,6 @@ "version": "6.12.6", "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, "dependencies": { "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", @@ -19744,7 +19700,6 @@ "version": "3.5.2", "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", - "dev": true, "peerDependencies": { "ajv": "^6.9.1" } @@ -19752,14 +19707,12 @@ "node_modules/terser-webpack-plugin/node_modules/json-schema-traverse": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" }, "node_modules/terser-webpack-plugin/node_modules/schema-utils": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", - "dev": true, "dependencies": { "@types/json-schema": "^7.0.8", "ajv": "^6.12.5", @@ -19776,8 +19729,7 @@ "node_modules/terser/node_modules/commander": { "version": "2.20.3", "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", - "dev": true + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" }, "node_modules/test-exclude": { "version": "6.0.0", @@ -20550,7 +20502,6 @@ "version": "1.0.14", "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.14.tgz", "integrity": "sha512-JixKH8GR2pWYshIPUg/NujK3JO7JiqEEUiNArE86NQyrgUuZeTlZQN3xuS/yiV5Kb48ev9K6RqNkaJjXsdg7Jw==", - "dev": true, "funding": [ { "type": "opencollective", @@ -20580,7 +20531,6 @@ "version": "4.4.1", "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", - "dev": true, "dependencies": { "punycode": "^2.1.0" } @@ -20811,8 +20761,6 @@ "version": "5.91.0", "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.91.0.tgz", "integrity": "sha512-rzVwlLeBWHJbmgTC/8TvAcu5vpJNII+MelQpylD4jNERPwpBJOE2lEcko1zJX3QJeLjTTAnQxn/OJ8bjDzVQaw==", - "dev": true, - "peer": true, "dependencies": { "@types/eslint-scope": "^3.7.3", "@types/estree": "^1.0.5", @@ -21004,7 +20952,6 @@ "version": "3.2.3", "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz", "integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==", - "dev": true, "engines": { "node": ">=10.13.0" } @@ -21034,8 +20981,6 @@ "version": "6.12.6", "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, - "peer": true, "dependencies": { "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", @@ -21051,8 +20996,6 @@ "version": "3.5.2", "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", - "dev": true, - "peer": true, "peerDependencies": { "ajv": "^6.9.1" } @@ -21061,8 +21004,6 @@ "version": "5.1.1", "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", - "dev": true, - "peer": true, "dependencies": { "esrecurse": "^4.3.0", "estraverse": "^4.1.1" @@ -21075,8 +21016,6 @@ "version": "4.3.0", "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", - "dev": true, - "peer": true, "engines": { "node": ">=4.0" } @@ -21084,23 +21023,17 @@ "node_modules/webpack/node_modules/json-parse-even-better-errors": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", - "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", - "dev": true, - "peer": true + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==" }, "node_modules/webpack/node_modules/json-schema-traverse": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true, - "peer": true + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" }, "node_modules/webpack/node_modules/schema-utils": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", - "dev": true, - "peer": true, "dependencies": { "@types/json-schema": "^7.0.8", "ajv": "^6.12.5", @@ -21118,8 +21051,6 @@ "version": "2.4.1", "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.1.tgz", "integrity": "sha512-8wrBCMtVhqcXP2Sup1ctSkga6uc2Bx0IIvKyT7yTFier5AXHooSI+QyQQAtTb7+E0IUCCKyTFmXqdqgum2XWGg==", - "dev": true, - "peer": true, "dependencies": { "glob-to-regexp": "^0.4.1", "graceful-fs": "^4.1.2" diff --git a/client/package.json b/client/package.json index 51b7f60..359a999 100644 --- a/client/package.json +++ b/client/package.json @@ -51,6 +51,7 @@ "@handsontable/angular": "^13.1.0", "@sasjs/adapter": "4.10.2", "@sasjs/utils": "^3.4.0", + "@sheet/crypto": "file:libraries/sheet-crypto.tgz", "@types/d3-graphviz": "^2.6.7", "@types/text-encoding": "0.0.35", "base64-arraybuffer": "^0.2.0", @@ -78,6 +79,7 @@ "text-encoding": "^0.7.0", "tslib": "^2.3.0", "vm": "^0.1.0", + "webpack": "^5.91.0", "zone.js": "~0.14.4" }, "devDependencies": { diff --git a/client/src/app/app.component.scss b/client/src/app/app.component.scss index 4d9242d..d1741a0 100644 --- a/client/src/app/app.component.scss +++ b/client/src/app/app.component.scss @@ -106,15 +106,6 @@ header { font-size: 12px; } -.btn.btn-success { - border-color: #62a420; - background-color: #16a57a!important; - color: #fff; -} -.btn.btn-success:hover { - background-color: #2add39; - color: #fff; -} .toggle-switch input[type=checkbox]:checked+label:before { border-color: #61717D; @@ -190,11 +181,26 @@ header { padding: 0rem 1rem 0rem 1rem; } - .btn-primary .btn, .btn.btn-primary { - border-color: #314351; - background-color: #314351; - color: #fff; + body[cds-theme="light"] { + .btn-primary .btn, .btn.btn-primary { + border-color: #314351; + background-color: #314351; + color: #fff; + } } + + body[cds-theme="dark"] { + .btn-primary .btn, .btn.btn-primary { + border-color: #5e7382; + background-color: #5e7382; + color: #fff; + + clr-icon, cds-icon { + color: #fff + } + } + } + .btn { cursor: pointer; display: inline-block; @@ -215,15 +221,6 @@ header { font-weight: 500; height: 1.5rem; padding: 0 .5rem; - border-color: #314351; - background-color: transparent; - color: #314351; - } - - .btn.btn-outline { - border-color: #314351; - background-color: transparent; - color: #314351; } .btn.btn-outline:hover { @@ -232,19 +229,24 @@ header { color: #fff; } - .btn.btn-success-outline:hover { - background-color: #5ea71f; - color: #fff7f7; - border-color: #9a9696; -} -// .btn.btn-success-outline { -// border-color: #266900; -// background-color: transparent; -// color: #318700; -// } - // .wtSpreader { - // } + body[cds-theme="dark"] { + .btn.btn-icon { + color: #7295ae; + } + } + + body[cds-theme="light"] { + .btn.btn-icon { + color: #314351; + } + + .btn.btn-outline { + border-color: #314351; + background-color: transparent; + color: #314351; + } + } .htMobileEditorContainer .inputs textarea { font-size: 13pt; @@ -277,58 +279,42 @@ header { width: 350px; } - .handsontable { - background-color: #ffffff; - // border: 1px solid #ccc; - border-radius: 3px; - } - .handsontable th { - background-color: #fafafa; - } /* Left and right */ - .ht_clone_left th { - border-right: 1px solid #ccc; - border-left: 1px solid #ccc; - } /* Column headers */ - .ht_clone_top th { - border-top: 1px solid #ccc; - border-right: 1px solid #ccc; - border-bottom: 1px solid #ccc; + + body[cds-theme="light"] { + .wtBorder { + background-color: #495A67!important; + } + + .ht_master tr:nth-of-type(odd) > td { + filter: brightness(0.95); + } } - .ht_clone_top_left_corner th { - border-right: 1px solid #ccc; - } + body[cds-theme="dark"] { + .ht_master tr:nth-of-type(odd) > td { + filter: brightness(1.2); + } - .ht_master tr:nth-of-type(odd) > td { - background-color: #f3f3f3; - border: 1px solid rgb(197, 197, 197); - border-bottom: 1px solid rgb(236, 235, 235); - // padding: 1px 1px; - } - - .ht_master tr:nth-of-type(even) > td { - background-color: white; - border: 1px solid rgb(197, 197, 197); - border-bottom: 1px solid rgb(236, 235, 235); - // padding: 1px 1px; - } - - .wtBorder { - background-color: #495A67!important; + .ht_master:not(.innerBorderInlineStart):not(.emptyColumns) ~ .handsontable tbody tr th, .ht_master:not(.innerBorderInlineStart):not(.emptyColumns) ~ .handsontable:not(.ht_clone_top) thead tr th:first-child { + background-color: #2d4048; + } } .handsontable .handsontable.ht_clone_top .wtHider { padding: 0 0 0px 0!important; margin: 0px; border-bottom: 3px solid #d6d3d3; -} + } - .content-container { - background: #F5F6FF; + body[cds-theme="light"] { + .content-container { + // background: red; + background: #F5F6FF; + } } .card { @@ -387,7 +373,6 @@ header { -webkit-box-direction: normal; -ms-flex-direction: column; flex-direction: column; - background: #f5f6ff; padding: .5rem 0; border: 1px solid #ccc; box-shadow: 0 1px 0.125rem hsla(0,0%,45%,.25); diff --git a/client/src/app/app.component.ts b/client/src/app/app.component.ts index 1df0e30..6ee163e 100644 --- a/client/src/app/app.component.ts +++ b/client/src/app/app.component.ts @@ -13,6 +13,10 @@ import { InfoModal } from './models/InfoModal' import { DcAdapterSettings } from './models/DcAdapterSettings' import { AppStoreService } from './services/app-store.service' import { LicenceService } from './services/licence.service' +import '@cds/core/icon/register.js'; +import { ClarityIcons, moonIcon, sunIcon } from '@cds/core/icon'; + +ClarityIcons.addIcons(moonIcon, sunIcon); @Component({ selector: 'my-app', diff --git a/client/src/app/editor/editor.component.html b/client/src/app/editor/editor.component.html index fc13304..fa4c73d 100644 --- a/client/src/app/editor/editor.component.html +++ b/client/src/app/editor/editor.component.html @@ -165,11 +165,11 @@ class="card-header clr-row buttonBar headerBar clr-flex-md-row clr-justify-content-center clr-justify-content-lg-end" >
- + Back to table selection - + Viewboxes diff --git a/client/src/app/editor/editor.component.scss b/client/src/app/editor/editor.component.scss index b9aa715..acd1f82 100644 --- a/client/src/app/editor/editor.component.scss +++ b/client/src/app/editor/editor.component.scss @@ -80,8 +80,7 @@ hot-table { -webkit-box-align: center; -ms-flex-align: center; align-items: center; - background: #ffffff; - background: #f5f6fe; + background: var(--clr-vertical-nav-bg-color); } .error-icon { diff --git a/client/src/app/editor/editor.component.ts b/client/src/app/editor/editor.component.ts index e9d1d99..e188734 100644 --- a/client/src/app/editor/editor.component.ts +++ b/client/src/app/editor/editor.component.ts @@ -3193,6 +3193,7 @@ export class EditorComponent implements OnInit, AfterViewInit { rowHeights: 24, maxRows: this.licenceState.value.editor_rows_allowed || Infinity, invalidCellClassName: 'htInvalid', + className: 'htDark', dropdownMenu: { items: { make_read_only: { @@ -3257,6 +3258,9 @@ export class EditorComponent implements OnInit, AfterViewInit { if (col === 0) { th.classList.add('firstColumnHeaderStyle') } + + // Dark mode + th.classList.add('darkTH') }, afterGetCellMeta: ( row: number, diff --git a/client/src/app/group/group.component.html b/client/src/app/group/group.component.html index b3cfccd..492873a 100644 --- a/client/src/app/group/group.component.html +++ b/client/src/app/group/group.component.html @@ -3,6 +3,7 @@
{ if (library.LIBRARYID !== libraryToSkip.LIBRARYID) { diff --git a/client/src/app/lineage/lineage.component.html b/client/src/app/lineage/lineage.component.html index 74fb318..97ecfbf 100644 --- a/client/src/app/lineage/lineage.component.html +++ b/client/src/app/lineage/lineage.component.html @@ -3,6 +3,7 @@
= new BehaviorSubject(false) + constructor(private alertsService: AlertsService) {} + toggleDarkMode(value: boolean) { + this.darkMode.next(value) + + if (value) { + document.body.setAttribute('cds-theme', 'dark') + } else { + document.body.setAttribute('cds-theme', 'light') + } + } + public showDemoLimitModal(featureName: string) { this.onDemoLimitModalShow.emit(featureName) } diff --git a/client/src/app/shared/dc-tree/dc-tree.component.html b/client/src/app/shared/dc-tree/dc-tree.component.html index 4f6c669..eceabef 100644 --- a/client/src/app/shared/dc-tree/dc-tree.component.html +++ b/client/src/app/shared/dc-tree/dc-tree.component.html @@ -2,6 +2,7 @@
+
+ + +
+ diff --git a/client/src/app/shared/user-nav-dropdown/header-actions.component.scss b/client/src/app/shared/user-nav-dropdown/header-actions.component.scss index 89e95c4..bb5e687 100644 --- a/client/src/app/shared/user-nav-dropdown/header-actions.component.scss +++ b/client/src/app/shared/user-nav-dropdown/header-actions.component.scss @@ -65,9 +65,6 @@ $clr-light-gray: #eee; height: 45px; line-height: 40px; - span.dropdown-text{ - color: $clr-dark-gray; - } .badge { position: absolute; diff --git a/client/src/app/shared/user-nav-dropdown/header-actions.component.ts b/client/src/app/shared/user-nav-dropdown/header-actions.component.ts index f18dbb5..0293d2c 100644 --- a/client/src/app/shared/user-nav-dropdown/header-actions.component.ts +++ b/client/src/app/shared/user-nav-dropdown/header-actions.component.ts @@ -26,6 +26,7 @@ export class HeaderActions implements OnInit, OnDestroy { public sasjsConfig: SASjsConfig = new SASjsConfig() public requestsCount: number = 0 public commitVer: string = '' + public darkMode = this.eventService.darkMode constructor( private userService: UserService, @@ -51,6 +52,10 @@ export class HeaderActions implements OnInit, OnDestroy { this.userSub.unsubscribe() } + toggleDarkMode(value: boolean) { + this.eventService.toggleDarkMode(value) + } + openRequestsModal() { this.eventService.openRequestsModal() } diff --git a/client/src/app/user/user.component.html b/client/src/app/user/user.component.html index 9a01a7b..0d20d4b 100644 --- a/client/src/app/user/user.component.html +++ b/client/src/app/user/user.component.html @@ -3,6 +3,7 @@
Date: Thu, 23 May 2024 16:16:47 +0200 Subject: [PATCH 02/19] feat(dark mode): removing custom css rules so clarity can handle dark/light modes. Handsontable css for dark mode --- client/src/app/app.component.scss | 94 +++++++--------- client/src/app/editor/editor.component.html | 20 ++-- client/src/app/editor/editor.component.scss | 10 +- client/src/app/editor/editor.component.ts | 1 - client/src/app/group/group.component.html | 2 +- client/src/app/home/home.component.html | 10 +- client/src/app/lineage/lineage.component.html | 2 +- .../src/app/metadata/metadata.component.html | 2 +- .../approve-details.component.html | 8 +- .../app/review/approve/approve.component.html | 19 +--- .../review/submitter/submitter.component.html | 20 +--- client/src/app/role/role.component.html | 2 +- client/src/app/services/app.service.ts | 1 + .../app/shared/dc-tree/dc-tree.component.html | 2 +- .../requests-modal.component.scss | 1 - .../shared/viewboxes/viewboxes.component.html | 1 + .../shared/viewboxes/viewboxes.component.ts | 2 + client/src/app/stage/stage.component.html | 2 + client/src/app/stage/stage.component.ts | 6 +- .../system/models/environment-info.model.ts | 1 + client/src/app/system/system.component.html | 12 +- client/src/app/system/system.component.scss | 3 +- client/src/app/user/user.component.html | 2 +- client/src/app/viewer/viewer.component.html | 34 +++--- client/src/app/viewer/viewer.component.scss | 53 +++++++-- client/src/app/viewer/viewer.component.ts | 8 +- client/src/app/xlmap/xlmap.component.html | 12 +- client/src/app/xlmap/xlmap.component.ts | 6 + client/src/styles.scss | 103 ++++++++++++++---- sas/sasjs/sasjsconfig.json | 2 +- 30 files changed, 273 insertions(+), 168 deletions(-) diff --git a/client/src/app/app.component.scss b/client/src/app/app.component.scss index d1741a0..3719952 100644 --- a/client/src/app/app.component.scss +++ b/client/src/app/app.component.scss @@ -133,49 +133,19 @@ header { color: #fff; } -@media screen and (max-width: 768px) { - .navBarResp { - display: flex; - justify-content: flex-start; - background: #495A67; - color: #fff; - } - - .main-container .sub-nav.clr-nav-level-1 .nav .nav-link, .main-container .sub-nav.clr-nav-level-2 .nav .nav-link, .main-container .subnav.clr-nav-level-1 .nav .nav-link, .main-container .subnav.clr-nav-level-2 .nav .nav-link { - padding: 0 .5rem 0 1rem; - width: 100%; - max-width: 100%; - overflow: hidden; - text-overflow: ellipsis; - border-radius: .125rem 0 0 .125rem; - color: #95c84b; - } - - - - .card-block, .card-footer { - padding: 10px 0px 0px 0px; - } - - .main-container[_ngcontent-c0] .content-container[_ngcontent-c0] .content-area[_ngcontent-c0] { - padding: 0rem 0rem 0rem 0rem; - } - -} ::ng-deep { .htInvalid { - background: black!important; -} + background: black!important; + } @media screen and (max-width:480px) { - h2 { - font-size: .7rem!important; - + h2 { + font-size: .7rem!important; + } + h3 { + font-size: .7rem; + } } - h3 { - font-size: .7rem; - } -} .nav-link { padding: 0rem 1rem 0rem 1rem; @@ -299,7 +269,7 @@ header { filter: brightness(1.2); } - .ht_master:not(.innerBorderInlineStart):not(.emptyColumns) ~ .handsontable tbody tr th, .ht_master:not(.innerBorderInlineStart):not(.emptyColumns) ~ .handsontable:not(.ht_clone_top) thead tr th:first-child { + .ht_master:not(.emptyColumns) ~ .handsontable tbody tr th, .ht_master:not(.emptyColumns) ~ .handsontable:not(.ht_clone_top) thead tr th:first-child { background-color: #2d4048; } } @@ -317,20 +287,11 @@ header { } } - .card { - box-shadow: 0 0.125rem 0 0 #d7d7d7; - border-radius: .0rem; - border: 1px solid transparent; - // min-height: calc(100vh - 150px); - } - .datagrid-compact, .datagrid-history{ .datagrid { border-collapse: separate; border: 1px solid transparent; border-radius: .125rem; - background-color: #fff; - color: #565656; margin: 0; margin-top: 1rem; max-width: 100%; @@ -352,8 +313,8 @@ header { } .datagrid-footer { position: absolute; - right: 15px; - top: 2px; + right: 30px; + top: 1px; } .datagrid .datagrid-head { background-color: #fff; @@ -387,8 +348,6 @@ header { border-collapse: separate; border: 1px solid transparent; border-radius: 0px; - background-color: #fff; - color: #565656; margin: 0; margin-top: 1rem; max-width: 100%; @@ -399,7 +358,6 @@ header { font-size: .45833rem; font-weight: 600; letter-spacing: .03em; - background-color: #fff; vertical-align: bottom; border-bottom: 1px solid #ccc; text-transform: uppercase; @@ -422,4 +380,34 @@ header { max-width: 400px; width: 100%; } +} + +@media screen and (max-width: 768px) { + .navBarResp { + display: flex; + justify-content: flex-start; + background: #495A67; + color: #fff; + } + + .main-container .sub-nav.clr-nav-level-1 .nav .nav-link, .main-container .sub-nav.clr-nav-level-2 .nav .nav-link, .main-container .subnav.clr-nav-level-1 .nav .nav-link, .main-container .subnav.clr-nav-level-2 .nav .nav-link { + padding: 0 .5rem 0 1rem; + width: 100%; + max-width: 100%; + overflow: hidden; + text-overflow: ellipsis; + border-radius: .125rem 0 0 .125rem; + color: #95c84b; + } + + + + .card-block, .card-footer { + padding: 10px 0px 0px 0px; + } + + .main-container[_ngcontent-c0] .content-container[_ngcontent-c0] .content-area[_ngcontent-c0] { + padding: 0rem 0rem 0rem 0rem; + } + } \ No newline at end of file diff --git a/client/src/app/editor/editor.component.html b/client/src/app/editor/editor.component.html index fa4c73d..76bb5b2 100644 --- a/client/src/app/editor/editor.component.html +++ b/client/src/app/editor/editor.component.html @@ -362,8 +362,8 @@ Loading... -
-

Loading table

+
+

Loading table

@@ -372,8 +372,8 @@ -
-

Loading table error

+
+

Loading table error

@@ -398,6 +398,7 @@ hotId="hotInstance" id="hotTable" class="edit-hot" + className="htDark" [class.hidden]="hotTable.hidden" [licenseKey]="hotTable.licenseKey" > @@ -486,11 +487,13 @@ support@datacontroller.io
-
- +
+
@@ -520,6 +522,7 @@ [disabled]="!validationDone" type="submit" class="btn btn-sm btn-success-outline m-0" + tabindex="0" (click)="saveTable(hotTable.data)" > Submit @@ -528,6 +531,7 @@ id="cancelSubmitBtn" type="button" class="btn btn-sm btn-outline" + tabindex="0" (click)="cancelSubmit(); submit = false; validationDone = 0" > Cancel diff --git a/client/src/app/editor/editor.component.scss b/client/src/app/editor/editor.component.scss index acd1f82..e3d8e95 100644 --- a/client/src/app/editor/editor.component.scss +++ b/client/src/app/editor/editor.component.scss @@ -21,12 +21,12 @@ hot-table { .handsontable tbody th.ht__highlight, .handsontable thead th.ht__highlight { &.primaryKeyHeaderStyle { - background: #306b00b0; + background-color: #306b00b0 !important; } } .primaryKeyHeaderStyle { - background: #306b006e; + background-color: #306b006e !important; } th.readonlyCell { @@ -41,6 +41,12 @@ hot-table { } } +.submit-reason { + min-height: 120px; + max-height: 120px; + height: 120px; +} + .infoBar { margin-top:14px; background: #495967; diff --git a/client/src/app/editor/editor.component.ts b/client/src/app/editor/editor.component.ts index e188734..de38f95 100644 --- a/client/src/app/editor/editor.component.ts +++ b/client/src/app/editor/editor.component.ts @@ -3193,7 +3193,6 @@ export class EditorComponent implements OnInit, AfterViewInit { rowHeights: 24, maxRows: this.licenceState.value.editor_rows_allowed || Infinity, invalidCellClassName: 'htInvalid', - className: 'htDark', dropdownMenu: { items: { make_read_only: { diff --git a/client/src/app/group/group.component.html b/client/src/app/group/group.component.html index 492873a..509113d 100644 --- a/client/src/app/group/group.component.html +++ b/client/src/app/group/group.component.html @@ -28,7 +28,7 @@

diff --git a/client/src/app/home/home.component.html b/client/src/app/home/home.component.html index 97b3106..cb446a9 100644 --- a/client/src/app/home/home.component.html +++ b/client/src/app/home/home.component.html @@ -87,7 +87,7 @@ (click)="!tableLocked ? onTableClick(libTable, library) : ''" class="clr-treenode-link" [class.dc-locked-control]="tableLocked" - [class.table-active]="libTabActive(library.LIBRARYREF, libTable)" + [class.active]="libTabActive(library.LIBRARYREF, libTable)" > @@ -128,12 +128,12 @@ size="60" class="is-info icon-dc-fill" > -

+

Please select a table -

-

+

+

No Editable Tables Configured -

+

diff --git a/client/src/app/lineage/lineage.component.html b/client/src/app/lineage/lineage.component.html index 97ecfbf..de97743 100644 --- a/client/src/app/lineage/lineage.component.html +++ b/client/src/app/lineage/lineage.component.html @@ -141,7 +141,7 @@ size="60" class="is-info icon-dc-fill" > -

Please select a column or table

+

Please select a column or table

diff --git a/client/src/app/metadata/metadata.component.html b/client/src/app/metadata/metadata.component.html index 97a7186..c8b2563 100644 --- a/client/src/app/metadata/metadata.component.html +++ b/client/src/app/metadata/metadata.component.html @@ -73,7 +73,7 @@ size="60" class="is-info icon-dc-fill" > -

Please select a type

+

Please select a type

diff --git a/client/src/app/review/approve-details/approve-details.component.html b/client/src/app/review/approve-details/approve-details.component.html index b505669..10916d5 100644 --- a/client/src/app/review/approve-details/approve-details.component.html +++ b/client/src/app/review/approve-details/approve-details.component.html @@ -311,8 +311,8 @@ class="h-24vh d-flex flex-column justify-content-center align-items-center" > Loading... -
-

Loading table

+
+

Loading table

@@ -519,8 +519,8 @@ class="h-25vh d-flex flex-column justify-content-center align-items-center" > Loading... -
-

Loading table

+
+

Loading table

diff --git a/client/src/app/review/approve/approve.component.html b/client/src/app/review/approve/approve.component.html index 5c3520b..d7ed3a1 100644 --- a/client/src/app/review/approve/approve.component.html +++ b/client/src/app/review/approve/approve.component.html @@ -99,21 +99,10 @@ - - items per page - - - {{ pagination.firstItem + 1 }} - {{ pagination.lastItem + 1 }} of - {{ pagination.totalItems }} approvals + + + Items per page + {{ pagination.firstItem + 1 }} - {{ pagination.lastItem + 1 }} of {{ pagination.totalItems }} approvals diff --git a/client/src/app/review/submitter/submitter.component.html b/client/src/app/review/submitter/submitter.component.html index f9e6547..3c1fe92 100644 --- a/client/src/app/review/submitter/submitter.component.html +++ b/client/src/app/review/submitter/submitter.component.html @@ -86,22 +86,10 @@ - - items per page - - - {{ pagination.firstItem + 1 }} - - {{ pagination.lastItem + 1 }} of - {{ pagination.totalItems }} submissions + + + Items per page + {{ pagination.firstItem + 1 }} - {{ pagination.lastItem + 1 }} of {{ pagination.totalItems }} submissions diff --git a/client/src/app/role/role.component.html b/client/src/app/role/role.component.html index ce26f76..d264f29 100644 --- a/client/src/app/role/role.component.html +++ b/client/src/app/role/role.component.html @@ -27,7 +27,7 @@

diff --git a/client/src/app/services/app.service.ts b/client/src/app/services/app.service.ts index 105026e..92093ad 100644 --- a/client/src/app/services/app.service.ts +++ b/client/src/app/services/app.service.ts @@ -95,6 +95,7 @@ export class AppService { MEMSIZE: res.MEMSIZE, SYSPROCESSMODE: res.SYSPROCESSMODE, SYSHOSTNAME: res.SYSHOSTNAME, + SYSUSERID: res.SYSUSERID, SYSHOSTINFOLONG: res.SYSHOSTINFOLONG, SYSENCODING: res.SYSENCODING, AUTOEXEC: res.AUTOEXEC, diff --git a/client/src/app/shared/dc-tree/dc-tree.component.html b/client/src/app/shared/dc-tree/dc-tree.component.html index eceabef..677dbe6 100644 --- a/client/src/app/shared/dc-tree/dc-tree.component.html +++ b/client/src/app/shared/dc-tree/dc-tree.component.html @@ -93,7 +93,7 @@ " class="clr-treenode-link" [class.dc-locked-control]="tableLocked" - [class.table-active]="libTabActive(library.LIBRARYREF, libTable)" + [class.active]="libTabActive(library.LIBRARYREF, libTable)" > diff --git a/client/src/app/shared/requests-modal/requests-modal.component.scss b/client/src/app/shared/requests-modal/requests-modal.component.scss index a410079..37484d3 100644 --- a/client/src/app/shared/requests-modal/requests-modal.component.scss +++ b/client/src/app/shared/requests-modal/requests-modal.component.scss @@ -70,7 +70,6 @@ border-radius: 3px; border: 1px solid #e2e2e2; - background-color: #fbfbfb; height: 48vh; overflow: auto; diff --git a/client/src/app/shared/viewboxes/viewboxes.component.html b/client/src/app/shared/viewboxes/viewboxes.component.html index 50c6b38..8f8079f 100644 --- a/client/src/app/shared/viewboxes/viewboxes.component.html +++ b/client/src/app/shared/viewboxes/viewboxes.component.html @@ -389,6 +389,7 @@ *ngIf="viewboxTableIndex > -1" [hotId]="'hotInstance_viewbox_' + viewbox.id" id="hotTable" + className="htDark" [readOnly]="true" [modifyColWidth]="maxWidthCheker" [copyPaste]="viewboxTables[viewboxTableIndex].hotTable.copyPaste" diff --git a/client/src/app/shared/viewboxes/viewboxes.component.ts b/client/src/app/shared/viewboxes/viewboxes.component.ts index 9566441..b757793 100644 --- a/client/src/app/shared/viewboxes/viewboxes.component.ts +++ b/client/src/app/shared/viewboxes/viewboxes.component.ts @@ -433,6 +433,8 @@ export class ViewboxesComponent implements OnInit, AfterViewInit, OnDestroy { viewboxTable!.hotTable.headerPks.indexOf(column) > -1 if (isPKCol) th.classList.add('primaryKeyHeaderStyle') + // Dark mode + th.classList.add('darkTH') } }) hotInstance?.render() diff --git a/client/src/app/stage/stage.component.html b/client/src/app/stage/stage.component.html index 9015138..a81ab4e 100644 --- a/client/src/app/stage/stage.component.html +++ b/client/src/app/stage/stage.component.html @@ -118,12 +118,14 @@ diff --git a/client/src/app/stage/stage.component.ts b/client/src/app/stage/stage.component.ts index abe0e48..4eb702f 100644 --- a/client/src/app/stage/stage.component.ts +++ b/client/src/app/stage/stage.component.ts @@ -32,7 +32,11 @@ export class StageComponent implements OnInit { height: 500, settings: {}, licenseKey: undefined, - maxRows: this.licenceState.value.stage_rows_allowed || Infinity + maxRows: this.licenceState.value.stage_rows_allowed || Infinity, + afterGetColHeader: (column, th, headerLevel) => { + // Dark mode + th.classList.add('darkTH') + }, } constructor( diff --git a/client/src/app/system/models/environment-info.model.ts b/client/src/app/system/models/environment-info.model.ts index b44ae44..4dcae15 100644 --- a/client/src/app/system/models/environment-info.model.ts +++ b/client/src/app/system/models/environment-info.model.ts @@ -6,6 +6,7 @@ export interface EnvironmentInfo { MEMSIZE: string SYSPROCESSMODE: string SYSHOSTNAME: string + SYSUSERID: string SYSHOSTINFOLONG: string SYSENCODING: string AUTOEXEC: string diff --git a/client/src/app/system/system.component.html b/client/src/app/system/system.component.html index 51b3c52..f91fbdd 100644 --- a/client/src/app/system/system.component.html +++ b/client/src/app/system/system.component.html @@ -36,6 +36,10 @@ SYSHOSTNAME: {{ environmentInfo?.SYSHOSTNAME }}

+

+ SYSUSERID: + {{ environmentInfo?.SYSUSERID }} +

SYSHOSTINFOLONG: {{ environmentInfo?.SYSHOSTINFOLONG }} @@ -47,10 +51,6 @@

AUTOEXEC: {{ environmentInfo?.AUTOEXEC }}

-

- DC ADMIN GROUP: - {{ environmentInfo?.DC_ADMIN_GROUP }} -

@@ -73,6 +73,10 @@

HTTP: {{ http ? 'YES' : 'NO' }}

+

+ DC Admin Group: + {{ environmentInfo?.DC_ADMIN_GROUP }} +

diff --git a/client/src/app/system/system.component.scss b/client/src/app/system/system.component.scss index 307e7db..57c64a5 100644 --- a/client/src/app/system/system.component.scss +++ b/client/src/app/system/system.component.scss @@ -27,7 +27,8 @@ } .dark { - color: black; + font-weight: bold; + margin-left: 5px; } @media (max-width: 993px) { diff --git a/client/src/app/user/user.component.html b/client/src/app/user/user.component.html index 0d20d4b..fb67bdc 100644 --- a/client/src/app/user/user.component.html +++ b/client/src/app/user/user.component.html @@ -27,7 +27,7 @@

diff --git a/client/src/app/viewer/viewer.component.html b/client/src/app/viewer/viewer.component.html index a5c7aaa..fd78523 100644 --- a/client/src/app/viewer/viewer.component.html +++ b/client/src/app/viewer/viewer.component.html @@ -93,7 +93,7 @@ (click)="!tableLocked ? onTableClick(libTable, library) : ''" class="clr-treenode-link" [class.dc-locked-control]="tableLocked" - [class.table-active]="libTabActive(library.LIBRARYREF, libTable)" + [class.active]="libTabActive(library.LIBRARYREF, libTable)" > @@ -197,7 +197,7 @@