diff --git a/tools/src/app/app.component.html b/tools/src/app/app.component.html
index bb9c823..1c56427 100644
--- a/tools/src/app/app.component.html
+++ b/tools/src/app/app.component.html
@@ -1,5 +1,7 @@
-
-
-
-
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/tools/src/app/app.component.scss b/tools/src/app/app.component.scss
index 0eb92c0..72a1a2b 100644
--- a/tools/src/app/app.component.scss
+++ b/tools/src/app/app.component.scss
@@ -1,4 +1,22 @@
.main-content {
display: flex;
justify-content: center;
+}
+
+::ng-deep {
+ .p-panel {
+ border-radius: unset !important;
+ }
+
+ .p-panel-header {
+ background: unset !important;
+ }
+
+ .p-fileupload-header {
+ background: unset !important;
+ }
+
+ .p-fileupload {
+ background: unset !important;
+ }
}
\ No newline at end of file
diff --git a/tools/src/app/app.component.ts b/tools/src/app/app.component.ts
index 638df06..94ba31d 100644
--- a/tools/src/app/app.component.ts
+++ b/tools/src/app/app.component.ts
@@ -16,6 +16,9 @@ export class AppComponent {
title = 'tools';
constructor(private config: PrimeNGConfig) {
- this.config.theme.set({ preset: Lara });
+ this.config.theme.set({
+ preset: Lara,
+ darkModeSelector: '.darkmode'
+ });
}
}
\ No newline at end of file
diff --git a/tools/src/app/app.routes.ts b/tools/src/app/app.routes.ts
index efeffb7..b41f564 100644
--- a/tools/src/app/app.routes.ts
+++ b/tools/src/app/app.routes.ts
@@ -7,7 +7,7 @@ import { TextToCronComponent } from '../tools/client-side/text-to-cron/text-to-c
import { DdsToPngComponent } from '../tools/client-side/dds-to-png/dds-to-png.component';
import { ImageConverterComponent } from '../tools/server-side/image-converter/image-converter.component';
import { WordCounterComponent } from '../tools/client-side/word-counter/word-counter.component';
-import { ColorPickerComponent } from '../tools/client-side/color-picker/color-picker/color-picker.component';
+import { ColorPickerComponent } from '../tools/client-side/color-picker/color-picker.component';
export const routes: Routes = [
{
diff --git a/tools/src/app/header/header.component.html b/tools/src/app/header/header.component.html
index 01a3432..81ecad5 100644
--- a/tools/src/app/header/header.component.html
+++ b/tools/src/app/header/header.component.html
@@ -1,5 +1,5 @@
-
+
diff --git a/tools/src/app/header/header.component.scss b/tools/src/app/header/header.component.scss
index 0111a86..bf5a2f1 100644
--- a/tools/src/app/header/header.component.scss
+++ b/tools/src/app/header/header.component.scss
@@ -1,3 +1,12 @@
.logotype {
width: 140px;
+}
+
+.darkMode {
+ filter: invert(1);
+}
+
+::ng-deep .p-megamenu-col-12 {
+ flex-direction: row !important;
+ display: flex !important;
}
\ No newline at end of file
diff --git a/tools/src/app/header/header.component.ts b/tools/src/app/header/header.component.ts
index 8e8af42..305873e 100644
--- a/tools/src/app/header/header.component.ts
+++ b/tools/src/app/header/header.component.ts
@@ -8,27 +8,26 @@ import { AvatarModule } from 'primeng/avatar';
@Component({
selector: 'app-header',
templateUrl: './header.component.html',
- styleUrls: ['./header.component.scss'],
+ styleUrls: ['./header.component.scss'],
standalone: true,
imports: [MegaMenuModule, ButtonModule, CommonModule, AvatarModule]
})
export class HeaderComponent implements OnInit {
items: MegaMenuItem[] | undefined;
+ isDarkMode: boolean = true;
ngOnInit() {
+ this.isDarkMode = window?.matchMedia?.('(prefers-color-scheme:dark)')?.matches;
+
this.items = [
{
- label: 'Text Tools',
- icon: 'pi pi-box',
+ label: 'Tools',
+ icon: 'pi pi-wrench',
items: [
[
{
+ label: 'Text Tools',
items: [
- {
- label: 'Ascii to text',
- routerLink: 'ascii-to-text',
- routerLinkActiveOptions: { exact: true }
- },
{
label: 'Text counter',
routerLink: 'text-counter',
@@ -39,11 +38,6 @@ export class HeaderComponent implements OnInit {
routerLink: 'guid',
routerLinkActiveOptions: { exact: true }
},
- {
- label: 'Base64 Converter',
- routerLink: 'base64-converter',
- routerLinkActiveOptions: { exact: true }
- },
{
label: 'Jwt decoder',
routerLink: 'jwt-decoder',
@@ -53,14 +47,18 @@ export class HeaderComponent implements OnInit {
label: 'Text to Cron Expression',
routerLink: 'text-to-cron',
routerLinkActiveOptions: { exact: true }
- },
- {
- label: 'Color picker',
- routerLink: 'color-picker',
- routerLinkActiveOptions: { exact: true }
}
],
-
+ },
+ {
+ label: 'Media Tools',
+ items: [
+ {
+ label: 'Color picker',
+ routerLink: 'color-picker',
+ routerLinkActiveOptions: { exact: true }
+ }
+ ]
}
]
]
@@ -71,6 +69,7 @@ export class HeaderComponent implements OnInit {
items: [
[
{
+ label: 'Convert',
items: [
{
label: 'DDS to PNG',
@@ -81,6 +80,16 @@ export class HeaderComponent implements OnInit {
label: 'Image Converter',
routerLink: 'image-converter',
routerLinkActiveOptions: { exact: true }
+ },
+ {
+ label: 'Base64 Converter',
+ routerLink: 'base64-converter',
+ routerLinkActiveOptions: { exact: true }
+ },
+ {
+ label: 'Ascii to text',
+ routerLink: 'ascii-to-text',
+ routerLinkActiveOptions: { exact: true }
}
]
}
diff --git a/tools/src/app/shared/dual-textarea/dual-textarea.component.html b/tools/src/app/shared/dual-textarea/dual-textarea.component.html
index 298e863..b62efc4 100644
--- a/tools/src/app/shared/dual-textarea/dual-textarea.component.html
+++ b/tools/src/app/shared/dual-textarea/dual-textarea.component.html
@@ -1,24 +1,22 @@
-
\ No newline at end of file
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/tools/src/app/shared/dual-textarea/dual-textarea.component.scss b/tools/src/app/shared/dual-textarea/dual-textarea.component.scss
index a8e3a05..dcb8e54 100644
--- a/tools/src/app/shared/dual-textarea/dual-textarea.component.scss
+++ b/tools/src/app/shared/dual-textarea/dual-textarea.component.scss
@@ -1,62 +1,49 @@
-:host {
+
+.icon {
+ display: flex;
+ flex-direction: row;
+ justify-content: center;
+ padding: 5px;
+ background-color: var(--primary-contrast);
+
+ i {
+ transform: rotate(90deg);
+ }
+}
+.wrapper {
display: flex;
- justify-content: center;
- margin-top: 20px;
- width: 96vw;
-
- .icon {
- display: flex;
- flex-direction: row;
- justify-content: center;
- padding: 5px;
- background-color: var(--primary-contrast);
-
- i {
- transform: rotate(90deg);
- }
- }
-
- .card {
- display: flex;
- flex-direction: column;
- width: 1140px;
- }
-
- .wrapper {
- display: flex;
- flex-direction: column;
- width: 1140px;
-
- .conversion {
- justify-content: center;
- display: flex;
- align-items: center;
- height: 70vh;
+ flex-direction: column;
+ width: 1140px;
- p-floatlabel {
- width: 30vw;
- }
- }
- }
+ .conversion {
+ justify-content: center;
+ display: flex;
+ align-items: center;
+ height: 70vh;
- textarea {
- width: 100%;
- height: 175px;
- padding: 12px 20px;
- box-sizing: border-box;
- border-radius: 4px;
- font-size: 16px;
- resize: none;
- background-color: var(--primary-contrast);
- color: var(--text-color)
- }
-
-
- ::ng-deep .p-panel-header {
- justify-content: unset !important;
-
- * {
- margin-right: 5px;
+ p-floatlabel {
+ width: 30vw;
}
}
-}
\ No newline at end of file
+}
+
+textarea {
+ width: 100%;
+ height: 175px;
+ padding: 12px 20px;
+ box-sizing: border-box;
+ border-radius: 4px;
+ font-size: 16px;
+ resize: none;
+ background-color: var(--primary-contrast);
+ color: var(--text-color)
+}
+
+
+::ng-deep .p-panel-header {
+justify-content: unset !important;
+
+* {
+ margin-right: 5px;
+}
+}
diff --git a/tools/src/app/shared/dual-textarea/dual-textarea.component.ts b/tools/src/app/shared/dual-textarea/dual-textarea.component.ts
index 874cb07..065a6ef 100644
--- a/tools/src/app/shared/dual-textarea/dual-textarea.component.ts
+++ b/tools/src/app/shared/dual-textarea/dual-textarea.component.ts
@@ -5,6 +5,7 @@ import { FloatLabelModule } from 'primeng/floatlabel';
import { InputTextareaModule } from 'primeng/inputtextarea';
import { PanelModule } from 'primeng/panel';
import { TagModule } from 'primeng/tag';
+import { PageComponent } from '../page/page.component';
@Component({
selector: 'app-dual-textarea',
@@ -17,7 +18,8 @@ import { TagModule } from 'primeng/tag';
FormsModule,
PanelModule,
CommonModule,
- TagModule
+ TagModule,
+ PageComponent
]
})
diff --git a/tools/src/app/shared/page/page.component.html b/tools/src/app/shared/page/page.component.html
new file mode 100644
index 0000000..30974e0
--- /dev/null
+++ b/tools/src/app/shared/page/page.component.html
@@ -0,0 +1,5 @@
+
\ No newline at end of file
diff --git a/tools/src/app/shared/page/page.component.scss b/tools/src/app/shared/page/page.component.scss
new file mode 100644
index 0000000..241f65d
--- /dev/null
+++ b/tools/src/app/shared/page/page.component.scss
@@ -0,0 +1,20 @@
+:host {
+ display: flex;
+ justify-content: center;
+ margin-top: 20px;
+ width: 96vw;
+
+ .card {
+ display: flex;
+ flex-direction: column;
+ width: 1140px;
+ }
+
+ ::ng-deep .p-panel-header {
+ justify-content: unset !important;
+
+ * {
+ margin-right: 5px;
+ }
+ }
+}
\ No newline at end of file
diff --git a/tools/src/app/shared/page/page.component.spec.ts b/tools/src/app/shared/page/page.component.spec.ts
new file mode 100644
index 0000000..372ccfc
--- /dev/null
+++ b/tools/src/app/shared/page/page.component.spec.ts
@@ -0,0 +1,28 @@
+/* tslint:disable:no-unused-variable */
+import { async, ComponentFixture, TestBed } from '@angular/core/testing';
+import { By } from '@angular/platform-browser';
+import { DebugElement } from '@angular/core';
+
+import { PageComponent } from './page.component';
+
+describe('PageComponent', () => {
+ let component: PageComponent;
+ let fixture: ComponentFixture;
+
+ beforeEach(async(() => {
+ TestBed.configureTestingModule({
+ declarations: [ PageComponent ]
+ })
+ .compileComponents();
+ }));
+
+ beforeEach(() => {
+ fixture = TestBed.createComponent(PageComponent);
+ component = fixture.componentInstance;
+ fixture.detectChanges();
+ });
+
+ it('should create', () => {
+ expect(component).toBeTruthy();
+ });
+});
diff --git a/tools/src/app/shared/page/page.component.ts b/tools/src/app/shared/page/page.component.ts
new file mode 100644
index 0000000..08f6e74
--- /dev/null
+++ b/tools/src/app/shared/page/page.component.ts
@@ -0,0 +1,13 @@
+import { Component, Input, OnInit } from '@angular/core';
+import { PanelModule } from 'primeng/panel';
+
+@Component({
+ selector: 'page',
+ templateUrl: './page.component.html',
+ styleUrls: ['./page.component.scss'],
+ standalone: true,
+ imports: [PanelModule]
+})
+export class PageComponent {
+ @Input() header: string = '';
+}
diff --git a/tools/src/app/shared/upload/file-converter.component.html b/tools/src/app/shared/upload/file-converter.component.html
index a9ecf61..9287be2 100644
--- a/tools/src/app/shared/upload/file-converter.component.html
+++ b/tools/src/app/shared/upload/file-converter.component.html
@@ -1,76 +1,74 @@
-
-
-
-
-
+
+
+
+
-
-
-
-
-
-
-
+
+
-
-
- Drag and drop files to here to upload.
-
+
-
-
-
-
- | Name |
- Format |
- Download |
-
-
-
-
- | {{file.name}} |
- {{file.format}} |
- {{file.name}} |
-
-
-
-
-
\ No newline at end of file
+
+
+
+
+ Drag and drop files to here to upload.
+
+
+
+
+
+
+ | Name |
+ Format |
+ Download |
+
+
+
+
+ | {{file.name}} |
+ {{file.format}} |
+ {{file.name}} |
+
+
+
+
\ No newline at end of file
diff --git a/tools/src/app/shared/upload/file-converter.component.scss b/tools/src/app/shared/upload/file-converter.component.scss
index 06ad012..5b0a4b6 100644
--- a/tools/src/app/shared/upload/file-converter.component.scss
+++ b/tools/src/app/shared/upload/file-converter.component.scss
@@ -1,26 +1,13 @@
-:host {
- display: flex;
- justify-content: center;
- margin-top: 20px;
- width: 96vw;
-
- .card {
- display: flex;
- flex-direction: column;
- width: 1140px;
- }
-
- .conversion {
- display: flex;
- justify-content: center;
- margin-top: 1rem;
- }
+.conversion {
+ display: flex;
+ justify-content: center;
+ margin-top: 1rem;
+}
- ::ng-deep .p-panel-header {
- justify-content: unset !important;
+::ng-deep .p-panel-header {
+ justify-content: unset !important;
- * {
- margin-right: 5px;
- }
- }
+ * {
+ margin-right: 5px;
+ }
}
\ No newline at end of file
diff --git a/tools/src/app/shared/upload/file-converter.component.ts b/tools/src/app/shared/upload/file-converter.component.ts
index a923ba3..51625bd 100644
--- a/tools/src/app/shared/upload/file-converter.component.ts
+++ b/tools/src/app/shared/upload/file-converter.component.ts
@@ -9,6 +9,7 @@ import { AutoCompleteCompleteEvent, AutoCompleteModule, AutoCompleteSelectEvent
import { BadgeModule } from 'primeng/badge';
import { HttpHeaders } from '@angular/common/http';
import { TagModule } from 'primeng/tag';
+import { PageComponent } from '../page/page.component';
interface ProcessedFile {
name: string;
@@ -30,7 +31,8 @@ interface ProcessedFile {
TableModule,
AutoCompleteModule,
BadgeModule,
- TagModule
+ TagModule,
+ PageComponent
]
})
export class FileConverterComponent implements OnInit {
diff --git a/tools/src/styles.scss b/tools/src/styles.scss
index ed70c4e..c90b1f5 100644
--- a/tools/src/styles.scss
+++ b/tools/src/styles.scss
@@ -8,4 +8,18 @@ body .p-component
font-optical-sizing: auto;
font-weight: 304;
font-style: normal;
+}
+
+* {
+ border-radius: unset !important;
+}
+
+.p-megamenu {
+ background: unset !important;
+}
+
+.p-megamenu-overlay {
+ background: var(--p-surface-800) !important;
+ border: unset !important;
+ border-radius: unset !important;
}
\ No newline at end of file
diff --git a/tools/src/tools/client-side/color-picker/color-picker.component.html b/tools/src/tools/client-side/color-picker/color-picker.component.html
new file mode 100644
index 0000000..3d3e29d
--- /dev/null
+++ b/tools/src/tools/client-side/color-picker/color-picker.component.html
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/tools/src/tools/client-side/color-picker/color-picker.component.scss b/tools/src/tools/client-side/color-picker/color-picker.component.scss
new file mode 100644
index 0000000..152cd4b
--- /dev/null
+++ b/tools/src/tools/client-side/color-picker/color-picker.component.scss
@@ -0,0 +1,19 @@
+.color-picker {
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ gap: 10px;
+}
+
+.color-picker input[type="color"] {
+ width: 50px;
+ height: 50px;
+ border: none;
+ cursor: pointer;
+}
+
+.color-picker input[type="text"] {
+ padding: 5px;
+ font-size: 16px;
+ width: 100px;
+}
\ No newline at end of file
diff --git a/tools/src/tools/client-side/color-picker/color-picker/color-picker.component.spec.ts b/tools/src/tools/client-side/color-picker/color-picker.component.spec.ts
similarity index 100%
rename from tools/src/tools/client-side/color-picker/color-picker/color-picker.component.spec.ts
rename to tools/src/tools/client-side/color-picker/color-picker.component.spec.ts
diff --git a/tools/src/tools/client-side/color-picker/color-picker/color-picker.component.ts b/tools/src/tools/client-side/color-picker/color-picker.component.ts
similarity index 85%
rename from tools/src/tools/client-side/color-picker/color-picker/color-picker.component.ts
rename to tools/src/tools/client-side/color-picker/color-picker.component.ts
index e3735d8..98ceea1 100644
--- a/tools/src/tools/client-side/color-picker/color-picker/color-picker.component.ts
+++ b/tools/src/tools/client-side/color-picker/color-picker.component.ts
@@ -3,6 +3,7 @@ import { Component } from '@angular/core';
import { FormControl, FormsModule, ReactiveFormsModule } from '@angular/forms';
import { ButtonModule } from 'primeng/button';
import { InputTextModule } from 'primeng/inputtext';
+import { PageComponent } from '../../../app/shared/page/page.component';
@Component({
selector: 'app-color-picker',
@@ -12,7 +13,8 @@ import { InputTextModule } from 'primeng/inputtext';
FormsModule,
InputTextModule,
ButtonModule,
- ReactiveFormsModule
+ ReactiveFormsModule,
+ PageComponent
],
templateUrl: './color-picker.component.html',
styleUrl: './color-picker.component.scss'
diff --git a/tools/src/tools/client-side/color-picker/color-picker/color-picker.component.html b/tools/src/tools/client-side/color-picker/color-picker/color-picker.component.html
deleted file mode 100644
index 959ac43..0000000
--- a/tools/src/tools/client-side/color-picker/color-picker/color-picker.component.html
+++ /dev/null
@@ -1,5 +0,0 @@
-
-
-
-
-
\ No newline at end of file
diff --git a/tools/src/tools/client-side/color-picker/color-picker/color-picker.component.scss b/tools/src/tools/client-side/color-picker/color-picker/color-picker.component.scss
deleted file mode 100644
index 179c313..0000000
--- a/tools/src/tools/client-side/color-picker/color-picker/color-picker.component.scss
+++ /dev/null
@@ -1,18 +0,0 @@
-.color-picker {
- display: flex;
- align-items: center;
- gap: 10px;
- }
-
- .color-picker input[type="color"] {
- width: 50px;
- height: 50px;
- border: none;
- cursor: pointer;
- }
-
- .color-picker input[type="text"] {
- padding: 5px;
- font-size: 16px;
- width: 100px;
- }
\ No newline at end of file
diff --git a/tools/src/tools/client-side/guid/guid.component.html b/tools/src/tools/client-side/guid/guid.component.html
index b61258f..8081a8d 100644
--- a/tools/src/tools/client-side/guid/guid.component.html
+++ b/tools/src/tools/client-side/guid/guid.component.html
@@ -1,3 +1,4 @@
+