13 |
19 |
20 | @_totalItemCount Results (@_tookInSeconds seconds)
21 |
22 |
23 |
24 | @foreach (var searchResult in _searchResults)
25 | {
26 |
27 | }
28 |
29 |
30 |
31 |
34 |
--------------------------------------------------------------------------------
/src/ElasticsearchFulltextExample.Web.Client/Pages/Search.razor.css:
--------------------------------------------------------------------------------
1 | .search-container {
2 | display: grid;
3 | height: 100%;
4 | grid-template-rows: auto auto 1fr auto;
5 | grid-template-columns: 1fr;
6 | grid-row-gap: 10px;
7 | grid-template-areas:
8 | "search-header"
9 | "search-results-total"
10 | "search-results"
11 | "search-paginator"
12 | }
13 |
14 | .search-header {
15 | display: grid;
16 | grid-area: search-header;
17 | grid-template-columns: minmax(auto, 900px);
18 | grid-template-rows: auto 1fr;
19 | justify-content: center;
20 | padding: 1rem;
21 | border-bottom: 1px solid var(--neutral-foreground-rest);
22 | }
23 |
24 | .search-header .search-title {
25 | color: black;
26 | }
27 |
28 | .search-title {
29 | display: grid;
30 | justify-content: center;
31 | }
32 |
33 | .search-box {
34 | display: grid;
35 | min-width: 500px;
36 | justify-content: center;
37 | grid-template-columns: 1fr auto auto;
38 | grid-column-gap: 10px;
39 | }
40 |
41 | .search-results-total {
42 | display: grid;
43 | grid-area: search-results-total;
44 | justify-content: center;
45 | grid-template-columns: auto;
46 | }
47 |
48 | .search-results {
49 | display: grid;
50 | grid-area: search-results;
51 | grid-template-columns: 1fr;
52 | grid-auto-rows: max-content;
53 | max-width: 1000px;
54 | margin: 0 auto;
55 | grid-row-gap: 20px;
56 | width: 100%;
57 | }
58 |
59 | .search-paginator {
60 | display: grid;
61 | grid-area: search-paginator;
62 | min-width: 500px;
63 | justify-content: center;
64 | grid-template-columns: auto;
65 | }
66 |
--------------------------------------------------------------------------------
/src/ElasticsearchFulltextExample.Web.Client/Pages/Upload.razor.css:
--------------------------------------------------------------------------------
1 | .upload-form {
2 | display: grid;
3 | grid-template-columns: 100px 1fr 150px;
4 | border: 1px solid black;
5 | }
6 |
7 | .upload-form .upload-label {
8 | grid-column: 1 / 2;
9 | align-content: center;
10 | padding: 10px;
11 | border-right: 1px solid black;
12 | border-bottom: 1px solid black;
13 | }
14 |
15 | .upload-form .upload-input {
16 | grid-column: 2 / 3;
17 | align-content: center;
18 | padding: 10px;
19 | border-bottom: 1px solid black;
20 | }
21 |
22 | .upload-form .upload-validation {
23 | grid-column: 3 / 4;
24 | align-content: center;
25 | padding: 10px;
26 | border-bottom: 1px solid black;
27 | }
28 |
29 | .upload-form .upload-buttons {
30 | grid-column: 1 / 4;
31 | padding: 10px;
32 | }
33 |
34 | .w-100 {
35 | width: 100%;
36 | }
37 |
38 | .form-input {
39 | width: 200px;
40 | }
41 |
--------------------------------------------------------------------------------
/src/ElasticsearchFulltextExample.Web.Client/Program.cs:
--------------------------------------------------------------------------------
1 | // Licensed under the MIT license. See LICENSE file in the project root for full license information.
2 |
3 | using Microsoft.AspNetCore.Components.WebAssembly.Hosting;
4 | using Microsoft.FluentUI.AspNetCore.Components;
5 | using ElasticsearchFulltextExample.Shared.Client;
6 | using ElasticsearchFulltextExample.Web.Client.Infrastructure;
7 |
8 | var builder = WebAssemblyHostBuilder.CreateDefault(args);
9 |
10 | builder.Services.AddScoped