From 2172b81443572df06dcfcd7f99623b5163d48a38 Mon Sep 17 00:00:00 2001 From: Michael Pivato Date: Fri, 7 Jun 2024 22:06:02 +0930 Subject: [PATCH] Update theming, rebuild app from existing angular project --- .editorconfig | 16 +++ .vscode/extensions.json | 2 +- .vscode/launch.json | 20 +++ .vscode/tasks.json | 42 ++++++ angular.json | 25 +++- package.json | 8 +- public/favicon.ico | Bin 0 -> 15086 bytes src-tauri/.gitignore | 4 - src-tauri/Cargo.lock | 148 +++++---------------- src-tauri/Cargo.toml | 22 +-- src-tauri/tauri.conf.json | 84 ++++++------ src/app/app.component.html | 4 +- src/app/app.component.scss | 9 ++ src/app/app.component.ts | 32 ++--- src/app/app.config.ts | 18 ++- src/app/editor/editor.component.scss | 3 + src/app/editor/editor.component.ts | 17 ++- src/app/file-tree/file-tree.component.scss | 3 + src/app/file-tree/file-tree.component.ts | 20 ++- src/index.html | 26 ++-- src/m3-theme.scss | 141 ++++++++++++++++++++ src/main.ts | 8 +- src/styles.scss | 18 +++ tsconfig.app.json | 10 +- tsconfig.json | 7 +- tsconfig.spec.json | 14 ++ 26 files changed, 468 insertions(+), 233 deletions(-) create mode 100644 .editorconfig create mode 100644 .vscode/launch.json create mode 100644 .vscode/tasks.json create mode 100644 public/favicon.ico create mode 100644 src/app/app.component.scss create mode 100644 src/app/editor/editor.component.scss create mode 100644 src/app/file-tree/file-tree.component.scss create mode 100644 src/m3-theme.scss create mode 100644 src/styles.scss create mode 100644 tsconfig.spec.json diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 0000000..59d9a3a --- /dev/null +++ b/.editorconfig @@ -0,0 +1,16 @@ +# Editor configuration, see https://editorconfig.org +root = true + +[*] +charset = utf-8 +indent_style = space +indent_size = 2 +insert_final_newline = true +trim_trailing_whitespace = true + +[*.ts] +quote_type = single + +[*.md] +max_line_length = off +trim_trailing_whitespace = false diff --git a/.vscode/extensions.json b/.vscode/extensions.json index 08cebbd..5d457ac 100644 --- a/.vscode/extensions.json +++ b/.vscode/extensions.json @@ -4,4 +4,4 @@ "rust-lang.rust-analyzer", "angular.ng-template" ] -} +} \ No newline at end of file diff --git a/.vscode/launch.json b/.vscode/launch.json new file mode 100644 index 0000000..925af83 --- /dev/null +++ b/.vscode/launch.json @@ -0,0 +1,20 @@ +{ + // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 + "version": "0.2.0", + "configurations": [ + { + "name": "ng serve", + "type": "chrome", + "request": "launch", + "preLaunchTask": "npm: start", + "url": "http://localhost:4200/" + }, + { + "name": "ng test", + "type": "chrome", + "request": "launch", + "preLaunchTask": "npm: test", + "url": "http://localhost:9876/debug.html" + } + ] +} diff --git a/.vscode/tasks.json b/.vscode/tasks.json new file mode 100644 index 0000000..a298b5b --- /dev/null +++ b/.vscode/tasks.json @@ -0,0 +1,42 @@ +{ + // For more information, visit: https://go.microsoft.com/fwlink/?LinkId=733558 + "version": "2.0.0", + "tasks": [ + { + "type": "npm", + "script": "start", + "isBackground": true, + "problemMatcher": { + "owner": "typescript", + "pattern": "$tsc", + "background": { + "activeOnStart": true, + "beginsPattern": { + "regexp": "(.*?)" + }, + "endsPattern": { + "regexp": "bundle generation complete" + } + } + } + }, + { + "type": "npm", + "script": "test", + "isBackground": true, + "problemMatcher": { + "owner": "typescript", + "pattern": "$tsc", + "background": { + "activeOnStart": true, + "beginsPattern": { + "regexp": "(.*?)" + }, + "endsPattern": { + "regexp": "bundle generation complete" + } + } + } + } + ] +} diff --git a/angular.json b/angular.json index e8ebb88..bc8d657 100644 --- a/angular.json +++ b/angular.json @@ -18,7 +18,8 @@ "outputPath": "dist/proto-creator", "index": "src/index.html", "browser": "src/main.ts", - "polyfills": ["zone.js"], + "polyfills": [ + ], "tsConfig": "tsconfig.app.json", "assets": ["src/assets"] }, @@ -60,6 +61,28 @@ } }, "defaultConfiguration": "development" + }, + "extract-i18n": { + "builder": "@angular-devkit/build-angular:extract-i18n" + }, + "test": { + "builder": "@angular-devkit/build-angular:karma", + "options": { + "polyfills": [ + ], + "tsConfig": "tsconfig.spec.json", + "inlineStyleLanguage": "scss", + "assets": [ + { + "glob": "**/*", + "input": "public" + } + ], + "styles": [ + "src/styles.scss" + ], + "scripts": [] + } } } } diff --git a/package.json b/package.json index b5e1284..607a8cb 100644 --- a/package.json +++ b/package.json @@ -11,16 +11,16 @@ "private": true, "dependencies": { "@angular/animations": "^18.0.0", - "@angular/cdk": "~18.0.0", + "@angular/cdk": "^18.0.2", "@angular/common": "^18.0.0", "@angular/compiler": "^18.0.0", "@angular/core": "^18.0.0", "@angular/forms": "^18.0.0", - "@angular/material": "18.0.0", + "@angular/material": "^18.0.2", "@angular/platform-browser": "^18.0.0", "@angular/platform-browser-dynamic": "^18.0.0", "@angular/router": "^18.0.0", - "@tauri-apps/api": "^1", + "@tauri-apps/api": "^1.5.6", "protobufjs": "~7.3.0", "rxjs": "~7.8.0", "tslib": "^2.3.0", @@ -30,7 +30,7 @@ "@angular/build": "^18.0.1", "@angular/cli": "^18.0.1", "@angular/compiler-cli": "^18.0.0", - "@tauri-apps/cli": "^1", + "@tauri-apps/cli": "^1.5.14", "@types/jasmine": "~5.1.0", "@types/protobufjs": "^6.0.0", "jasmine-core": "~5.1.0", diff --git a/public/favicon.ico b/public/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..57614f9c967596fad0a3989bec2b1deff33034f6 GIT binary patch literal 15086 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 Nr__JTFzvMr^FKp4S3v*( literal 0 HcmV?d00001 diff --git a/src-tauri/.gitignore b/src-tauri/.gitignore index b21bd68..aba21e2 100644 --- a/src-tauri/.gitignore +++ b/src-tauri/.gitignore @@ -1,7 +1,3 @@ # Generated by Cargo # will have compiled files and executables /target/ - -# Generated by Tauri -# will have schema files for capabilities auto-completion -/gen/schemas diff --git a/src-tauri/Cargo.lock b/src-tauri/Cargo.lock index 7cf5fd7..1faad38 100644 --- a/src-tauri/Cargo.lock +++ b/src-tauri/Cargo.lock @@ -4,9 +4,9 @@ version = 3 [[package]] name = "addr2line" -version = "0.21.0" +version = "0.22.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a30b2e23b9e17a9f90641c7ab1549cd9b44f296d3ccbf309d2863cfe398a0cb" +checksum = "6e4503c46a5c0c7844e948c9a4d6acd9f50cccb4de1c48eb9e291ea17470c678" dependencies = [ "gimli", ] @@ -62,6 +62,16 @@ version = "1.0.86" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b3d1d046238990b9cf5bcde22a3fb3584ee5cf65fb2765f454ed428c7a0063da" +[[package]] +name = "app" +version = "0.1.0" +dependencies = [ + "serde", + "serde_json", + "tauri", + "tauri-build", +] + [[package]] name = "atk" version = "0.15.1" @@ -94,9 +104,9 @@ checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" [[package]] name = "backtrace" -version = "0.3.71" +version = "0.3.72" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26b05800d2e817c8b3b4b54abd461726265fa9789ae34330622f2db9ee696f9d" +checksum = "17c6a35df3749d2e8bb1b7b21a976d82b15548788d2735b9d82f329268f71a11" dependencies = [ "addr2line", "cc", @@ -618,7 +628,7 @@ dependencies = [ "cc", "memchr", "rustc_version", - "toml 0.8.13", + "toml 0.8.14", "vswhom", "winreg", ] @@ -946,9 +956,9 @@ dependencies = [ [[package]] name = "gimli" -version = "0.28.1" +version = "0.29.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4271d37baee1b8c7e4b708028c57d816cf9d2434acb33a549475f78c181f6253" +checksum = "40ecd4077b5ae9fd2e9e169b102c6c330d0605168eb0e8bf79952b256dbefffd" [[package]] name = "gio" @@ -1662,9 +1672,9 @@ dependencies = [ [[package]] name = "object" -version = "0.32.2" +version = "0.35.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a6a622008b6e321afc04970976f62ee297fdbaa6f95318ca343e3eebb9648441" +checksum = "b8ec7ab813848ba4522158d5517a6093db1ded27575b070f4177b8d12b41db5e" dependencies = [ "memchr", ] @@ -1675,16 +1685,6 @@ version = "1.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92" -[[package]] -name = "open" -version = "3.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2078c0039e6a54a0c42c28faa984e115fb4c2d5bf2208f77d1961002df8576f8" -dependencies = [ - "pathdiff", - "windows-sys 0.42.0", -] - [[package]] name = "overload" version = "0.1.1" @@ -1739,12 +1739,6 @@ dependencies = [ "windows-targets 0.52.5", ] -[[package]] -name = "pathdiff" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8835116a5c179084a830efb3adc117ab007512b535bc1a21c991d3b32a6b44dd" - [[package]] name = "percent-encoding" version = "2.3.1" @@ -1990,23 +1984,13 @@ checksum = "dc375e1527247fe1a97d8b7156678dfe7c1af2fc075c9a4db3690ecd2a148068" [[package]] name = "proc-macro2" -version = "1.0.84" +version = "1.0.85" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec96c6a92621310b51366f1e28d05ef11489516e93be030060e5fc12024a49d6" +checksum = "22244ce15aa966053a896d1accb3a6e68469b97c7f33f284b99f0d576879fc23" dependencies = [ "unicode-ident", ] -[[package]] -name = "proto-creator" -version = "0.0.0" -dependencies = [ - "serde", - "serde_json", - "tauri", - "tauri-build", -] - [[package]] name = "quick-xml" version = "0.31.0" @@ -2579,7 +2563,7 @@ dependencies = [ "cfg-expr 0.15.8", "heck 0.5.0", "pkg-config", - "toml 0.8.13", + "toml 0.8.14", "version-compare 0.2.0", ] @@ -2643,9 +2627,9 @@ dependencies = [ [[package]] name = "tar" -version = "0.4.40" +version = "0.4.41" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b16afcea1f22891c49a00c751c7b63b2233284064f11a200fc624137c51e2ddb" +checksum = "cb797dad5fb5b76fcf519e702f4a589483b5ef06567f160c392832c1f5e44909" dependencies = [ "filetime", "libc", @@ -2660,9 +2644,9 @@ checksum = "e1fc403891a21bcfb7c37834ba66a547a8f402146eba7265b5a6d88059c9ff2f" [[package]] name = "tauri" -version = "1.6.7" +version = "1.6.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "67c7177b6be45bbb875aa239578f5adc982a1b3d5ea5b315ccd100aeb0043374" +checksum = "77567d2b3b74de4588d544147142d02297f3eaa171a25a065252141d8597a516" dependencies = [ "anyhow", "cocoa", @@ -2681,11 +2665,9 @@ dependencies = [ "ignore", "objc", "once_cell", - "open", "percent-encoding", "rand 0.8.5", "raw-window-handle", - "regex", "rfd", "semver", "serde", @@ -2741,7 +2723,6 @@ dependencies = [ "png", "proc-macro2", "quote", - "regex", "semver", "serde", "serde_json", @@ -2955,9 +2936,9 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "tokio" -version = "1.37.0" +version = "1.38.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1adbebffeca75fcfd058afa480fb6c0b81e165a0323f9c9d39c9697e37c46787" +checksum = "ba4f4a02a7a80d6f274636f0aa95c7e383b912d41fe721a31f29e29698585a4a" dependencies = [ "backtrace", "bytes", @@ -2988,14 +2969,14 @@ dependencies = [ [[package]] name = "toml" -version = "0.8.13" +version = "0.8.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4e43f8cc456c9704c851ae29c67e17ef65d2c30017c17a9765b89c382dc8bba" +checksum = "6f49eb2ab21d2f26bd6db7bf383edc527a7ebaee412d17af4d40fdccd442f335" dependencies = [ "serde", "serde_spanned", "toml_datetime", - "toml_edit 0.22.13", + "toml_edit 0.22.14", ] [[package]] @@ -3022,15 +3003,15 @@ dependencies = [ [[package]] name = "toml_edit" -version = "0.22.13" +version = "0.22.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c127785850e8c20836d49732ae6abfa47616e60bf9d9f57c43c250361a9db96c" +checksum = "f21c7aaf97f1bd9ca9d4f9e73b0a6c74bd5afef56f2bc931943a6e1c37e04e38" dependencies = [ "indexmap 2.2.6", "serde", "serde_spanned", "toml_datetime", - "winnow 0.6.8", + "winnow 0.6.13", ] [[package]] @@ -3483,21 +3464,6 @@ version = "0.39.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9ee5e275231f07c6e240d14f34e1b635bf1faa1c76c57cfd59a5cdb9848e4278" -[[package]] -name = "windows-sys" -version = "0.42.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a3e1820f08b8513f676f7ab6c1f99ff312fb97b553d30ff4dd86f9f15728aa7" -dependencies = [ - "windows_aarch64_gnullvm 0.42.2", - "windows_aarch64_msvc 0.42.2", - "windows_i686_gnu 0.42.2", - "windows_i686_msvc 0.42.2", - "windows_x86_64_gnu 0.42.2", - "windows_x86_64_gnullvm 0.42.2", - "windows_x86_64_msvc 0.42.2", -] - [[package]] name = "windows-sys" version = "0.48.0" @@ -3562,12 +3528,6 @@ dependencies = [ "windows-targets 0.52.5", ] -[[package]] -name = "windows_aarch64_gnullvm" -version = "0.42.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "597a5118570b68bc08d8d59125332c54f1ba9d9adeedeef5b99b02ba2b0698f8" - [[package]] name = "windows_aarch64_gnullvm" version = "0.48.5" @@ -3592,12 +3552,6 @@ version = "0.39.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ec7711666096bd4096ffa835238905bb33fb87267910e154b18b44eaabb340f2" -[[package]] -name = "windows_aarch64_msvc" -version = "0.42.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e08e8864a60f06ef0d0ff4ba04124db8b0fb3be5776a5cd47641e942e58c4d43" - [[package]] name = "windows_aarch64_msvc" version = "0.48.5" @@ -3622,12 +3576,6 @@ version = "0.39.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "763fc57100a5f7042e3057e7e8d9bdd7860d330070251a73d003563a3bb49e1b" -[[package]] -name = "windows_i686_gnu" -version = "0.42.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c61d927d8da41da96a81f029489353e68739737d3beca43145c8afec9a31a84f" - [[package]] name = "windows_i686_gnu" version = "0.48.5" @@ -3658,12 +3606,6 @@ version = "0.39.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7bc7cbfe58828921e10a9f446fcaaf649204dcfe6c1ddd712c5eebae6bda1106" -[[package]] -name = "windows_i686_msvc" -version = "0.42.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "44d840b6ec649f480a41c8d80f9c65108b92d89345dd94027bfe06ac444d1060" - [[package]] name = "windows_i686_msvc" version = "0.48.5" @@ -3688,12 +3630,6 @@ version = "0.39.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6868c165637d653ae1e8dc4d82c25d4f97dd6605eaa8d784b5c6e0ab2a252b65" -[[package]] -name = "windows_x86_64_gnu" -version = "0.42.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8de912b8b8feb55c064867cf047dda097f92d51efad5b491dfb98f6bbb70cb36" - [[package]] name = "windows_x86_64_gnu" version = "0.48.5" @@ -3706,12 +3642,6 @@ version = "0.52.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4e4246f76bdeff09eb48875a0fd3e2af6aada79d409d33011886d3e1581517d9" -[[package]] -name = "windows_x86_64_gnullvm" -version = "0.42.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26d41b46a36d453748aedef1486d5c7a85db22e56aff34643984ea85514e94a3" - [[package]] name = "windows_x86_64_gnullvm" version = "0.48.5" @@ -3736,12 +3666,6 @@ version = "0.39.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5e4d40883ae9cae962787ca76ba76390ffa29214667a111db9e0a1ad8377e809" -[[package]] -name = "windows_x86_64_msvc" -version = "0.42.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9aec5da331524158c6d1a4ac0ab1541149c0b9505fde06423b02f5ef0106b9f0" - [[package]] name = "windows_x86_64_msvc" version = "0.48.5" @@ -3765,9 +3689,9 @@ dependencies = [ [[package]] name = "winnow" -version = "0.6.8" +version = "0.6.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3c52e9c97a68071b23e836c9380edae937f17b9c4667bd021973efc689f618d" +checksum = "59b5e5f6c299a3c7890b876a2a587f3115162487e704907d9b6cd29473052ba1" dependencies = [ "memchr", ] diff --git a/src-tauri/Cargo.toml b/src-tauri/Cargo.toml index 3d43b42..8f3eeda 100644 --- a/src-tauri/Cargo.toml +++ b/src-tauri/Cargo.toml @@ -1,20 +1,26 @@ [package] -name = "proto-creator" -version = "0.0.0" +name = "app" +version = "0.1.0" description = "A Tauri App" authors = ["you"] +license = "" +repository = "" +default-run = "app" edition = "2021" +rust-version = "1.60" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html [build-dependencies] -tauri-build = { version = "1", features = [] } +tauri-build = { version = "1.5.2", features = [] } [dependencies] -tauri = { version = "1", features = [ "fs-remove-dir", "dialog-open", "fs-read-dir", "fs-read-file", "dialog-confirm", "fs-create-dir", "dialog-message", "fs-remove-file", "dialog-ask", "fs-write-file", "shell-open"] } -serde = { version = "1", features = ["derive"] } -serde_json = "1" +serde_json = "1.0" +serde = { version = "1.0", features = ["derive"] } +tauri = { version = "1.6.5", features = [ "dialog-all", "fs-all"] } [features] -# This feature is used for production builds or when a dev server is not specified, DO NOT REMOVE!! -custom-protocol = ["tauri/custom-protocol"] +# this feature is used for production builds or when `devPath` points to the filesystem and the built-in dev server is disabled. +# If you use cargo directly instead of tauri's cli you can use this feature flag to switch between tauri's `dev` and `build` modes. +# DO NOT REMOVE!! +custom-protocol = [ "tauri/custom-protocol" ] diff --git a/src-tauri/tauri.conf.json b/src-tauri/tauri.conf.json index f07e1c7..c9de89f 100644 --- a/src-tauri/tauri.conf.json +++ b/src-tauri/tauri.conf.json @@ -1,9 +1,10 @@ { + "$schema": "../node_modules/@tauri-apps/cli/schema.json", "build": { "beforeDevCommand": "bun run start", "beforeBuildCommand": "bun run build", - "devPath": "http://localhost:1420", - "distDir": "../dist/proto-creator/browser" + "devPath": "http://localhost:4200", + "distDir": "../dist" }, "package": { "productName": "Piv's Buf", @@ -12,53 +13,60 @@ "tauri": { "allowlist": { "all": false, - "dialog": { - "all": false, - "ask": true, - "confirm": true, - "message": true, - "open": true, - "save": false - }, "fs": { - "all": false, - "copyFile": false, - "createDir": true, - "exists": false, - "readDir": true, - "readFile": true, - "removeDir": true, - "removeFile": true, - "renameFile": false, - "scope": [], - "writeFile": true + "all": true }, - "shell": { - "all": false, - "open": true + "dialog": { + "all": true } }, - "windows": [ - { - "title": "Piv's Buf", - "width": 800, - "height": 600 - } - ], - "security": { - "csp": null - }, "bundle": { "active": true, - "targets": "all", - "identifier": "dev.michaelpivato", + "category": "DeveloperTool", + "copyright": "", + "deb": { + "depends": [] + }, + "externalBin": [], "icon": [ "icons/32x32.png", "icons/128x128.png", "icons/128x128@2x.png", "icons/icon.icns", "icons/icon.ico" - ] - } + ], + "identifier": "dev.michaelpivato", + "longDescription": "", + "macOS": { + "entitlements": null, + "exceptionDomain": "", + "frameworks": [], + "providerShortName": null, + "signingIdentity": null + }, + "resources": [], + "shortDescription": "", + "targets": "all", + "windows": { + "certificateThumbprint": null, + "digestAlgorithm": "sha256", + "timestampUrl": "" + } + }, + "security": { + "csp": null + }, + "updater": { + "active": false + }, + "windows": [ + { + "fullscreen": false, + "height": 600, + "resizable": true, + "title": "Piv's Buf", + "width": 800 + } + ] } } diff --git a/src/app/app.component.html b/src/app/app.component.html index a8457b1..1b95e64 100644 --- a/src/app/app.component.html +++ b/src/app/app.component.html @@ -1,6 +1,6 @@ BufPiv - - + + diff --git a/src/app/app.component.scss b/src/app/app.component.scss new file mode 100644 index 0000000..c4d7999 --- /dev/null +++ b/src/app/app.component.scss @@ -0,0 +1,9 @@ +:host { + display: flex; + flex-direction: column; + height: 100%; +} +mat-sidenav-container { + width: 100%; + height: 100%; +} diff --git a/src/app/app.component.ts b/src/app/app.component.ts index 3f26a50..042baaf 100644 --- a/src/app/app.component.ts +++ b/src/app/app.component.ts @@ -1,22 +1,23 @@ -import { CommonModule } from "@angular/common"; -import { Component, signal } from "@angular/core"; -import { MatButtonModule } from "@angular/material/button"; -import { MatSidenavModule } from "@angular/material/sidenav"; -import { RouterOutlet } from "@angular/router"; -import { message, open } from "@tauri-apps/api/dialog"; -import { FileEntry, readDir } from "@tauri-apps/api/fs"; -import { MatToolbarModule } from "@angular/material/toolbar"; -import { MatTreeModule } from "@angular/material/tree"; +import { CommonModule } from '@angular/common'; +import { Component, signal } from '@angular/core'; +import { MatButtonModule } from '@angular/material/button'; +import { MatSidenavModule } from '@angular/material/sidenav'; +import { RouterOutlet } from '@angular/router'; +import { message, open } from '@tauri-apps/api/dialog'; +import { FileEntry, readDir } from '@tauri-apps/api/fs'; +import { MatToolbarModule } from '@angular/material/toolbar'; +import { MatTreeModule } from '@angular/material/tree'; import { FileOrFolder, FileTreeComponent, -} from "./file-tree/file-tree.component"; +} from './file-tree/file-tree.component'; +import { MatIconModule } from '@angular/material/icon'; @Component({ - selector: "app-root", + selector: 'app-root', standalone: true, - templateUrl: "./app.component.html", - styleUrl: "./app.component.css", + templateUrl: './app.component.html', + styleUrl: './app.component.scss', imports: [ CommonModule, RouterOutlet, @@ -25,6 +26,7 @@ import { MatToolbarModule, MatTreeModule, FileTreeComponent, + MatIconModule, ], }) export class AppComponent { @@ -37,7 +39,7 @@ export class AppComponent { multiple: false, }); if (Array.isArray(selectedDirectory)) { - message("Only a single folder can be selected at a time"); + message('Only a single folder can be selected at a time'); } else { this.selectedDirectory = selectedDirectory; } @@ -52,7 +54,7 @@ export class AppComponent { private mapEntry(entry: FileEntry): FileOrFolder { return { isDirectory: entry.children != null, - name: entry.name || "", + name: entry.name || '', children: entry.children?.map((entry) => this.mapEntry(entry)), }; } diff --git a/src/app/app.config.ts b/src/app/app.config.ts index 9f06323..d5506d4 100644 --- a/src/app/app.config.ts +++ b/src/app/app.config.ts @@ -1,8 +1,16 @@ -import { ApplicationConfig } from "@angular/core"; -import { provideRouter } from "@angular/router"; -import { provideAnimationsAsync } from "@angular/platform-browser/animations/async"; -import { routes } from "./app.routes"; +import { + ApplicationConfig, + provideExperimentalZonelessChangeDetection, +} from '@angular/core'; +import { provideRouter } from '@angular/router'; + +import { provideAnimationsAsync } from '@angular/platform-browser/animations/async'; +import { routes } from './app.routes'; export const appConfig: ApplicationConfig = { - providers: [provideRouter(routes), provideAnimationsAsync()], + providers: [ + provideExperimentalZonelessChangeDetection(), + provideRouter(routes), + provideAnimationsAsync(), + ], }; diff --git a/src/app/editor/editor.component.scss b/src/app/editor/editor.component.scss new file mode 100644 index 0000000..5d4e87f --- /dev/null +++ b/src/app/editor/editor.component.scss @@ -0,0 +1,3 @@ +:host { + display: block; +} diff --git a/src/app/editor/editor.component.ts b/src/app/editor/editor.component.ts index 57bbf8a..6cf201d 100644 --- a/src/app/editor/editor.component.ts +++ b/src/app/editor/editor.component.ts @@ -1,16 +1,15 @@ -import { CommonModule } from "@angular/common"; -import { ChangeDetectionStrategy, Component, input } from "@angular/core"; -import { FormsModule } from "@angular/forms"; -import { readTextFile } from "@tauri-apps/api/fs"; -import { load, parse } from "protobufjs"; +import { CommonModule } from '@angular/common'; +import { Component, input } from '@angular/core'; +import { FormsModule } from '@angular/forms'; +import { readTextFile } from '@tauri-apps/api/fs'; +import { parse } from 'protobufjs'; @Component({ - selector: "app-editor", + selector: 'app-editor', standalone: true, imports: [CommonModule, FormsModule], - templateUrl: "./editor.component.html", - styleUrl: "./editor.component.css", - changeDetection: ChangeDetectionStrategy.OnPush, + templateUrl: './editor.component.html', + styleUrl: './editor.component.scss', }) export class EditorComponent { fileContents = input(); diff --git a/src/app/file-tree/file-tree.component.scss b/src/app/file-tree/file-tree.component.scss new file mode 100644 index 0000000..5d4e87f --- /dev/null +++ b/src/app/file-tree/file-tree.component.scss @@ -0,0 +1,3 @@ +:host { + display: block; +} diff --git a/src/app/file-tree/file-tree.component.ts b/src/app/file-tree/file-tree.component.ts index de26166..f98faf2 100644 --- a/src/app/file-tree/file-tree.component.ts +++ b/src/app/file-tree/file-tree.component.ts @@ -1,20 +1,19 @@ -import { DataSource } from "@angular/cdk/collections"; -import { FlatTreeControl } from "@angular/cdk/tree"; -import { CommonModule } from "@angular/common"; +import { FlatTreeControl } from '@angular/cdk/tree'; +import { CommonModule } from '@angular/common'; import { ChangeDetectionStrategy, Component, - Signal, computed, input, output, -} from "@angular/core"; +} from '@angular/core'; +import { MatButtonModule } from '@angular/material/button'; +import { MatIconModule } from '@angular/material/icon'; import { MatTreeFlatDataSource, MatTreeFlattener, MatTreeModule, -} from "@angular/material/tree"; -import { MatIconModule } from "@angular/material/icon"; +} from '@angular/material/tree'; export interface FileOrFolder { isDirectory: boolean; @@ -29,9 +28,9 @@ interface FileNode { } @Component({ - selector: "app-file-tree", + selector: 'app-file-tree', standalone: true, - imports: [CommonModule, MatTreeModule, MatIconModule], + imports: [CommonModule, MatTreeModule, MatIconModule, MatButtonModule], template: ` `, - styleUrl: "./file-tree.component.css", - changeDetection: ChangeDetectionStrategy.OnPush, + styleUrl: './file-tree.component.scss', }) export class FileTreeComponent { files = input([]); diff --git a/src/index.html b/src/index.html index 46ce11e..645c4d4 100644 --- a/src/index.html +++ b/src/index.html @@ -1,17 +1,15 @@ - - - Tauri + Angular - - - - - - - - + + + Test + + + + + + + + + diff --git a/src/m3-theme.scss b/src/m3-theme.scss new file mode 100644 index 0000000..55f4d04 --- /dev/null +++ b/src/m3-theme.scss @@ -0,0 +1,141 @@ +// This file was generated by running 'ng generate @angular/material:m3-theme'. +// Proceed with caution if making changes to this file. + +@use 'sass:map'; +@use '@angular/material' as mat; + +// Note: Color palettes are generated from primary: #DF6B85, secondary: #AE868D, tertiary: #B48858, neutral: #988E8F +$_palettes: ( + primary: ( + 0: #000000, + 10: #3f0015, + 20: #630828, + 25: #721633, + 30: #82233e, + 35: #912f49, + 40: #a13a54, + 50: #c0536c, + 60: #e06c86, + 70: #ff86a0, + 80: #ffb2bf, + 90: #ffd9de, + 95: #ffecee, + 98: #fff8f7, + 99: #fffbff, + 100: #ffffff, + ), + secondary: ( + 0: #000000, + 10: #3f0017, + 20: #5f112b, + 25: #6d1d35, + 30: #7c2940, + 35: #8b344c, + 40: #9a4058, + 50: #b95870, + 60: #d87189, + 70: #f78aa3, + 80: #ffb1c0, + 90: #ffd9df, + 95: #ffecee, + 98: #fff8f7, + 99: #fffbff, + 100: #ffffff, + ), + tertiary: ( + 0: #000000, + 10: #2b1700, + 20: #482900, + 25: #573300, + 30: #673d00, + 35: #774700, + 40: #885200, + 50: #aa6800, + 60: #c98121, + 70: #e89b3a, + 80: #ffb868, + 90: #ffddbb, + 95: #ffeedf, + 98: #fff8f4, + 99: #fffbff, + 100: #ffffff, + ), + neutral: ( + 0: #000000, + 10: #3f0018, + 20: #5f112c, + 25: #6d1d37, + 30: #7c2942, + 35: #8b344e, + 40: #9a4059, + 50: #b85872, + 60: #d7718b, + 70: #f78aa5, + 80: #ffb1c2, + 90: #ffd9e0, + 95: #ffecee, + 98: #fff8f7, + 99: #fffbff, + 100: #ffffff, + ), + neutral-variant: ( + 0: #000000, + 10: #24191a, + 20: #3a2d2f, + 25: #46383a, + 30: #524345, + 35: #5e4f51, + 40: #6a5a5c, + 50: #847375, + 60: #9f8c8e, + 70: #baa6a9, + 80: #d6c2c4, + 90: #f3dddf, + 95: #ffecee, + 98: #fff8f7, + 99: #fffbff, + 100: #ffffff, + ), + error: ( + 0: #000000, + 10: #410002, + 20: #690005, + 25: #7e0007, + 30: #93000a, + 35: #a80710, + 40: #ba1a1a, + 50: #de3730, + 60: #ff5449, + 70: #ff897d, + 80: #ffb4ab, + 90: #ffdad6, + 95: #ffedea, + 98: #fff8f7, + 99: #fffbff, + 100: #ffffff, + ), +); + +$_rest: ( + secondary: map.get($_palettes, secondary), + neutral: map.get($_palettes, neutral), + neutral-variant: map.get($_palettes, neutral-variant), + error: map.get($_palettes, error), +); +$_primary: map.merge(map.get($_palettes, primary), $_rest); +$_tertiary: map.merge(map.get($_palettes, tertiary), $_rest); + +$light-theme: mat.define-theme(( + color: ( + theme-type: light, + primary: $_primary, + tertiary: $_tertiary, + ), +)); +$dark-theme: mat.define-theme(( + color: ( + theme-type: dark, + primary: $_primary, + tertiary: $_tertiary, + ), +)); \ No newline at end of file diff --git a/src/main.ts b/src/main.ts index 6829613..514c89a 100644 --- a/src/main.ts +++ b/src/main.ts @@ -1,7 +1,7 @@ -import { bootstrapApplication } from "@angular/platform-browser"; -import { appConfig } from "./app/app.config"; -import { AppComponent } from "./app/app.component"; +import { bootstrapApplication } from '@angular/platform-browser'; +import { appConfig } from './app/app.config'; +import { AppComponent } from './app/app.component'; bootstrapApplication(AppComponent, appConfig).catch((err) => - console.error(err), + console.error(err) ); diff --git a/src/styles.scss b/src/styles.scss new file mode 100644 index 0000000..a8d93c6 --- /dev/null +++ b/src/styles.scss @@ -0,0 +1,18 @@ +@use '@angular/material' as mat; +@use './m3-theme.scss'; + +@include mat.core(); + +html { + @include mat.all-component-themes(m3-theme.$dark-theme); +} + +html, +body { + height: 100%; +} +body { + margin: 0; + --mat-tree-node-min-height: 24px; + --mat-tree-node-text-size: 14px; +} diff --git a/tsconfig.app.json b/tsconfig.app.json index 84f1f99..69378eb 100644 --- a/tsconfig.app.json +++ b/tsconfig.app.json @@ -5,6 +5,10 @@ "outDir": "./out-tsc/app", "types": [] }, - "files": ["src/main.ts"], - "include": ["src/**/*.d.ts"] -} + "files": [ + "src/main.ts" + ], + "include": [ + "src/**/*.d.ts" + ] +} \ No newline at end of file diff --git a/tsconfig.json b/tsconfig.json index 71bf477..23b0269 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -19,7 +19,10 @@ "target": "ES2022", "module": "ES2022", "useDefineForClassFields": false, - "lib": ["ES2022", "dom"] + "lib": [ + "ES2022", + "dom" + ] }, "angularCompilerOptions": { "enableI18nLegacyMessageIdFormat": false, @@ -27,4 +30,4 @@ "strictInputAccessModifiers": true, "strictTemplates": true } -} +} \ No newline at end of file diff --git a/tsconfig.spec.json b/tsconfig.spec.json new file mode 100644 index 0000000..be7e9da --- /dev/null +++ b/tsconfig.spec.json @@ -0,0 +1,14 @@ +/* To learn more about this file see: https://angular.io/config/tsconfig. */ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "outDir": "./out-tsc/spec", + "types": [ + "jasmine" + ] + }, + "include": [ + "src/**/*.spec.ts", + "src/**/*.d.ts" + ] +}