This commit is contained in:
2026-05-14 00:33:49 +02:00
parent d728d66e3b
commit cf6ba77182
9 changed files with 156 additions and 10 deletions
+99 -2
View File
@@ -14,6 +14,9 @@
"@angular/forms": "^21.2.0", "@angular/forms": "^21.2.0",
"@angular/platform-browser": "^21.2.0", "@angular/platform-browser": "^21.2.0",
"@angular/router": "^21.2.0", "@angular/router": "^21.2.0",
"@primeuix/themes": "^2.0.3",
"primeicons": "^7.0.0",
"primeng": "^21.1.7",
"rxjs": "~7.8.0", "rxjs": "~7.8.0",
"tslib": "^2.3.0" "tslib": "^2.3.0"
}, },
@@ -423,6 +426,23 @@
} }
} }
}, },
"node_modules/@angular/cdk": {
"version": "21.2.10",
"resolved": "https://registry.npmjs.org/@angular/cdk/-/cdk-21.2.10.tgz",
"integrity": "sha512-yfCzUFNfeSMNnCkc0P5Pozqz1EViDe9KLPQyHVY/hApsNgBWvckpA+ZEWgKNfAf72f8bUJvZoHejaSMGYrpvuw==",
"license": "MIT",
"peer": true,
"dependencies": {
"parse5": "^8.0.0",
"tslib": "^2.3.0"
},
"peerDependencies": {
"@angular/common": "^21.0.0 || ^22.0.0",
"@angular/core": "^21.0.0 || ^22.0.0",
"@angular/platform-browser": "^21.0.0 || ^22.0.0",
"rxjs": "^6.5.3 || ^7.4.0"
}
},
"node_modules/@angular/cli": { "node_modules/@angular/cli": {
"version": "21.2.10", "version": "21.2.10",
"resolved": "https://registry.npmjs.org/@angular/cli/-/cli-21.2.10.tgz", "resolved": "https://registry.npmjs.org/@angular/cli/-/cli-21.2.10.tgz",
@@ -3215,6 +3235,57 @@
"license": "MIT", "license": "MIT",
"optional": true "optional": true
}, },
"node_modules/@primeuix/motion": {
"version": "0.0.10",
"resolved": "https://registry.npmjs.org/@primeuix/motion/-/motion-0.0.10.tgz",
"integrity": "sha512-PsZwOPq79Scp7/ionshRcQ5xKVf9+zuLcyY5mf6onK8chHT5C9JGphmcIZ4CzcqxuGEpsm8AIbTGy+zS3RtzLA==",
"license": "MIT",
"dependencies": {
"@primeuix/utils": "^0.6.3"
},
"engines": {
"node": ">=12.11.0"
}
},
"node_modules/@primeuix/styled": {
"version": "0.7.4",
"resolved": "https://registry.npmjs.org/@primeuix/styled/-/styled-0.7.4.tgz",
"integrity": "sha512-QSO/NpOQg8e9BONWRBx9y8VGMCMYz0J/uKfNJEya/RGEu7ARx0oYW0ugI1N3/KB1AAvyGxzKBzGImbwg0KUiOQ==",
"license": "MIT",
"dependencies": {
"@primeuix/utils": "^0.6.1"
},
"engines": {
"node": ">=12.11.0"
}
},
"node_modules/@primeuix/styles": {
"version": "2.0.3",
"resolved": "https://registry.npmjs.org/@primeuix/styles/-/styles-2.0.3.tgz",
"integrity": "sha512-2ykAB6BaHzR/6TwF8ShpJTsZrid6cVIEBVlookSdvOdmlWuevGu5vWOScgIwqWwlZcvkFYAGR/SUV3OHCTBMdw==",
"license": "MIT",
"dependencies": {
"@primeuix/styled": "^0.7.4"
}
},
"node_modules/@primeuix/themes": {
"version": "2.0.3",
"resolved": "https://registry.npmjs.org/@primeuix/themes/-/themes-2.0.3.tgz",
"integrity": "sha512-3fS1883mtCWhgUgNf/feiaaDSOND4EBIOu9tZnzJlJ8QtYyL6eFLcA6V3ymCWqLVXQ1+lTVEZv1gl47FIdXReg==",
"license": "MIT",
"dependencies": {
"@primeuix/styled": "^0.7.4"
}
},
"node_modules/@primeuix/utils": {
"version": "0.6.4",
"resolved": "https://registry.npmjs.org/@primeuix/utils/-/utils-0.6.4.tgz",
"integrity": "sha512-pZ5f+vj7wSzRhC7KoEQRU5fvYAe+RP9+m39CTscZ3UywCD1Y2o6Fe1rRgklMPSkzUcty2jzkA0zMYkiJBD1hgg==",
"license": "MIT",
"engines": {
"node": ">=12.11.0"
}
},
"node_modules/@rolldown/binding-android-arm64": { "node_modules/@rolldown/binding-android-arm64": {
"version": "1.0.0-rc.4", "version": "1.0.0-rc.4",
"resolved": "https://registry.npmjs.org/@rolldown/binding-android-arm64/-/binding-android-arm64-1.0.0-rc.4.tgz", "resolved": "https://registry.npmjs.org/@rolldown/binding-android-arm64/-/binding-android-arm64-1.0.0-rc.4.tgz",
@@ -6935,7 +7006,6 @@
"version": "8.0.1", "version": "8.0.1",
"resolved": "https://registry.npmjs.org/parse5/-/parse5-8.0.1.tgz", "resolved": "https://registry.npmjs.org/parse5/-/parse5-8.0.1.tgz",
"integrity": "sha512-z1e/HMG90obSGeidlli3hj7cbocou0/wa5HacvI3ASx34PecNjNQeaHNo5WIZpWofN9kgkqV1q5YvXe3F0FoPw==", "integrity": "sha512-z1e/HMG90obSGeidlli3hj7cbocou0/wa5HacvI3ASx34PecNjNQeaHNo5WIZpWofN9kgkqV1q5YvXe3F0FoPw==",
"dev": true,
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"entities": "^8.0.0" "entities": "^8.0.0"
@@ -6989,7 +7059,6 @@
"version": "8.0.0", "version": "8.0.0",
"resolved": "https://registry.npmjs.org/entities/-/entities-8.0.0.tgz", "resolved": "https://registry.npmjs.org/entities/-/entities-8.0.0.tgz",
"integrity": "sha512-zwfzJecQ/Uej6tusMqwAqU/6KL2XaB2VZ2Jg54Je6ahNBGNH6Ek6g3jjNCF0fG9EWQKGZNddNjU5F1ZQn/sBnA==", "integrity": "sha512-zwfzJecQ/Uej6tusMqwAqU/6KL2XaB2VZ2Jg54Je6ahNBGNH6Ek6g3jjNCF0fG9EWQKGZNddNjU5F1ZQn/sBnA==",
"dev": true,
"license": "BSD-2-Clause", "license": "BSD-2-Clause",
"engines": { "engines": {
"node": ">=20.19.0" "node": ">=20.19.0"
@@ -7185,6 +7254,34 @@
"url": "https://github.com/prettier/prettier?sponsor=1" "url": "https://github.com/prettier/prettier?sponsor=1"
} }
}, },
"node_modules/primeicons": {
"version": "7.0.0",
"resolved": "https://registry.npmjs.org/primeicons/-/primeicons-7.0.0.tgz",
"integrity": "sha512-jK3Et9UzwzTsd6tzl2RmwrVY/b8raJ3QZLzoDACj+oTJ0oX7L9Hy+XnVwgo4QVKlKpnP/Ur13SXV/pVh4LzaDw==",
"license": "MIT"
},
"node_modules/primeng": {
"version": "21.1.7",
"resolved": "https://registry.npmjs.org/primeng/-/primeng-21.1.7.tgz",
"integrity": "sha512-iKls1Yv+IQfgtSADpLZBDOkrTgfrZcW42gONeaaj5eqgtOU0SHGg1wuBLKPu+xWidD8sa5f8vBkmc+Q7uUKRJw==",
"license": "SEE LICENSE IN LICENSE.md",
"dependencies": {
"@primeuix/motion": "^0.0.10",
"@primeuix/styled": "^0.7.4",
"@primeuix/styles": "^2.0.3",
"@primeuix/utils": "^0.6.3",
"tslib": "^2.3.0"
},
"peerDependencies": {
"@angular/cdk": "^21.0.0",
"@angular/common": "^21.0.0",
"@angular/core": "^21.0.7",
"@angular/forms": "^21.0.0",
"@angular/platform-browser": "^21.0.0",
"@angular/router": "^21.0.0",
"rxjs": "^6.0.0 || ^7.8.1"
}
},
"node_modules/proc-log": { "node_modules/proc-log": {
"version": "6.1.0", "version": "6.1.0",
"resolved": "https://registry.npmjs.org/proc-log/-/proc-log-6.1.0.tgz", "resolved": "https://registry.npmjs.org/proc-log/-/proc-log-6.1.0.tgz",
+4 -1
View File
@@ -17,6 +17,9 @@
"@angular/forms": "^21.2.0", "@angular/forms": "^21.2.0",
"@angular/platform-browser": "^21.2.0", "@angular/platform-browser": "^21.2.0",
"@angular/router": "^21.2.0", "@angular/router": "^21.2.0",
"@primeuix/themes": "^2.0.3",
"primeicons": "^7.0.0",
"primeng": "^21.1.7",
"rxjs": "~7.8.0", "rxjs": "~7.8.0",
"tslib": "^2.3.0" "tslib": "^2.3.0"
}, },
@@ -29,4 +32,4 @@
"typescript": "~5.9.2", "typescript": "~5.9.2",
"vitest": "^4.0.8" "vitest": "^4.0.8"
} }
} }
+8 -1
View File
@@ -1,11 +1,18 @@
import { ApplicationConfig, provideBrowserGlobalErrorListeners } from '@angular/core'; import { ApplicationConfig, provideBrowserGlobalErrorListeners } from '@angular/core';
import { provideRouter } from '@angular/router'; import { provideRouter } from '@angular/router';
import { providePrimeNG } from 'primeng/config';
import Aura from '@primeuix/themes/aura';
import { routes } from './app.routes'; import { routes } from './app.routes';
export const appConfig: ApplicationConfig = { export const appConfig: ApplicationConfig = {
providers: [ providers: [
provideBrowserGlobalErrorListeners(), provideBrowserGlobalErrorListeners(),
provideRouter(routes) provideRouter(routes),
providePrimeNG({
theme: {
preset: Aura
}
})
] ]
}; };
+1 -2
View File
@@ -1,6 +1,5 @@
<main class="main"> <main class="main">
<h1>Search Dispatcher</h1> <p-menubar [model]="items" />
<p>Search with Intent</p>
<div class="content"> <div class="content">
<router-outlet /> <router-outlet />
</div> </div>
+12
View File
@@ -0,0 +1,12 @@
* {
font-family:
Seravek, 'Gill Sans Nova', Ubuntu, Calibri, 'DejaVu Sans', source-sans-pro, sans-serif;
font-weight: normal;
}
h1,
h2,
h3,
h4 {
font-weight: bolde;
}
+27 -3
View File
@@ -1,13 +1,37 @@
import { Component, signal } from '@angular/core'; import { Component, OnInit, signal } from '@angular/core';
import { RouterOutlet } from '@angular/router'; import { RouterOutlet } from '@angular/router';
import { SearchBox } from './search-box/search-box'; import { SearchBox } from './search-box/search-box';
import { MenubarModule } from 'primeng/menubar';
import { MenuItem } from 'primeng/api';
@Component({ @Component({
selector: 'app-root', selector: 'app-root',
imports: [RouterOutlet, SearchBox], imports: [RouterOutlet, SearchBox, MenubarModule],
templateUrl: './app.html', templateUrl: './app.html',
styleUrl: './app.scss', styleUrl: './app.scss',
}) })
export class App { export class App implements OnInit {
protected readonly title = signal('search-dispatcher'); protected readonly title = signal('search-dispatcher');
items: MenuItem[] | undefined;
ngOnInit() {
this.items = [
{
label: 'Home',
icon: 'pi pi-home',
url: '/',
},
{
label: 'Settings',
icon: 'pi pi-cog',
url: '/settings',
},
{
label: 'Contact',
icon: 'pi pi-envelope',
url: 'mailto:anthony@dumas.cc',
tooltip: 'Contact the maintener.',
},
];
}
} }
+2
View File
@@ -6,3 +6,5 @@
<button type="submit">Search</button> <button type="submit">Search</button>
</form> </form>
<p-button label="Check" />
+2 -1
View File
@@ -1,6 +1,7 @@
import { Component, signal, ChangeDetectionStrategy, inject } from '@angular/core'; import { Component, signal, ChangeDetectionStrategy, inject } from '@angular/core';
import { form, FormField, required } from '@angular/forms/signals'; import { form, FormField, required } from '@angular/forms/signals';
import { Router } from '@angular/router'; import { Router } from '@angular/router';
import { ButtonModule } from 'primeng/button';
interface SearchObject { interface SearchObject {
term: string; term: string;
@@ -9,7 +10,7 @@ interface SearchObject {
@Component({ @Component({
selector: 'sd-search-box', selector: 'sd-search-box',
imports: [FormField], imports: [FormField, ButtonModule],
templateUrl: './search-box.html', templateUrl: './search-box.html',
styleUrl: './search-box.scss', styleUrl: './search-box.scss',
changeDetection: ChangeDetectionStrategy.OnPush, changeDetection: ChangeDetectionStrategy.OnPush,
+1
View File
@@ -1 +1,2 @@
/* You can add global styles to this file, and also import other style files */ /* You can add global styles to this file, and also import other style files */
@import 'primeicons/primeicons.css';