@memberjunction/ng-search 5.22.0 → 5.24.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -6,260 +6,449 @@
6
6
  * in the Knowledge Hub search dashboard.
7
7
  */
8
8
  import { Component, EventEmitter, Input, Output, ChangeDetectorRef, inject } from '@angular/core';
9
+ import { Metadata } from '@memberjunction/core';
9
10
  import * as i0 from "@angular/core";
10
- import * as i1 from "@memberjunction/ng-shared-generic";
11
- const _forTrack0 = ($index, $item) => $item.SourceType;
12
- const _forTrack1 = ($index, $item) => $item.ID;
11
+ import * as i1 from "@angular/common";
12
+ import * as i2 from "@memberjunction/ng-shared-generic";
13
+ const _c0 = a0 => ({ $implicit: a0 });
14
+ const _forTrack0 = ($index, $item) => $item.ID;
15
+ const _forTrack1 = ($index, $item) => $item.SourceType;
16
+ const _forTrack2 = ($index, $item) => $item.Value;
13
17
  function SearchResultsComponent_Conditional_0_Template(rf, ctx) { if (rf & 1) {
14
- i0.ɵɵelementStart(0, "div", 0);
15
- i0.ɵɵelement(1, "mj-loading", 2);
18
+ i0.ɵɵelementStart(0, "div", 1);
19
+ i0.ɵɵelement(1, "mj-loading", 3);
16
20
  i0.ɵɵelementEnd();
17
21
  } }
18
22
  function SearchResultsComponent_Conditional_1_Template(rf, ctx) { if (rf & 1) {
19
- i0.ɵɵelementStart(0, "div", 1);
20
- i0.ɵɵelement(1, "i", 3);
21
- i0.ɵɵelementStart(2, "p", 4);
23
+ i0.ɵɵelementStart(0, "div", 2);
24
+ i0.ɵɵelement(1, "i", 4);
25
+ i0.ɵɵelementStart(2, "p", 5);
22
26
  i0.ɵɵtext(3, "No results to display");
23
27
  i0.ɵɵelementEnd()();
24
28
  } }
25
- function SearchResultsComponent_Conditional_2_Conditional_3_Template(rf, ctx) { if (rf & 1) {
26
- i0.ɵɵelementStart(0, "span", 6);
29
+ function SearchResultsComponent_Conditional_2_Conditional_0_Conditional_3_Template(rf, ctx) { if (rf & 1) {
30
+ i0.ɵɵelementStart(0, "span", 7);
27
31
  i0.ɵɵtext(1);
28
32
  i0.ɵɵelementEnd();
29
33
  } if (rf & 2) {
30
- const ctx_r0 = i0.ɵɵnextContext(2);
34
+ const ctx_r0 = i0.ɵɵnextContext(3);
31
35
  i0.ɵɵadvance();
32
36
  i0.ɵɵtextInterpolate1(" in ", ctx_r0.FormatTime(ctx_r0.ElapsedMs));
33
37
  } }
34
- function SearchResultsComponent_Conditional_2_For_5_Conditional_2_Template(rf, ctx) { if (rf & 1) {
38
+ function SearchResultsComponent_Conditional_2_Conditional_0_Template(rf, ctx) { if (rf & 1) {
39
+ i0.ɵɵelementStart(0, "div", 6)(1, "span");
40
+ i0.ɵɵtext(2);
41
+ i0.ɵɵelementEnd();
42
+ i0.ɵɵconditionalCreate(3, SearchResultsComponent_Conditional_2_Conditional_0_Conditional_3_Template, 2, 1, "span", 7);
43
+ i0.ɵɵelementEnd();
44
+ } if (rf & 2) {
45
+ const ctx_r0 = i0.ɵɵnextContext(2);
46
+ i0.ɵɵadvance(2);
47
+ i0.ɵɵtextInterpolate1("", ctx_r0.TotalCount, " results");
48
+ i0.ɵɵadvance();
49
+ i0.ɵɵconditional(ctx_r0.ElapsedMs > 0 ? 3 : -1);
50
+ } }
51
+ function SearchResultsComponent_Conditional_2_Conditional_1_For_2_ng_container_0_Template(rf, ctx) { if (rf & 1) {
52
+ i0.ɵɵelementContainer(0);
53
+ } }
54
+ function SearchResultsComponent_Conditional_2_Conditional_1_For_2_Template(rf, ctx) { if (rf & 1) {
55
+ i0.ɵɵtemplate(0, SearchResultsComponent_Conditional_2_Conditional_1_For_2_ng_container_0_Template, 1, 0, "ng-container", 10);
56
+ } if (rf & 2) {
57
+ const result_r2 = ctx.$implicit;
58
+ i0.ɵɵnextContext(3);
59
+ const resultCardTpl_r3 = i0.ɵɵreference(4);
60
+ i0.ɵɵproperty("ngTemplateOutlet", resultCardTpl_r3)("ngTemplateOutletContext", i0.ɵɵpureFunction1(2, _c0, result_r2));
61
+ } }
62
+ function SearchResultsComponent_Conditional_2_Conditional_1_Conditional_3_For_4_Conditional_0_Template(rf, ctx) { if (rf & 1) {
63
+ i0.ɵɵelementStart(0, "span", 15);
64
+ i0.ɵɵtext(1, "...");
65
+ i0.ɵɵelementEnd();
66
+ } }
67
+ function SearchResultsComponent_Conditional_2_Conditional_1_Conditional_3_For_4_Conditional_1_Template(rf, ctx) { if (rf & 1) {
68
+ const _r5 = i0.ɵɵgetCurrentView();
69
+ i0.ɵɵelementStart(0, "button", 17);
70
+ i0.ɵɵlistener("click", function SearchResultsComponent_Conditional_2_Conditional_1_Conditional_3_For_4_Conditional_1_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r5); const p_r6 = i0.ɵɵnextContext().$implicit; const ctx_r0 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r0.GoToPage(p_r6)); });
71
+ i0.ɵɵtext(1);
72
+ i0.ɵɵelementEnd();
73
+ } if (rf & 2) {
74
+ const p_r6 = i0.ɵɵnextContext().$implicit;
75
+ const ctx_r0 = i0.ɵɵnextContext(4);
76
+ i0.ɵɵclassProp("pager-active", p_r6 === ctx_r0.CurrentPage);
77
+ i0.ɵɵadvance();
78
+ i0.ɵɵtextInterpolate(p_r6);
79
+ } }
80
+ function SearchResultsComponent_Conditional_2_Conditional_1_Conditional_3_For_4_Template(rf, ctx) { if (rf & 1) {
81
+ i0.ɵɵconditionalCreate(0, SearchResultsComponent_Conditional_2_Conditional_1_Conditional_3_For_4_Conditional_0_Template, 2, 0, "span", 15)(1, SearchResultsComponent_Conditional_2_Conditional_1_Conditional_3_For_4_Conditional_1_Template, 2, 3, "button", 16);
82
+ } if (rf & 2) {
83
+ const p_r6 = ctx.$implicit;
84
+ i0.ɵɵconditional(p_r6 === -1 ? 0 : 1);
85
+ } }
86
+ function SearchResultsComponent_Conditional_2_Conditional_1_Conditional_3_Template(rf, ctx) { if (rf & 1) {
87
+ const _r4 = i0.ɵɵgetCurrentView();
88
+ i0.ɵɵelementStart(0, "div", 9)(1, "button", 11);
89
+ i0.ɵɵlistener("click", function SearchResultsComponent_Conditional_2_Conditional_1_Conditional_3_Template_button_click_1_listener() { i0.ɵɵrestoreView(_r4); const ctx_r0 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r0.GoToPage(ctx_r0.CurrentPage - 1)); });
90
+ i0.ɵɵelement(2, "i", 12);
91
+ i0.ɵɵelementEnd();
92
+ i0.ɵɵrepeaterCreate(3, SearchResultsComponent_Conditional_2_Conditional_1_Conditional_3_For_4_Template, 2, 1, null, null, i0.ɵɵrepeaterTrackByIndex);
93
+ i0.ɵɵelementStart(5, "button", 13);
94
+ i0.ɵɵlistener("click", function SearchResultsComponent_Conditional_2_Conditional_1_Conditional_3_Template_button_click_5_listener() { i0.ɵɵrestoreView(_r4); const ctx_r0 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r0.GoToPage(ctx_r0.CurrentPage + 1)); });
95
+ i0.ɵɵelement(6, "i", 14);
96
+ i0.ɵɵelementEnd()();
97
+ } if (rf & 2) {
98
+ const ctx_r0 = i0.ɵɵnextContext(3);
99
+ i0.ɵɵadvance();
100
+ i0.ɵɵproperty("disabled", ctx_r0.CurrentPage === 1);
101
+ i0.ɵɵadvance(2);
102
+ i0.ɵɵrepeater(ctx_r0.PageNumbers);
103
+ i0.ɵɵadvance(2);
104
+ i0.ɵɵproperty("disabled", ctx_r0.CurrentPage === ctx_r0.TotalPages);
105
+ } }
106
+ function SearchResultsComponent_Conditional_2_Conditional_1_Template(rf, ctx) { if (rf & 1) {
107
+ i0.ɵɵelementStart(0, "div", 8);
108
+ i0.ɵɵrepeaterCreate(1, SearchResultsComponent_Conditional_2_Conditional_1_For_2_Template, 1, 4, "ng-container", null, _forTrack0);
109
+ i0.ɵɵelementEnd();
110
+ i0.ɵɵconditionalCreate(3, SearchResultsComponent_Conditional_2_Conditional_1_Conditional_3_Template, 7, 2, "div", 9);
111
+ } if (rf & 2) {
112
+ const ctx_r0 = i0.ɵɵnextContext(2);
113
+ i0.ɵɵadvance();
114
+ i0.ɵɵrepeater(ctx_r0.PagedResults);
115
+ i0.ɵɵadvance(2);
116
+ i0.ɵɵconditional(ctx_r0.TotalPages > 1 ? 3 : -1);
117
+ } }
118
+ function SearchResultsComponent_Conditional_2_Conditional_2_For_1_Conditional_2_Template(rf, ctx) { if (rf & 1) {
35
119
  i0.ɵɵelement(0, "i");
36
120
  } if (rf & 2) {
37
- const group_r3 = i0.ɵɵnextContext().$implicit;
38
- i0.ɵɵclassMap(group_r3.Icon + " results-group-icon");
121
+ const group_r8 = i0.ɵɵnextContext().$implicit;
122
+ i0.ɵɵclassMap(group_r8.Icon + " results-group-icon");
123
+ } }
124
+ function SearchResultsComponent_Conditional_2_Conditional_2_For_1_For_9_ng_container_0_Template(rf, ctx) { if (rf & 1) {
125
+ i0.ɵɵelementContainer(0);
126
+ } }
127
+ function SearchResultsComponent_Conditional_2_Conditional_2_For_1_For_9_Template(rf, ctx) { if (rf & 1) {
128
+ i0.ɵɵtemplate(0, SearchResultsComponent_Conditional_2_Conditional_2_For_1_For_9_ng_container_0_Template, 1, 0, "ng-container", 10);
129
+ } if (rf & 2) {
130
+ const result_r9 = ctx.$implicit;
131
+ i0.ɵɵnextContext(4);
132
+ const resultCardTpl_r3 = i0.ɵɵreference(4);
133
+ i0.ɵɵproperty("ngTemplateOutlet", resultCardTpl_r3)("ngTemplateOutletContext", i0.ɵɵpureFunction1(2, _c0, result_r9));
134
+ } }
135
+ function SearchResultsComponent_Conditional_2_Conditional_2_For_1_Conditional_10_Template(rf, ctx) { if (rf & 1) {
136
+ const _r10 = i0.ɵɵgetCurrentView();
137
+ i0.ɵɵelementStart(0, "button", 25);
138
+ i0.ɵɵlistener("click", function SearchResultsComponent_Conditional_2_Conditional_2_For_1_Conditional_10_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r10); const group_r8 = i0.ɵɵnextContext().$implicit; const ctx_r0 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r0.ToggleGroup(group_r8.SourceType)); });
139
+ i0.ɵɵelement(1, "i", 26);
140
+ i0.ɵɵtext(2);
141
+ i0.ɵɵelementEnd();
142
+ } if (rf & 2) {
143
+ const group_r8 = i0.ɵɵnextContext().$implicit;
144
+ const ctx_r0 = i0.ɵɵnextContext(3);
145
+ i0.ɵɵadvance(2);
146
+ i0.ɵɵtextInterpolate1(" Show ", ctx_r0.GetHiddenCount(group_r8), " more results ");
147
+ } }
148
+ function SearchResultsComponent_Conditional_2_Conditional_2_For_1_Template(rf, ctx) { if (rf & 1) {
149
+ const _r7 = i0.ɵɵgetCurrentView();
150
+ i0.ɵɵelementStart(0, "div", 18)(1, "div", 19);
151
+ i0.ɵɵlistener("click", function SearchResultsComponent_Conditional_2_Conditional_2_For_1_Template_div_click_1_listener() { const group_r8 = i0.ɵɵrestoreView(_r7).$implicit; const ctx_r0 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r0.ToggleGroup(group_r8.SourceType)); });
152
+ i0.ɵɵconditionalCreate(2, SearchResultsComponent_Conditional_2_Conditional_2_For_1_Conditional_2_Template, 1, 2, "i", 20);
153
+ i0.ɵɵelementStart(3, "span", 21);
154
+ i0.ɵɵtext(4);
155
+ i0.ɵɵelementEnd();
156
+ i0.ɵɵelementStart(5, "span", 22);
157
+ i0.ɵɵtext(6);
158
+ i0.ɵɵelementEnd();
159
+ i0.ɵɵelement(7, "i", 23);
160
+ i0.ɵɵelementEnd();
161
+ i0.ɵɵrepeaterCreate(8, SearchResultsComponent_Conditional_2_Conditional_2_For_1_For_9_Template, 1, 4, "ng-container", null, _forTrack0);
162
+ i0.ɵɵconditionalCreate(10, SearchResultsComponent_Conditional_2_Conditional_2_For_1_Conditional_10_Template, 3, 1, "button", 24);
163
+ i0.ɵɵelementEnd();
164
+ } if (rf & 2) {
165
+ const group_r8 = ctx.$implicit;
166
+ const ctx_r0 = i0.ɵɵnextContext(3);
167
+ i0.ɵɵadvance(2);
168
+ i0.ɵɵconditional(ctx_r0.ShowSourceIcons ? 2 : -1);
169
+ i0.ɵɵadvance(2);
170
+ i0.ɵɵtextInterpolate(group_r8.Label);
171
+ i0.ɵɵadvance(2);
172
+ i0.ɵɵtextInterpolate1("(", group_r8.TotalCount, ")");
173
+ i0.ɵɵadvance();
174
+ i0.ɵɵclassProp("fa-chevron-down", !ctx_r0.IsGroupExpanded(group_r8.SourceType))("fa-chevron-up", ctx_r0.IsGroupExpanded(group_r8.SourceType));
175
+ i0.ɵɵadvance();
176
+ i0.ɵɵrepeater(ctx_r0.GetVisibleResults(group_r8));
177
+ i0.ɵɵadvance(2);
178
+ i0.ɵɵconditional(ctx_r0.HasMoreResults(group_r8) ? 10 : -1);
179
+ } }
180
+ function SearchResultsComponent_Conditional_2_Conditional_2_Template(rf, ctx) { if (rf & 1) {
181
+ i0.ɵɵrepeaterCreate(0, SearchResultsComponent_Conditional_2_Conditional_2_For_1_Template, 11, 8, "div", 18, _forTrack1);
182
+ } if (rf & 2) {
183
+ const ctx_r0 = i0.ɵɵnextContext(2);
184
+ i0.ɵɵrepeater(ctx_r0.ResultGroups);
185
+ } }
186
+ function SearchResultsComponent_Conditional_2_Template(rf, ctx) { if (rf & 1) {
187
+ i0.ɵɵconditionalCreate(0, SearchResultsComponent_Conditional_2_Conditional_0_Template, 4, 2, "div", 6);
188
+ i0.ɵɵconditionalCreate(1, SearchResultsComponent_Conditional_2_Conditional_1_Template, 4, 1)(2, SearchResultsComponent_Conditional_2_Conditional_2_Template, 2, 0);
189
+ } if (rf & 2) {
190
+ const ctx_r0 = i0.ɵɵnextContext();
191
+ i0.ɵɵconditional(ctx_r0.ShowSummary ? 0 : -1);
192
+ i0.ɵɵadvance();
193
+ i0.ɵɵconditional(ctx_r0.DisplayMode === "flat" ? 1 : 2);
194
+ } }
195
+ function SearchResultsComponent_ng_template_3_Conditional_9_For_2_Template(rf, ctx) { if (rf & 1) {
196
+ i0.ɵɵelementStart(0, "span", 41);
197
+ i0.ɵɵtext(1);
198
+ i0.ɵɵelementEnd();
199
+ } if (rf & 2) {
200
+ const tag_r13 = ctx.$implicit;
201
+ i0.ɵɵadvance();
202
+ i0.ɵɵtextInterpolate(tag_r13);
39
203
  } }
40
- function SearchResultsComponent_Conditional_2_For_5_For_9_Conditional_9_Template(rf, ctx) { if (rf & 1) {
41
- i0.ɵɵelementStart(0, "div", 21)(1, "div", 28)(2, "span", 29);
204
+ function SearchResultsComponent_ng_template_3_Conditional_9_Conditional_3_Template(rf, ctx) { if (rf & 1) {
205
+ i0.ɵɵelementStart(0, "span", 42);
206
+ i0.ɵɵtext(1);
207
+ i0.ɵɵelementEnd();
208
+ } if (rf & 2) {
209
+ const result_r12 = i0.ɵɵnextContext(2).$implicit;
210
+ i0.ɵɵadvance();
211
+ i0.ɵɵtextInterpolate1("+", result_r12.Tags.length - 5);
212
+ } }
213
+ function SearchResultsComponent_ng_template_3_Conditional_9_Template(rf, ctx) { if (rf & 1) {
214
+ i0.ɵɵelementStart(0, "div", 33);
215
+ i0.ɵɵrepeaterCreate(1, SearchResultsComponent_ng_template_3_Conditional_9_For_2_Template, 2, 1, "span", 41, i0.ɵɵrepeaterTrackByIdentity);
216
+ i0.ɵɵconditionalCreate(3, SearchResultsComponent_ng_template_3_Conditional_9_Conditional_3_Template, 2, 1, "span", 42);
217
+ i0.ɵɵelementEnd();
218
+ } if (rf & 2) {
219
+ const result_r12 = i0.ɵɵnextContext().$implicit;
220
+ i0.ɵɵadvance();
221
+ i0.ɵɵrepeater(result_r12.Tags.slice(0, 5));
222
+ i0.ɵɵadvance(2);
223
+ i0.ɵɵconditional(result_r12.Tags.length > 5 ? 3 : -1);
224
+ } }
225
+ function SearchResultsComponent_ng_template_3_Conditional_10_Template(rf, ctx) { if (rf & 1) {
226
+ i0.ɵɵelementStart(0, "div", 34)(1, "div", 43)(2, "span", 44);
42
227
  i0.ɵɵtext(3);
43
228
  i0.ɵɵelementEnd()()();
44
229
  } if (rf & 2) {
45
- const result_r5 = i0.ɵɵnextContext().$implicit;
46
- const ctx_r0 = i0.ɵɵnextContext(3);
230
+ const result_r12 = i0.ɵɵnextContext().$implicit;
231
+ const ctx_r0 = i0.ɵɵnextContext();
47
232
  i0.ɵɵadvance(3);
48
- i0.ɵɵtextInterpolate(ctx_r0.FormatScore(result_r5.Score));
233
+ i0.ɵɵtextInterpolate(ctx_r0.FormatScore(result_r12.Score));
49
234
  } }
50
- function SearchResultsComponent_Conditional_2_For_5_For_9_Conditional_15_Conditional_1_Template(rf, ctx) { if (rf & 1) {
51
- i0.ɵɵelementStart(0, "div", 30)(1, "span", 40);
235
+ function SearchResultsComponent_ng_template_3_Conditional_16_Conditional_1_Template(rf, ctx) { if (rf & 1) {
236
+ i0.ɵɵelementStart(0, "div", 45)(1, "span", 58);
52
237
  i0.ɵɵtext(2, "Preview");
53
238
  i0.ɵɵelementEnd();
54
- i0.ɵɵelementStart(3, "p", 41);
239
+ i0.ɵɵelementStart(3, "p", 59);
55
240
  i0.ɵɵtext(4);
56
241
  i0.ɵɵelementEnd()();
57
242
  } if (rf & 2) {
58
- const result_r5 = i0.ɵɵnextContext(2).$implicit;
243
+ const result_r12 = i0.ɵɵnextContext(2).$implicit;
59
244
  i0.ɵɵadvance(4);
60
- i0.ɵɵtextInterpolate(result_r5.Snippet);
245
+ i0.ɵɵtextInterpolate(result_r12.Snippet);
61
246
  } }
62
- function SearchResultsComponent_Conditional_2_For_5_For_9_Conditional_15_Conditional_15_Conditional_3_Template(rf, ctx) { if (rf & 1) {
247
+ function SearchResultsComponent_ng_template_3_Conditional_16_Conditional_15_Conditional_3_Template(rf, ctx) { if (rf & 1) {
63
248
  i0.ɵɵtext(0);
64
249
  } if (rf & 2) {
65
- const result_r5 = i0.ɵɵnextContext(3).$implicit;
66
- i0.ɵɵtextInterpolate1(" Vector: ", (result_r5.ScoreBreakdown.Vector * 100).toFixed(0), "% ");
250
+ const result_r12 = i0.ɵɵnextContext(3).$implicit;
251
+ const ctx_r0 = i0.ɵɵnextContext();
252
+ i0.ɵɵtextInterpolate1(" Vector: ", ctx_r0.FormatScore(result_r12.ScoreBreakdown.Vector), " ");
67
253
  } }
68
- function SearchResultsComponent_Conditional_2_For_5_For_9_Conditional_15_Conditional_15_Conditional_4_Template(rf, ctx) { if (rf & 1) {
254
+ function SearchResultsComponent_ng_template_3_Conditional_16_Conditional_15_Conditional_4_Template(rf, ctx) { if (rf & 1) {
69
255
  i0.ɵɵtext(0);
70
256
  } if (rf & 2) {
71
- const result_r5 = i0.ɵɵnextContext(3).$implicit;
72
- i0.ɵɵtextInterpolate1(" FTS: ", (result_r5.ScoreBreakdown.FullText * 100).toFixed(0), "% ");
257
+ const result_r12 = i0.ɵɵnextContext(3).$implicit;
258
+ const ctx_r0 = i0.ɵɵnextContext();
259
+ i0.ɵɵtextInterpolate1(" FTS: ", ctx_r0.FormatScore(result_r12.ScoreBreakdown.FullText), " ");
73
260
  } }
74
- function SearchResultsComponent_Conditional_2_For_5_For_9_Conditional_15_Conditional_15_Template(rf, ctx) { if (rf & 1) {
75
- i0.ɵɵelementStart(0, "div", 32);
76
- i0.ɵɵelement(1, "i", 42);
261
+ function SearchResultsComponent_ng_template_3_Conditional_16_Conditional_15_Template(rf, ctx) { if (rf & 1) {
262
+ i0.ɵɵelementStart(0, "div", 47);
263
+ i0.ɵɵelement(1, "i", 60);
77
264
  i0.ɵɵelementStart(2, "span");
78
- i0.ɵɵconditionalCreate(3, SearchResultsComponent_Conditional_2_For_5_For_9_Conditional_15_Conditional_15_Conditional_3_Template, 1, 1);
79
- i0.ɵɵconditionalCreate(4, SearchResultsComponent_Conditional_2_For_5_For_9_Conditional_15_Conditional_15_Conditional_4_Template, 1, 1);
265
+ i0.ɵɵconditionalCreate(3, SearchResultsComponent_ng_template_3_Conditional_16_Conditional_15_Conditional_3_Template, 1, 1);
266
+ i0.ɵɵconditionalCreate(4, SearchResultsComponent_ng_template_3_Conditional_16_Conditional_15_Conditional_4_Template, 1, 1);
80
267
  i0.ɵɵelementEnd()();
81
268
  } if (rf & 2) {
82
- const result_r5 = i0.ɵɵnextContext(2).$implicit;
269
+ const result_r12 = i0.ɵɵnextContext(2).$implicit;
83
270
  i0.ɵɵadvance(3);
84
- i0.ɵɵconditional(result_r5.ScoreBreakdown.Vector ? 3 : -1);
271
+ i0.ɵɵconditional(result_r12.ScoreBreakdown.Vector ? 3 : -1);
85
272
  i0.ɵɵadvance();
86
- i0.ɵɵconditional(result_r5.ScoreBreakdown.FullText ? 4 : -1);
273
+ i0.ɵɵconditional(result_r12.ScoreBreakdown.FullText ? 4 : -1);
87
274
  } }
88
- function SearchResultsComponent_Conditional_2_For_5_For_9_Conditional_15_Conditional_16_For_2_Template(rf, ctx) { if (rf & 1) {
89
- i0.ɵɵelementStart(0, "span", 43);
275
+ function SearchResultsComponent_ng_template_3_Conditional_16_Conditional_16_For_2_Template(rf, ctx) { if (rf & 1) {
276
+ i0.ɵɵelementStart(0, "span", 61);
90
277
  i0.ɵɵtext(1);
91
278
  i0.ɵɵelementEnd();
92
279
  } if (rf & 2) {
93
- const tag_r7 = ctx.$implicit;
280
+ const tag_r15 = ctx.$implicit;
94
281
  i0.ɵɵadvance();
95
- i0.ɵɵtextInterpolate(tag_r7);
282
+ i0.ɵɵtextInterpolate(tag_r15);
96
283
  } }
97
- function SearchResultsComponent_Conditional_2_For_5_For_9_Conditional_15_Conditional_16_Template(rf, ctx) { if (rf & 1) {
98
- i0.ɵɵelementStart(0, "div", 37);
99
- i0.ɵɵrepeaterCreate(1, SearchResultsComponent_Conditional_2_For_5_For_9_Conditional_15_Conditional_16_For_2_Template, 2, 1, "span", 43, i0.ɵɵrepeaterTrackByIdentity);
284
+ function SearchResultsComponent_ng_template_3_Conditional_16_Conditional_16_Template(rf, ctx) { if (rf & 1) {
285
+ i0.ɵɵelementStart(0, "div", 52);
286
+ i0.ɵɵrepeaterCreate(1, SearchResultsComponent_ng_template_3_Conditional_16_Conditional_16_For_2_Template, 2, 1, "span", 61, i0.ɵɵrepeaterTrackByIdentity);
100
287
  i0.ɵɵelementEnd();
101
288
  } if (rf & 2) {
102
- const result_r5 = i0.ɵɵnextContext(2).$implicit;
289
+ const result_r12 = i0.ɵɵnextContext(2).$implicit;
103
290
  i0.ɵɵadvance();
104
- i0.ɵɵrepeater(result_r5.Tags);
105
- } }
106
- function SearchResultsComponent_Conditional_2_For_5_For_9_Conditional_15_Template(rf, ctx) { if (rf & 1) {
107
- const _r6 = i0.ɵɵgetCurrentView();
108
- i0.ɵɵelementStart(0, "div", 27);
109
- i0.ɵɵconditionalCreate(1, SearchResultsComponent_Conditional_2_For_5_For_9_Conditional_15_Conditional_1_Template, 5, 1, "div", 30);
110
- i0.ɵɵelementStart(2, "div", 31)(3, "div", 32);
111
- i0.ɵɵelement(4, "i", 33);
291
+ i0.ɵɵrepeater(result_r12.Tags);
292
+ } }
293
+ function SearchResultsComponent_ng_template_3_Conditional_16_Conditional_17_For_2_Conditional_0_Template(rf, ctx) { if (rf & 1) {
294
+ const _r16 = i0.ɵɵgetCurrentView();
295
+ i0.ɵɵelementStart(0, "a", 64);
296
+ i0.ɵɵlistener("click", function SearchResultsComponent_ng_template_3_Conditional_16_Conditional_17_For_2_Conditional_0_Template_a_click_0_listener($event) { i0.ɵɵrestoreView(_r16); return i0.ɵɵresetView($event.stopPropagation()); });
297
+ i0.ɵɵelement(1, "i", 37);
298
+ i0.ɵɵtext(2);
299
+ i0.ɵɵelementEnd();
300
+ } if (rf & 2) {
301
+ const link_r17 = i0.ɵɵnextContext().$implicit;
302
+ const ctx_r0 = i0.ɵɵnextContext(4);
303
+ i0.ɵɵproperty("href", link_r17.Value, i0.ɵɵsanitizeUrl);
304
+ i0.ɵɵadvance(2);
305
+ i0.ɵɵtextInterpolate1(" ", ctx_r0.TruncateUrl(link_r17.Value), " ");
306
+ } }
307
+ function SearchResultsComponent_ng_template_3_Conditional_16_Conditional_17_For_2_Conditional_1_Template(rf, ctx) { if (rf & 1) {
308
+ const _r18 = i0.ɵɵgetCurrentView();
309
+ i0.ɵɵelementStart(0, "a", 65);
310
+ i0.ɵɵlistener("click", function SearchResultsComponent_ng_template_3_Conditional_16_Conditional_17_For_2_Conditional_1_Template_a_click_0_listener($event) { i0.ɵɵrestoreView(_r18); return i0.ɵɵresetView($event.stopPropagation()); });
311
+ i0.ɵɵelement(1, "i", 66);
312
+ i0.ɵɵtext(2);
313
+ i0.ɵɵelementEnd();
314
+ } if (rf & 2) {
315
+ const link_r17 = i0.ɵɵnextContext().$implicit;
316
+ i0.ɵɵproperty("href", "mailto:" + link_r17.Value, i0.ɵɵsanitizeUrl);
317
+ i0.ɵɵadvance(2);
318
+ i0.ɵɵtextInterpolate1(" ", link_r17.Value, " ");
319
+ } }
320
+ function SearchResultsComponent_ng_template_3_Conditional_16_Conditional_17_For_2_Template(rf, ctx) { if (rf & 1) {
321
+ i0.ɵɵconditionalCreate(0, SearchResultsComponent_ng_template_3_Conditional_16_Conditional_17_For_2_Conditional_0_Template, 3, 2, "a", 62)(1, SearchResultsComponent_ng_template_3_Conditional_16_Conditional_17_For_2_Conditional_1_Template, 3, 2, "a", 63);
322
+ } if (rf & 2) {
323
+ const link_r17 = ctx.$implicit;
324
+ i0.ɵɵconditional(link_r17.Type === "URL" ? 0 : link_r17.Type === "Email" ? 1 : -1);
325
+ } }
326
+ function SearchResultsComponent_ng_template_3_Conditional_16_Conditional_17_Template(rf, ctx) { if (rf & 1) {
327
+ i0.ɵɵelementStart(0, "div", 53);
328
+ i0.ɵɵrepeaterCreate(1, SearchResultsComponent_ng_template_3_Conditional_16_Conditional_17_For_2_Template, 2, 1, null, null, _forTrack2);
329
+ i0.ɵɵelementEnd();
330
+ } if (rf & 2) {
331
+ const result_r12 = i0.ɵɵnextContext(2).$implicit;
332
+ const ctx_r0 = i0.ɵɵnextContext();
333
+ i0.ɵɵadvance();
334
+ i0.ɵɵrepeater(ctx_r0.GetResolvedLinks(result_r12));
335
+ } }
336
+ function SearchResultsComponent_ng_template_3_Conditional_16_Template(rf, ctx) { if (rf & 1) {
337
+ const _r14 = i0.ɵɵgetCurrentView();
338
+ i0.ɵɵelementStart(0, "div", 40);
339
+ i0.ɵɵconditionalCreate(1, SearchResultsComponent_ng_template_3_Conditional_16_Conditional_1_Template, 5, 1, "div", 45);
340
+ i0.ɵɵelementStart(2, "div", 46)(3, "div", 47);
341
+ i0.ɵɵelement(4, "i", 48);
112
342
  i0.ɵɵelementStart(5, "span");
113
343
  i0.ɵɵtext(6);
114
344
  i0.ɵɵelementEnd()();
115
- i0.ɵɵelementStart(7, "div", 32);
116
- i0.ɵɵelement(8, "i", 34);
117
- i0.ɵɵelementStart(9, "span", 35);
345
+ i0.ɵɵelementStart(7, "div", 47);
346
+ i0.ɵɵelement(8, "i", 49);
347
+ i0.ɵɵelementStart(9, "span", 50);
118
348
  i0.ɵɵtext(10);
119
349
  i0.ɵɵelementEnd()();
120
- i0.ɵɵelementStart(11, "div", 32);
121
- i0.ɵɵelement(12, "i", 36);
350
+ i0.ɵɵelementStart(11, "div", 47);
351
+ i0.ɵɵelement(12, "i", 51);
122
352
  i0.ɵɵelementStart(13, "span");
123
353
  i0.ɵɵtext(14);
124
354
  i0.ɵɵelementEnd()();
125
- i0.ɵɵconditionalCreate(15, SearchResultsComponent_Conditional_2_For_5_For_9_Conditional_15_Conditional_15_Template, 5, 2, "div", 32);
355
+ i0.ɵɵconditionalCreate(15, SearchResultsComponent_ng_template_3_Conditional_16_Conditional_15_Template, 5, 2, "div", 47);
126
356
  i0.ɵɵelementEnd();
127
- i0.ɵɵconditionalCreate(16, SearchResultsComponent_Conditional_2_For_5_For_9_Conditional_15_Conditional_16_Template, 3, 0, "div", 37);
128
- i0.ɵɵelementStart(17, "div", 38)(18, "button", 39);
129
- i0.ɵɵlistener("click", function SearchResultsComponent_Conditional_2_For_5_For_9_Conditional_15_Template_button_click_18_listener($event) { i0.ɵɵrestoreView(_r6); const result_r5 = i0.ɵɵnextContext().$implicit; const ctx_r0 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r0.OnOpenRecord(result_r5, $event)); });
130
- i0.ɵɵelement(19, "i", 24);
131
- i0.ɵɵtext(20, " Open Record ");
357
+ i0.ɵɵconditionalCreate(16, SearchResultsComponent_ng_template_3_Conditional_16_Conditional_16_Template, 3, 0, "div", 52);
358
+ i0.ɵɵconditionalCreate(17, SearchResultsComponent_ng_template_3_Conditional_16_Conditional_17_Template, 3, 0, "div", 53);
359
+ i0.ɵɵelementStart(18, "div", 54)(19, "button", 55);
360
+ i0.ɵɵlistener("click", function SearchResultsComponent_ng_template_3_Conditional_16_Template_button_click_19_listener($event) { i0.ɵɵrestoreView(_r14); const result_r12 = i0.ɵɵnextContext().$implicit; const ctx_r0 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r0.OnOpenRecord(result_r12, $event)); });
361
+ i0.ɵɵelement(20, "i", 37);
362
+ i0.ɵɵtext(21, " Open Record ");
363
+ i0.ɵɵelementEnd();
364
+ i0.ɵɵelementStart(22, "button", 56);
365
+ i0.ɵɵlistener("click", function SearchResultsComponent_ng_template_3_Conditional_16_Template_button_click_22_listener($event) { i0.ɵɵrestoreView(_r14); const result_r12 = i0.ɵɵnextContext().$implicit; const ctx_r0 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r0.OnMoreLikeThis(result_r12, $event)); });
366
+ i0.ɵɵelement(23, "i", 57);
367
+ i0.ɵɵtext(24, " See Similar Items ");
132
368
  i0.ɵɵelementEnd()()();
133
369
  } if (rf & 2) {
134
- const result_r5 = i0.ɵɵnextContext().$implicit;
135
- const ctx_r0 = i0.ɵɵnextContext(3);
370
+ const result_r12 = i0.ɵɵnextContext().$implicit;
371
+ const ctx_r0 = i0.ɵɵnextContext();
136
372
  i0.ɵɵadvance();
137
- i0.ɵɵconditional(result_r5.Snippet ? 1 : -1);
373
+ i0.ɵɵconditional(result_r12.Snippet ? 1 : -1);
138
374
  i0.ɵɵadvance(5);
139
- i0.ɵɵtextInterpolate(result_r5.EntityName);
375
+ i0.ɵɵtextInterpolate(result_r12.EntityName);
140
376
  i0.ɵɵadvance(4);
141
- i0.ɵɵtextInterpolate(result_r5.RecordID);
377
+ i0.ɵɵtextInterpolate(result_r12.RecordID);
142
378
  i0.ɵɵadvance(4);
143
- i0.ɵɵtextInterpolate1("", result_r5.SourceType, " match");
379
+ i0.ɵɵtextInterpolate1("Relevance: ", ctx_r0.FormatScore(result_r12.Score));
380
+ i0.ɵɵadvance();
381
+ i0.ɵɵconditional(result_r12.ScoreBreakdown ? 15 : -1);
144
382
  i0.ɵɵadvance();
145
- i0.ɵɵconditional(result_r5.ScoreBreakdown ? 15 : -1);
383
+ i0.ɵɵconditional(ctx_r0.ShowTags && result_r12.Tags.length > 0 ? 16 : -1);
146
384
  i0.ɵɵadvance();
147
- i0.ɵɵconditional(ctx_r0.ShowTags && result_r5.Tags.length > 0 ? 16 : -1);
385
+ i0.ɵɵconditional(ctx_r0.GetResolvedLinks(result_r12).length > 0 ? 17 : -1);
148
386
  } }
149
- function SearchResultsComponent_Conditional_2_For_5_For_9_Template(rf, ctx) { if (rf & 1) {
150
- const _r4 = i0.ɵɵgetCurrentView();
151
- i0.ɵɵelementStart(0, "div", 15)(1, "div", 16);
152
- i0.ɵɵlistener("click", function SearchResultsComponent_Conditional_2_For_5_For_9_Template_div_click_1_listener() { const result_r5 = i0.ɵɵrestoreView(_r4).$implicit; const ctx_r0 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r0.ToggleExpand(result_r5)); });
153
- i0.ɵɵelementStart(2, "div", 17);
387
+ function SearchResultsComponent_ng_template_3_Template(rf, ctx) { if (rf & 1) {
388
+ const _r11 = i0.ɵɵgetCurrentView();
389
+ i0.ɵɵelementStart(0, "div", 27)(1, "div", 28);
390
+ i0.ɵɵlistener("click", function SearchResultsComponent_ng_template_3_Template_div_click_1_listener() { const result_r12 = i0.ɵɵrestoreView(_r11).$implicit; const ctx_r0 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r0.ToggleExpand(result_r12)); });
391
+ i0.ɵɵelementStart(2, "div", 29);
154
392
  i0.ɵɵelement(3, "i");
155
393
  i0.ɵɵelementEnd();
156
- i0.ɵɵelementStart(4, "div", 18)(5, "div", 19);
394
+ i0.ɵɵelementStart(4, "div", 30)(5, "div", 31);
157
395
  i0.ɵɵtext(6);
158
396
  i0.ɵɵelementEnd();
159
- i0.ɵɵelementStart(7, "div", 20);
397
+ i0.ɵɵelementStart(7, "div", 32);
160
398
  i0.ɵɵtext(8);
161
- i0.ɵɵelementEnd()();
162
- i0.ɵɵconditionalCreate(9, SearchResultsComponent_Conditional_2_For_5_For_9_Conditional_9_Template, 4, 1, "div", 21);
163
- i0.ɵɵelementStart(10, "div", 22)(11, "button", 23);
164
- i0.ɵɵlistener("click", function SearchResultsComponent_Conditional_2_For_5_For_9_Template_button_click_11_listener($event) { const result_r5 = i0.ɵɵrestoreView(_r4).$implicit; const ctx_r0 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r0.OnOpenRecord(result_r5, $event)); });
165
- i0.ɵɵelement(12, "i", 24);
166
399
  i0.ɵɵelementEnd();
167
- i0.ɵɵelementStart(13, "button", 25);
168
- i0.ɵɵlistener("click", function SearchResultsComponent_Conditional_2_For_5_For_9_Template_button_click_13_listener($event) { const result_r5 = i0.ɵɵrestoreView(_r4).$implicit; const ctx_r0 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r0.ToggleExpand(result_r5, $event)); });
169
- i0.ɵɵelement(14, "i", 26);
400
+ i0.ɵɵconditionalCreate(9, SearchResultsComponent_ng_template_3_Conditional_9_Template, 4, 1, "div", 33);
401
+ i0.ɵɵelementEnd();
402
+ i0.ɵɵconditionalCreate(10, SearchResultsComponent_ng_template_3_Conditional_10_Template, 4, 1, "div", 34);
403
+ i0.ɵɵelementStart(11, "div", 35)(12, "button", 36);
404
+ i0.ɵɵlistener("click", function SearchResultsComponent_ng_template_3_Template_button_click_12_listener($event) { const result_r12 = i0.ɵɵrestoreView(_r11).$implicit; const ctx_r0 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r0.OnOpenRecord(result_r12, $event)); });
405
+ i0.ɵɵelement(13, "i", 37);
406
+ i0.ɵɵelementEnd();
407
+ i0.ɵɵelementStart(14, "button", 38);
408
+ i0.ɵɵlistener("click", function SearchResultsComponent_ng_template_3_Template_button_click_14_listener($event) { const result_r12 = i0.ɵɵrestoreView(_r11).$implicit; const ctx_r0 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r0.ToggleExpand(result_r12, $event)); });
409
+ i0.ɵɵelement(15, "i", 39);
170
410
  i0.ɵɵelementEnd()()();
171
- i0.ɵɵconditionalCreate(15, SearchResultsComponent_Conditional_2_For_5_For_9_Conditional_15_Template, 21, 6, "div", 27);
411
+ i0.ɵɵconditionalCreate(16, SearchResultsComponent_ng_template_3_Conditional_16_Template, 25, 7, "div", 40);
172
412
  i0.ɵɵelementEnd();
173
413
  } if (rf & 2) {
174
- const result_r5 = ctx.$implicit;
175
- const ctx_r0 = i0.ɵɵnextContext(3);
176
- i0.ɵɵclassProp("result-card-expanded", ctx_r0.IsExpanded(result_r5.ID));
414
+ const result_r12 = ctx.$implicit;
415
+ const ctx_r0 = i0.ɵɵnextContext();
416
+ i0.ɵɵclassProp("result-card-expanded", ctx_r0.IsExpanded(result_r12.ID));
177
417
  i0.ɵɵadvance(3);
178
- i0.ɵɵclassMap(result_r5.EntityIcon || result_r5.SourceIcon || "fa-solid fa-database");
418
+ i0.ɵɵclassMap(result_r12.EntityIcon || result_r12.SourceIcon || "fa-solid fa-database");
179
419
  i0.ɵɵadvance(3);
180
- i0.ɵɵtextInterpolate(result_r5.RecordName || result_r5.Title);
420
+ i0.ɵɵtextInterpolate(result_r12.RecordName || result_r12.Title);
181
421
  i0.ɵɵadvance(2);
182
- i0.ɵɵtextInterpolate(result_r5.EntityName);
422
+ i0.ɵɵtextInterpolate(result_r12.EntityName);
183
423
  i0.ɵɵadvance();
184
- i0.ɵɵconditional(ctx_r0.ShowScores ? 9 : -1);
185
- i0.ɵɵadvance(5);
186
- i0.ɵɵclassProp("fa-chevron-down", !ctx_r0.IsExpanded(result_r5.ID))("fa-chevron-up", ctx_r0.IsExpanded(result_r5.ID));
424
+ i0.ɵɵconditional(result_r12.Tags && result_r12.Tags.length > 0 ? 9 : -1);
187
425
  i0.ɵɵadvance();
188
- i0.ɵɵconditional(ctx_r0.IsExpanded(result_r5.ID) ? 15 : -1);
189
- } }
190
- function SearchResultsComponent_Conditional_2_For_5_Conditional_10_Template(rf, ctx) { if (rf & 1) {
191
- const _r8 = i0.ɵɵgetCurrentView();
192
- i0.ɵɵelementStart(0, "button", 44);
193
- i0.ɵɵlistener("click", function SearchResultsComponent_Conditional_2_For_5_Conditional_10_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r8); const group_r3 = i0.ɵɵnextContext().$implicit; const ctx_r0 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r0.ToggleGroup(group_r3.SourceType)); });
194
- i0.ɵɵelement(1, "i", 45);
195
- i0.ɵɵtext(2);
196
- i0.ɵɵelementEnd();
197
- } if (rf & 2) {
198
- const group_r3 = i0.ɵɵnextContext().$implicit;
199
- const ctx_r0 = i0.ɵɵnextContext(2);
200
- i0.ɵɵadvance(2);
201
- i0.ɵɵtextInterpolate1(" Show ", ctx_r0.GetHiddenCount(group_r3), " more results ");
202
- } }
203
- function SearchResultsComponent_Conditional_2_For_5_Template(rf, ctx) { if (rf & 1) {
204
- const _r2 = i0.ɵɵgetCurrentView();
205
- i0.ɵɵelementStart(0, "div", 7)(1, "div", 8);
206
- i0.ɵɵlistener("click", function SearchResultsComponent_Conditional_2_For_5_Template_div_click_1_listener() { const group_r3 = i0.ɵɵrestoreView(_r2).$implicit; const ctx_r0 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r0.ToggleGroup(group_r3.SourceType)); });
207
- i0.ɵɵconditionalCreate(2, SearchResultsComponent_Conditional_2_For_5_Conditional_2_Template, 1, 2, "i", 9);
208
- i0.ɵɵelementStart(3, "span", 10);
209
- i0.ɵɵtext(4);
210
- i0.ɵɵelementEnd();
211
- i0.ɵɵelementStart(5, "span", 11);
212
- i0.ɵɵtext(6);
213
- i0.ɵɵelementEnd();
214
- i0.ɵɵelement(7, "i", 12);
215
- i0.ɵɵelementEnd();
216
- i0.ɵɵrepeaterCreate(8, SearchResultsComponent_Conditional_2_For_5_For_9_Template, 16, 12, "div", 13, _forTrack1);
217
- i0.ɵɵconditionalCreate(10, SearchResultsComponent_Conditional_2_For_5_Conditional_10_Template, 3, 1, "button", 14);
218
- i0.ɵɵelementEnd();
219
- } if (rf & 2) {
220
- const group_r3 = ctx.$implicit;
221
- const ctx_r0 = i0.ɵɵnextContext(2);
222
- i0.ɵɵadvance(2);
223
- i0.ɵɵconditional(ctx_r0.ShowSourceIcons ? 2 : -1);
224
- i0.ɵɵadvance(2);
225
- i0.ɵɵtextInterpolate(group_r3.Label);
226
- i0.ɵɵadvance(2);
227
- i0.ɵɵtextInterpolate1("(", group_r3.TotalCount, ")");
228
- i0.ɵɵadvance();
229
- i0.ɵɵclassProp("fa-chevron-down", !ctx_r0.IsGroupExpanded(group_r3.SourceType))("fa-chevron-up", ctx_r0.IsGroupExpanded(group_r3.SourceType));
230
- i0.ɵɵadvance();
231
- i0.ɵɵrepeater(ctx_r0.GetVisibleResults(group_r3));
232
- i0.ɵɵadvance(2);
233
- i0.ɵɵconditional(ctx_r0.HasMoreResults(group_r3) ? 10 : -1);
234
- } }
235
- function SearchResultsComponent_Conditional_2_Template(rf, ctx) { if (rf & 1) {
236
- i0.ɵɵelementStart(0, "div", 5)(1, "span");
237
- i0.ɵɵtext(2);
238
- i0.ɵɵelementEnd();
239
- i0.ɵɵconditionalCreate(3, SearchResultsComponent_Conditional_2_Conditional_3_Template, 2, 1, "span", 6);
240
- i0.ɵɵelementEnd();
241
- i0.ɵɵrepeaterCreate(4, SearchResultsComponent_Conditional_2_For_5_Template, 11, 8, "div", 7, _forTrack0);
242
- } if (rf & 2) {
243
- const ctx_r0 = i0.ɵɵnextContext();
244
- i0.ɵɵadvance(2);
245
- i0.ɵɵtextInterpolate1("", ctx_r0.TotalCount, " results");
246
- i0.ɵɵadvance();
247
- i0.ɵɵconditional(ctx_r0.ElapsedMs > 0 ? 3 : -1);
426
+ i0.ɵɵconditional(ctx_r0.ShowScores ? 10 : -1);
427
+ i0.ɵɵadvance(5);
428
+ i0.ɵɵclassProp("fa-chevron-down", !ctx_r0.IsExpanded(result_r12.ID))("fa-chevron-up", ctx_r0.IsExpanded(result_r12.ID));
248
429
  i0.ɵɵadvance();
249
- i0.ɵɵrepeater(ctx_r0.ResultGroups);
430
+ i0.ɵɵconditional(ctx_r0.IsExpanded(result_r12.ID) ? 16 : -1);
250
431
  } }
251
432
  export class SearchResultsComponent {
252
433
  cdr = inject(ChangeDetectorRef);
253
- /** Grouped search results to display */
434
+ /** Grouped search results to display (used when DisplayMode is 'grouped') */
254
435
  ResultGroups = [];
436
+ /** Flat list of all results sorted by score (used when DisplayMode is 'flat') */
437
+ FlatResults = [];
438
+ /** Display mode: 'flat' for blended list sorted by score, 'grouped' for source-type groups */
439
+ DisplayMode = 'flat';
255
440
  /** Whether results are currently loading */
256
441
  IsLoading = false;
257
442
  /** Total result count */
258
443
  TotalCount = 0;
259
444
  /** Elapsed search time in ms */
260
445
  ElapsedMs = 0;
261
- /** Maximum results per group before "Show more" */
446
+ /** Maximum results per group before "Show more" (grouped mode only) */
262
447
  MaxPerGroup = 5;
448
+ /** Results per page in flat mode */
449
+ PageSize = 10;
450
+ /** Whether to show the results summary line (count + time). Set false when parent provides its own header. */
451
+ ShowSummary = true;
263
452
  /** Whether to show score badges */
264
453
  ShowScores = true;
265
454
  /** Whether to show tags */
@@ -269,10 +458,49 @@ export class SearchResultsComponent {
269
458
  ResultSelected = new EventEmitter();
270
459
  /** Emitted when user clicks "Open Record" — parent handles navigation */
271
460
  OpenRecordRequested = new EventEmitter();
461
+ /** Emitted when user clicks "See Similar Items" — parent runs a "more like this" search */
462
+ MoreLikeThisRequested = new EventEmitter();
463
+ /** Current page (1-based) for flat mode pagination */
464
+ CurrentPage = 1;
272
465
  /** Tracks which groups are expanded */
273
466
  ExpandedGroups = new Set();
274
467
  /** Set of expanded result card IDs — multiple can be open simultaneously */
275
468
  ExpandedResultIDs = new Set();
469
+ // ── Flat mode pagination ──
470
+ /** Get results for the current page in flat mode */
471
+ get PagedResults() {
472
+ const start = (this.CurrentPage - 1) * this.PageSize;
473
+ return this.FlatResults.slice(start, start + this.PageSize);
474
+ }
475
+ /** Total number of pages */
476
+ get TotalPages() {
477
+ return Math.ceil(this.FlatResults.length / this.PageSize);
478
+ }
479
+ /** Page numbers to display in the pager */
480
+ get PageNumbers() {
481
+ const total = this.TotalPages;
482
+ if (total <= 7)
483
+ return Array.from({ length: total }, (_, i) => i + 1);
484
+ const pages = [1];
485
+ const start = Math.max(2, this.CurrentPage - 2);
486
+ const end = Math.min(total - 1, this.CurrentPage + 2);
487
+ if (start > 2)
488
+ pages.push(-1); // ellipsis marker
489
+ for (let i = start; i <= end; i++)
490
+ pages.push(i);
491
+ if (end < total - 1)
492
+ pages.push(-1); // ellipsis marker
493
+ pages.push(total);
494
+ return pages;
495
+ }
496
+ /** Navigate to a specific page */
497
+ GoToPage(page) {
498
+ if (page < 1 || page > this.TotalPages)
499
+ return;
500
+ this.CurrentPage = page;
501
+ this.cdr.detectChanges();
502
+ }
503
+ // ── Grouped mode ──
276
504
  /** Toggle group expansion */
277
505
  ToggleGroup(sourceType) {
278
506
  if (this.ExpandedGroups.has(sourceType)) {
@@ -333,6 +561,11 @@ export class SearchResultsComponent {
333
561
  RecordID: result.RecordID
334
562
  });
335
563
  }
564
+ /** Handle "See Similar Items" button click — emits the result for a "more like this" search */
565
+ OnMoreLikeThis(result, event) {
566
+ event.stopPropagation();
567
+ this.MoreLikeThisRequested.emit(result);
568
+ }
336
569
  /** Format a score as a percentage */
337
570
  FormatScore(score) {
338
571
  return `${Math.round(score * 100)}%`;
@@ -343,18 +576,114 @@ export class SearchResultsComponent {
343
576
  return `${ms}ms`;
344
577
  return `${(ms / 1000).toFixed(1)}s`;
345
578
  }
579
+ /** Resolved link cache per result ID */
580
+ resolvedLinksCache = new Map();
581
+ /**
582
+ * Resolve URL and Email fields from the result's RawMetadata using entity ExtendedType metadata.
583
+ * Returns clickable link entries with proper type classification.
584
+ */
585
+ GetResolvedLinks(result) {
586
+ if (this.resolvedLinksCache.has(result.ID)) {
587
+ return this.resolvedLinksCache.get(result.ID);
588
+ }
589
+ const links = [];
590
+ if (result.RawMetadata) {
591
+ try {
592
+ const meta = JSON.parse(result.RawMetadata);
593
+ const linkFields = this.GetLinkFields(result.EntityName);
594
+ for (const field of linkFields) {
595
+ const value = meta[field.Name];
596
+ if (value && typeof value === 'string' && value.trim().length > 0) {
597
+ links.push({
598
+ Value: value,
599
+ Label: field.DisplayName,
600
+ Type: field.Type
601
+ });
602
+ }
603
+ }
604
+ }
605
+ catch { /* ignore parse errors */ }
606
+ }
607
+ // Fallback: extract URLs from snippet if no ExtendedType fields found
608
+ if (links.length === 0) {
609
+ const urls = this.ExtractUrls(result.Snippet);
610
+ for (const url of urls) {
611
+ links.push({ Value: url, Label: '', Type: 'URL' });
612
+ }
613
+ }
614
+ this.resolvedLinksCache.set(result.ID, links);
615
+ return links;
616
+ }
617
+ /** Extract URLs from snippet text */
618
+ ExtractUrls(snippet) {
619
+ if (!snippet)
620
+ return [];
621
+ const urlRegex = /https?:\/\/[^\s,;)>"']+/g;
622
+ const matches = snippet.match(urlRegex);
623
+ return matches ? [...new Set(matches)] : [];
624
+ }
625
+ /** Truncate a URL for display */
626
+ TruncateUrl(url) {
627
+ try {
628
+ const parsed = new URL(url);
629
+ const path = parsed.pathname.length > 30
630
+ ? parsed.pathname.substring(0, 30) + '...'
631
+ : parsed.pathname;
632
+ return parsed.hostname + path;
633
+ }
634
+ catch {
635
+ return url.length > 50 ? url.substring(0, 50) + '...' : url;
636
+ }
637
+ }
638
+ /** Cache of URL/Email field info per entity name */
639
+ linkFieldsCache = new Map();
640
+ /**
641
+ * Get URL and Email fields for an entity using ExtendedType from entity metadata.
642
+ * Returns fields with ExtendedType='URL' or ExtendedType='Email'.
643
+ */
644
+ GetLinkFields(entityName) {
645
+ if (this.linkFieldsCache.has(entityName)) {
646
+ return this.linkFieldsCache.get(entityName);
647
+ }
648
+ try {
649
+ const md = new Metadata();
650
+ const entityInfo = md.Entities.find(e => e.Name === entityName);
651
+ if (!entityInfo) {
652
+ this.linkFieldsCache.set(entityName, []);
653
+ return [];
654
+ }
655
+ const linkFields = entityInfo.Fields
656
+ .filter(f => f.ExtendedType === 'URL' || f.ExtendedType === 'Email')
657
+ .map(f => ({
658
+ Name: f.Name,
659
+ DisplayName: f.DisplayNameOrName,
660
+ Type: f.ExtendedType
661
+ }));
662
+ this.linkFieldsCache.set(entityName, linkFields);
663
+ return linkFields;
664
+ }
665
+ catch {
666
+ this.linkFieldsCache.set(entityName, []);
667
+ return [];
668
+ }
669
+ }
346
670
  static ɵfac = function SearchResultsComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || SearchResultsComponent)(); };
347
- static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: SearchResultsComponent, selectors: [["mj-search-results"]], inputs: { ResultGroups: "ResultGroups", IsLoading: "IsLoading", TotalCount: "TotalCount", ElapsedMs: "ElapsedMs", MaxPerGroup: "MaxPerGroup", ShowScores: "ShowScores", ShowTags: "ShowTags", ShowSourceIcons: "ShowSourceIcons" }, outputs: { ResultSelected: "ResultSelected", OpenRecordRequested: "OpenRecordRequested" }, standalone: false, decls: 3, vars: 1, consts: [[1, "results-loading"], [1, "results-empty"], ["text", "Searching...", "size", "medium"], [1, "fa-solid", "fa-search", "results-empty-icon"], [1, "results-empty-text"], [1, "results-summary"], [1, "results-summary-time"], [1, "results-group"], [1, "results-group-header", 3, "click"], [3, "class"], [1, "results-group-label"], [1, "results-group-count"], [1, "fa-solid", "results-group-chevron"], [1, "result-card", 3, "result-card-expanded"], [1, "results-show-more"], [1, "result-card"], [1, "result-card-main", 3, "click"], [1, "result-card-icon-wrap"], [1, "result-card-body"], [1, "result-card-title"], [1, "result-card-entity"], [1, "result-card-score"], [1, "result-card-actions"], ["title", "Open record", 1, "result-open-btn", 3, "click"], [1, "fa-solid", "fa-arrow-up-right-from-square"], ["title", "Expand details", 1, "result-expand-btn", 3, "click"], [1, "fa-solid"], [1, "result-card-detail"], [1, "score-circle"], [1, "score-value"], [1, "detail-section"], [1, "detail-meta"], [1, "detail-meta-item"], [1, "fa-solid", "fa-layer-group"], [1, "fa-solid", "fa-fingerprint"], [1, "detail-record-id"], [1, "fa-solid", "fa-signal"], [1, "detail-tags"], [1, "detail-actions"], [1, "detail-open-btn", 3, "click"], [1, "detail-label"], [1, "detail-snippet"], [1, "fa-solid", "fa-chart-bar"], [1, "result-card-tag"], [1, "results-show-more", 3, "click"], [1, "fa-solid", "fa-chevron-down"]], template: function SearchResultsComponent_Template(rf, ctx) { if (rf & 1) {
348
- i0.ɵɵconditionalCreate(0, SearchResultsComponent_Conditional_0_Template, 2, 0, "div", 0)(1, SearchResultsComponent_Conditional_1_Template, 4, 0, "div", 1)(2, SearchResultsComponent_Conditional_2_Template, 6, 2);
671
+ static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: SearchResultsComponent, selectors: [["mj-search-results"]], inputs: { ResultGroups: "ResultGroups", FlatResults: "FlatResults", DisplayMode: "DisplayMode", IsLoading: "IsLoading", TotalCount: "TotalCount", ElapsedMs: "ElapsedMs", MaxPerGroup: "MaxPerGroup", PageSize: "PageSize", ShowSummary: "ShowSummary", ShowScores: "ShowScores", ShowTags: "ShowTags", ShowSourceIcons: "ShowSourceIcons" }, outputs: { ResultSelected: "ResultSelected", OpenRecordRequested: "OpenRecordRequested", MoreLikeThisRequested: "MoreLikeThisRequested" }, standalone: false, decls: 5, vars: 1, consts: [["resultCardTpl", ""], [1, "results-loading"], [1, "results-empty"], ["text", "Searching...", "size", "medium"], [1, "fa-solid", "fa-search", "results-empty-icon"], [1, "results-empty-text"], [1, "results-summary"], [1, "results-summary-time"], [1, "results-scroll-area"], [1, "results-pager"], [4, "ngTemplateOutlet", "ngTemplateOutletContext"], [1, "pager-btn", "pager-prev", 3, "click", "disabled"], [1, "fa-solid", "fa-chevron-left"], [1, "pager-btn", "pager-next", 3, "click", "disabled"], [1, "fa-solid", "fa-chevron-right"], [1, "pager-ellipsis"], [1, "pager-btn", "pager-num", 3, "pager-active"], [1, "pager-btn", "pager-num", 3, "click"], [1, "results-group"], [1, "results-group-header", 3, "click"], [3, "class"], [1, "results-group-label"], [1, "results-group-count"], [1, "fa-solid", "results-group-chevron"], [1, "results-show-more"], [1, "results-show-more", 3, "click"], [1, "fa-solid", "fa-chevron-down"], [1, "result-card"], [1, "result-card-main", 3, "click"], [1, "result-card-icon-wrap"], [1, "result-card-body"], [1, "result-card-title"], [1, "result-card-entity"], [1, "result-card-tags"], [1, "result-card-score"], [1, "result-card-actions"], ["title", "Open record", 1, "result-open-btn", 3, "click"], [1, "fa-solid", "fa-arrow-up-right-from-square"], ["title", "Expand details", 1, "result-expand-btn", 3, "click"], [1, "fa-solid"], [1, "result-card-detail"], [1, "result-tag-chip"], [1, "result-tag-more"], [1, "score-circle"], [1, "score-value"], [1, "detail-section"], [1, "detail-meta"], [1, "detail-meta-item"], [1, "fa-solid", "fa-layer-group"], [1, "fa-solid", "fa-fingerprint"], [1, "detail-record-id"], [1, "fa-solid", "fa-signal"], [1, "detail-tags"], [1, "detail-links"], [1, "detail-actions"], [1, "detail-open-btn", 3, "click"], [1, "detail-similar-btn", 3, "click"], [1, "fa-solid", "fa-shuffle"], [1, "detail-label"], [1, "detail-snippet"], [1, "fa-solid", "fa-chart-bar"], [1, "result-card-tag"], ["target", "_blank", 1, "detail-link", 3, "href"], [1, "detail-link", "detail-link-email", 3, "href"], ["target", "_blank", 1, "detail-link", 3, "click", "href"], [1, "detail-link", "detail-link-email", 3, "click", "href"], [1, "fa-solid", "fa-envelope"]], template: function SearchResultsComponent_Template(rf, ctx) { if (rf & 1) {
672
+ i0.ɵɵconditionalCreate(0, SearchResultsComponent_Conditional_0_Template, 2, 0, "div", 1)(1, SearchResultsComponent_Conditional_1_Template, 4, 0, "div", 2)(2, SearchResultsComponent_Conditional_2_Template, 3, 2);
673
+ i0.ɵɵtemplate(3, SearchResultsComponent_ng_template_3_Template, 17, 13, "ng-template", null, 0, i0.ɵɵtemplateRefExtractor);
349
674
  } if (rf & 2) {
350
- i0.ɵɵconditional(ctx.IsLoading ? 0 : ctx.ResultGroups.length === 0 && ctx.TotalCount === 0 ? 1 : 2);
351
- } }, dependencies: [i1.LoadingComponent], styles: ["\n\n\n.results-loading[_ngcontent-%COMP%] {\n display: flex;\n justify-content: center;\n padding: 3rem 1rem;\n}\n\n.results-empty[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n align-items: center;\n padding: 3rem 1rem;\n gap: 0.5rem;\n}\n\n.results-empty-icon[_ngcontent-%COMP%] {\n font-size: 2rem;\n color: var(--mj-text-muted);\n margin-bottom: 0.5rem;\n}\n\n.results-empty-text[_ngcontent-%COMP%] {\n color: var(--mj-text-muted);\n font-size: 0.9rem;\n}\n\n.results-summary[_ngcontent-%COMP%] {\n padding: 0.75rem 1rem;\n color: var(--mj-text-secondary);\n font-size: 0.85rem;\n border-bottom: 1px solid var(--mj-border-subtle);\n}\n\n.results-summary-time[_ngcontent-%COMP%] {\n color: var(--mj-text-muted);\n}\n\n\n\n.results-group[_ngcontent-%COMP%] {\n border-bottom: 1px solid var(--mj-border-subtle);\n}\n\n.results-group-header[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 0.5rem;\n padding: 0.75rem 1rem;\n cursor: pointer;\n transition: background 0.1s ease;\n}\n\n.results-group-header[_ngcontent-%COMP%]:hover {\n background: var(--mj-bg-surface-hover);\n}\n\n.results-group-icon[_ngcontent-%COMP%] {\n color: var(--mj-brand-primary);\n font-size: 0.85rem;\n}\n\n.results-group-label[_ngcontent-%COMP%] {\n font-weight: 600;\n font-size: 0.85rem;\n color: var(--mj-text-primary);\n flex: 1;\n}\n\n.results-group-count[_ngcontent-%COMP%] {\n font-size: 0.78rem;\n color: var(--mj-text-muted);\n}\n\n.results-group-chevron[_ngcontent-%COMP%] {\n color: var(--mj-text-muted);\n font-size: 0.7rem;\n transition: transform 0.2s ease;\n}\n\n\n\n.result-card[_ngcontent-%COMP%] {\n border: 1px solid var(--mj-border-subtle);\n border-radius: 8px;\n margin: 0 0 0.35rem 1.5rem;\n overflow: hidden;\n transition: border-color 0.15s, box-shadow 0.15s;\n}\n\n.result-card[_ngcontent-%COMP%]:hover {\n border-color: var(--mj-border-default);\n}\n\n.result-card-expanded[_ngcontent-%COMP%] {\n border-color: var(--mj-brand-primary);\n box-shadow: 0 2px 8px color-mix(in srgb, var(--mj-brand-primary) 10%, transparent);\n}\n\n.result-card-main[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 0.75rem;\n padding: 0.65rem 0.85rem;\n cursor: pointer;\n transition: background 0.1s ease;\n}\n\n.result-card-main[_ngcontent-%COMP%]:hover {\n background: var(--mj-bg-surface-hover);\n}\n\n.result-card-icon-wrap[_ngcontent-%COMP%] {\n width: 2rem;\n height: 2rem;\n display: flex;\n align-items: center;\n justify-content: center;\n border-radius: 6px;\n background: color-mix(in srgb, var(--mj-brand-primary) 10%, var(--mj-bg-surface));\n color: var(--mj-brand-primary);\n font-size: 0.8rem;\n flex-shrink: 0;\n}\n\n.result-card-body[_ngcontent-%COMP%] {\n flex: 1;\n min-width: 0;\n}\n\n.result-card-title[_ngcontent-%COMP%] {\n color: var(--mj-text-primary);\n font-weight: 600;\n font-size: 0.85rem;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.result-card-entity[_ngcontent-%COMP%] {\n color: var(--mj-text-muted);\n font-size: 0.7rem;\n}\n\n.result-card-actions[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 4px;\n flex-shrink: 0;\n}\n\n.result-open-btn[_ngcontent-%COMP%], \n.result-expand-btn[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 28px;\n height: 28px;\n border: 1px solid var(--mj-border-default);\n border-radius: 6px;\n background: transparent;\n color: var(--mj-text-muted);\n font-size: 11px;\n cursor: pointer;\n transition: all 0.15s;\n}\n\n.result-open-btn[_ngcontent-%COMP%]:hover {\n background: color-mix(in srgb, var(--mj-brand-primary) 10%, var(--mj-bg-surface));\n border-color: var(--mj-brand-primary);\n color: var(--mj-brand-primary);\n}\n\n.result-expand-btn[_ngcontent-%COMP%]:hover {\n background: var(--mj-bg-surface-hover);\n color: var(--mj-text-primary);\n}\n\n\n\n.result-card-detail[_ngcontent-%COMP%] {\n padding: 0.75rem 1rem 0.85rem 3.5rem;\n border-top: 1px solid var(--mj-border-subtle);\n background: var(--mj-bg-surface-card);\n}\n\n.detail-section[_ngcontent-%COMP%] {\n margin-bottom: 0.65rem;\n}\n\n.detail-label[_ngcontent-%COMP%] {\n font-size: 0.7rem;\n font-weight: 600;\n color: var(--mj-text-muted);\n text-transform: uppercase;\n letter-spacing: 0.04em;\n margin-bottom: 0.25rem;\n display: block;\n}\n\n.detail-snippet[_ngcontent-%COMP%] {\n margin: 0;\n font-size: 0.82rem;\n color: var(--mj-text-secondary);\n line-height: 1.5;\n}\n\n.detail-meta[_ngcontent-%COMP%] {\n display: flex;\n flex-wrap: wrap;\n gap: 0.75rem;\n margin-bottom: 0.65rem;\n}\n\n.detail-meta-item[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 5px;\n font-size: 0.75rem;\n color: var(--mj-text-muted);\n}\n\n.detail-meta-item[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 0.65rem;\n}\n\n.detail-record-id[_ngcontent-%COMP%] {\n font-family: monospace;\n font-size: 0.7rem;\n max-width: 180px;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.detail-tags[_ngcontent-%COMP%] {\n display: flex;\n flex-wrap: wrap;\n gap: 4px;\n margin-bottom: 0.65rem;\n}\n\n.detail-actions[_ngcontent-%COMP%] {\n display: flex;\n gap: 8px;\n}\n\n.detail-open-btn[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n padding: 6px 14px;\n border: 1px solid var(--mj-brand-primary);\n border-radius: 6px;\n background: transparent;\n color: var(--mj-brand-primary);\n font-size: 0.78rem;\n font-weight: 500;\n cursor: pointer;\n transition: all 0.15s;\n}\n\n.detail-open-btn[_ngcontent-%COMP%]:hover {\n background: color-mix(in srgb, var(--mj-brand-primary) 10%, var(--mj-bg-surface));\n}\n\n.result-card-snippet[_ngcontent-%COMP%] {\n color: var(--mj-text-secondary);\n font-size: 0.82rem;\n line-height: 1.4;\n display: -webkit-box;\n -webkit-line-clamp: 2;\n -webkit-box-orient: vertical;\n overflow: hidden;\n}\n\n.result-card-tags[_ngcontent-%COMP%] {\n display: flex;\n flex-wrap: wrap;\n gap: 0.25rem;\n margin-top: 0.35rem;\n}\n\n.result-card-tag[_ngcontent-%COMP%] {\n display: inline-block;\n padding: 0.1rem 0.4rem;\n border-radius: 4px;\n background: var(--mj-bg-surface-sunken);\n color: var(--mj-text-muted);\n font-size: 0.7rem;\n}\n\n.result-card-tag-more[_ngcontent-%COMP%] {\n color: var(--mj-brand-primary);\n}\n\n.result-card-score[_ngcontent-%COMP%] {\n flex-shrink: 0;\n margin-top: 0.2rem;\n}\n\n.score-circle[_ngcontent-%COMP%] {\n width: 2.5rem;\n height: 2.5rem;\n border-radius: 50%;\n display: flex;\n align-items: center;\n justify-content: center;\n background: color-mix(in srgb, var(--mj-brand-primary) 10%, var(--mj-bg-surface));\n border: 2px solid color-mix(in srgb, var(--mj-brand-primary) 30%, var(--mj-bg-surface));\n}\n\n.score-value[_ngcontent-%COMP%] {\n font-size: 0.7rem;\n font-weight: 700;\n color: var(--mj-brand-primary);\n}\n\n\n\n.results-show-more[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 0.5rem;\n width: 100%;\n padding: 0.5rem 1rem;\n border: none;\n background: transparent;\n color: var(--mj-brand-primary);\n font-size: 0.82rem;\n cursor: pointer;\n justify-content: center;\n transition: background 0.1s ease;\n}\n\n.results-show-more[_ngcontent-%COMP%]:hover {\n background: var(--mj-bg-surface-hover);\n}"] });
675
+ i0.ɵɵconditional(ctx.IsLoading ? 0 : (ctx.DisplayMode === "flat" ? ctx.FlatResults.length : ctx.ResultGroups.length) === 0 && ctx.TotalCount === 0 ? 1 : 2);
676
+ } }, dependencies: [i1.NgTemplateOutlet, i2.LoadingComponent], styles: ["\n\n\n[_nghost-%COMP%] {\n display: flex;\n flex-direction: column;\n min-height: 0;\n flex: 1;\n}\n\n.results-scroll-area[_ngcontent-%COMP%] {\n flex: 1;\n overflow-y: auto;\n min-height: 0;\n}\n\n.results-loading[_ngcontent-%COMP%] {\n display: flex;\n justify-content: center;\n padding: 3rem 1rem;\n}\n\n.results-empty[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n align-items: center;\n padding: 3rem 1rem;\n gap: 0.5rem;\n}\n\n.results-empty-icon[_ngcontent-%COMP%] {\n font-size: 2rem;\n color: var(--mj-text-muted);\n margin-bottom: 0.5rem;\n}\n\n.results-empty-text[_ngcontent-%COMP%] {\n color: var(--mj-text-muted);\n font-size: 0.9rem;\n}\n\n.results-summary[_ngcontent-%COMP%] {\n padding: 0.75rem 1rem;\n color: var(--mj-text-secondary);\n font-size: 0.85rem;\n border-bottom: 1px solid var(--mj-border-subtle);\n}\n\n.results-summary-time[_ngcontent-%COMP%] {\n color: var(--mj-text-muted);\n}\n\n\n\n.results-group[_ngcontent-%COMP%] {\n border-bottom: 1px solid var(--mj-border-subtle);\n}\n\n.results-group-header[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 0.5rem;\n padding: 0.75rem 1rem;\n cursor: pointer;\n transition: background 0.1s ease;\n}\n\n.results-group-header[_ngcontent-%COMP%]:hover {\n background: var(--mj-bg-surface-hover);\n}\n\n.results-group-icon[_ngcontent-%COMP%] {\n color: var(--mj-brand-primary);\n font-size: 0.85rem;\n}\n\n.results-group-label[_ngcontent-%COMP%] {\n font-weight: 600;\n font-size: 0.85rem;\n color: var(--mj-text-primary);\n flex: 1;\n}\n\n.results-group-count[_ngcontent-%COMP%] {\n font-size: 0.78rem;\n color: var(--mj-text-muted);\n}\n\n.results-group-chevron[_ngcontent-%COMP%] {\n color: var(--mj-text-muted);\n font-size: 0.7rem;\n transition: transform 0.2s ease;\n}\n\n\n\n.result-card[_ngcontent-%COMP%] {\n border: 1px solid var(--mj-border-subtle);\n border-radius: 8px;\n margin: 0 0 0.35rem 1.5rem;\n overflow: hidden;\n transition: border-color 0.15s, box-shadow 0.15s;\n}\n\n.result-card[_ngcontent-%COMP%]:hover {\n border-color: var(--mj-border-default);\n}\n\n.result-card-expanded[_ngcontent-%COMP%] {\n border-color: var(--mj-brand-primary);\n box-shadow: 0 2px 8px color-mix(in srgb, var(--mj-brand-primary) 10%, transparent);\n}\n\n.result-card-main[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 0.75rem;\n padding: 0.65rem 0.85rem;\n cursor: pointer;\n transition: background 0.1s ease;\n}\n\n.result-card-main[_ngcontent-%COMP%]:hover {\n background: var(--mj-bg-surface-hover);\n}\n\n.result-card-icon-wrap[_ngcontent-%COMP%] {\n width: 2rem;\n height: 2rem;\n display: flex;\n align-items: center;\n justify-content: center;\n border-radius: 6px;\n background: color-mix(in srgb, var(--mj-brand-primary) 10%, var(--mj-bg-surface));\n color: var(--mj-brand-primary);\n font-size: 0.8rem;\n flex-shrink: 0;\n}\n\n.result-card-body[_ngcontent-%COMP%] {\n flex: 1;\n min-width: 0;\n}\n\n.result-card-title[_ngcontent-%COMP%] {\n color: var(--mj-text-primary);\n font-weight: 600;\n font-size: 0.85rem;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.result-card-entity[_ngcontent-%COMP%] {\n color: var(--mj-text-muted);\n font-size: 0.7rem;\n}\n\n.result-card-tags[_ngcontent-%COMP%] {\n display: flex;\n flex-wrap: wrap;\n gap: 4px;\n margin-top: 4px;\n}\n\n.result-tag-chip[_ngcontent-%COMP%] {\n display: inline-block;\n padding: 1px 7px;\n border-radius: 10px;\n font-size: 0.65rem;\n font-weight: 500;\n background: color-mix(in srgb, var(--mj-brand-primary) 10%, var(--mj-bg-surface));\n color: var(--mj-brand-primary);\n border: 1px solid color-mix(in srgb, var(--mj-brand-primary) 20%, var(--mj-border-default));\n}\n\n.result-tag-more[_ngcontent-%COMP%] {\n display: inline-block;\n padding: 1px 6px;\n font-size: 0.6rem;\n color: var(--mj-text-muted);\n}\n\n.result-card-actions[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 4px;\n flex-shrink: 0;\n}\n\n.result-open-btn[_ngcontent-%COMP%], \n.result-expand-btn[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 28px;\n height: 28px;\n border: 1px solid var(--mj-border-default);\n border-radius: 6px;\n background: transparent;\n color: var(--mj-text-muted);\n font-size: 11px;\n cursor: pointer;\n transition: all 0.15s;\n}\n\n.result-open-btn[_ngcontent-%COMP%]:hover {\n background: color-mix(in srgb, var(--mj-brand-primary) 10%, var(--mj-bg-surface));\n border-color: var(--mj-brand-primary);\n color: var(--mj-brand-primary);\n}\n\n.result-expand-btn[_ngcontent-%COMP%]:hover {\n background: var(--mj-bg-surface-hover);\n color: var(--mj-text-primary);\n}\n\n\n\n.result-card-detail[_ngcontent-%COMP%] {\n padding: 0.75rem 1rem 0.85rem 3.5rem;\n border-top: 1px solid var(--mj-border-subtle);\n background: var(--mj-bg-surface-card);\n}\n\n.detail-section[_ngcontent-%COMP%] {\n margin-bottom: 0.65rem;\n}\n\n.detail-label[_ngcontent-%COMP%] {\n font-size: 0.7rem;\n font-weight: 600;\n color: var(--mj-text-muted);\n text-transform: uppercase;\n letter-spacing: 0.04em;\n margin-bottom: 0.25rem;\n display: block;\n}\n\n.detail-snippet[_ngcontent-%COMP%] {\n margin: 0;\n font-size: 0.82rem;\n color: var(--mj-text-secondary);\n line-height: 1.5;\n}\n\n.detail-meta[_ngcontent-%COMP%] {\n display: flex;\n flex-wrap: wrap;\n gap: 0.75rem;\n margin-bottom: 0.65rem;\n}\n\n.detail-meta-item[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 5px;\n font-size: 0.75rem;\n color: var(--mj-text-muted);\n}\n\n.detail-meta-item[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 0.65rem;\n}\n\n.detail-record-id[_ngcontent-%COMP%] {\n font-family: monospace;\n font-size: 0.7rem;\n max-width: 180px;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.detail-tags[_ngcontent-%COMP%] {\n display: flex;\n flex-wrap: wrap;\n gap: 4px;\n margin-bottom: 0.65rem;\n}\n\n.detail-links[_ngcontent-%COMP%] {\n display: flex;\n flex-wrap: wrap;\n gap: 6px;\n margin-bottom: 8px;\n}\n\n.detail-link[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n gap: 4px;\n padding: 3px 8px;\n border-radius: 6px;\n font-size: 0.72rem;\n color: var(--mj-text-link);\n background: color-mix(in srgb, var(--mj-brand-primary) 5%, var(--mj-bg-surface));\n border: 1px solid color-mix(in srgb, var(--mj-brand-primary) 15%, var(--mj-border-default));\n text-decoration: none;\n transition: background 0.15s ease;\n}\n\n.detail-link[_ngcontent-%COMP%]:hover {\n background: color-mix(in srgb, var(--mj-brand-primary) 12%, var(--mj-bg-surface));\n text-decoration: underline;\n}\n\n.detail-link[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 0.6rem;\n}\n\n.detail-actions[_ngcontent-%COMP%] {\n display: flex;\n gap: 8px;\n}\n\n.detail-open-btn[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n padding: 6px 14px;\n border: 1px solid var(--mj-brand-primary);\n border-radius: 6px;\n background: transparent;\n color: var(--mj-brand-primary);\n font-size: 0.78rem;\n font-weight: 500;\n cursor: pointer;\n transition: all 0.15s;\n}\n\n.detail-open-btn[_ngcontent-%COMP%]:hover {\n background: color-mix(in srgb, var(--mj-brand-primary) 10%, var(--mj-bg-surface));\n}\n\n.detail-similar-btn[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n padding: 6px 14px;\n border: 1px solid var(--mj-border-default);\n border-radius: 6px;\n background: transparent;\n color: var(--mj-text-secondary);\n font-size: 0.78rem;\n font-weight: 500;\n cursor: pointer;\n transition: all 0.15s;\n}\n\n.detail-similar-btn[_ngcontent-%COMP%]:hover {\n border-color: var(--mj-brand-primary);\n color: var(--mj-brand-primary);\n background: color-mix(in srgb, var(--mj-brand-primary) 5%, var(--mj-bg-surface));\n}\n\n.result-card-snippet[_ngcontent-%COMP%] {\n color: var(--mj-text-secondary);\n font-size: 0.82rem;\n line-height: 1.4;\n display: -webkit-box;\n -webkit-line-clamp: 2;\n -webkit-box-orient: vertical;\n overflow: hidden;\n}\n\n.result-card-tags[_ngcontent-%COMP%] {\n display: flex;\n flex-wrap: wrap;\n gap: 0.25rem;\n margin-top: 0.35rem;\n}\n\n.result-card-tag[_ngcontent-%COMP%] {\n display: inline-block;\n padding: 0.1rem 0.4rem;\n border-radius: 4px;\n background: var(--mj-bg-surface-sunken);\n color: var(--mj-text-muted);\n font-size: 0.7rem;\n}\n\n.result-card-tag-more[_ngcontent-%COMP%] {\n color: var(--mj-brand-primary);\n}\n\n.result-card-score[_ngcontent-%COMP%] {\n flex-shrink: 0;\n margin-top: 0.2rem;\n}\n\n.score-circle[_ngcontent-%COMP%] {\n width: 2.5rem;\n height: 2.5rem;\n border-radius: 50%;\n display: flex;\n align-items: center;\n justify-content: center;\n background: color-mix(in srgb, var(--mj-brand-primary) 10%, var(--mj-bg-surface));\n border: 2px solid color-mix(in srgb, var(--mj-brand-primary) 30%, var(--mj-bg-surface));\n}\n\n.score-value[_ngcontent-%COMP%] {\n font-size: 0.7rem;\n font-weight: 700;\n color: var(--mj-brand-primary);\n}\n\n\n\n.results-show-more[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 0.5rem;\n width: 100%;\n padding: 0.5rem 1rem;\n border: none;\n background: transparent;\n color: var(--mj-brand-primary);\n font-size: 0.82rem;\n cursor: pointer;\n justify-content: center;\n transition: background 0.1s ease;\n}\n\n.results-show-more[_ngcontent-%COMP%]:hover {\n background: var(--mj-bg-surface-hover);\n}\n\n\n\n.results-pager[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 4px;\n padding: 0.75rem 0;\n flex-shrink: 0;\n border-top: 1px solid var(--mj-border-subtle);\n background: var(--mj-bg-surface);\n}\n\n.pager-btn[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n justify-content: center;\n min-width: 32px;\n height: 32px;\n border: 1px solid var(--mj-border-default);\n border-radius: 8px;\n background: var(--mj-bg-surface);\n color: var(--mj-text-secondary);\n font-size: 0.82rem;\n font-weight: 500;\n cursor: pointer;\n transition: all 0.15s ease;\n padding: 0 6px;\n}\n\n.pager-btn[_ngcontent-%COMP%]:hover:not(:disabled) {\n background: var(--mj-bg-surface-hover);\n border-color: var(--mj-brand-primary);\n color: var(--mj-brand-primary);\n}\n\n.pager-btn[_ngcontent-%COMP%]:disabled {\n opacity: 0.35;\n cursor: default;\n}\n\n.pager-active[_ngcontent-%COMP%] {\n background: var(--mj-brand-primary);\n border-color: var(--mj-brand-primary);\n color: var(--mj-text-inverse);\n}\n\n.pager-active[_ngcontent-%COMP%]:hover:not(:disabled) {\n background: var(--mj-brand-primary-hover);\n border-color: var(--mj-brand-primary-hover);\n color: var(--mj-text-inverse);\n}\n\n.pager-ellipsis[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 28px;\n color: var(--mj-text-muted);\n font-size: 0.8rem;\n}\n\n.pager-prev[_ngcontent-%COMP%] i[_ngcontent-%COMP%], \n.pager-next[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 0.7rem;\n}"] });
352
677
  }
353
678
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(SearchResultsComponent, [{
354
679
  type: Component,
355
- args: [{ standalone: false, selector: 'mj-search-results', template: "@if (IsLoading) {\n <div class=\"results-loading\">\n <mj-loading text=\"Searching...\" size=\"medium\"></mj-loading>\n </div>\n} @else if (ResultGroups.length === 0 && TotalCount === 0) {\n <div class=\"results-empty\">\n <i class=\"fa-solid fa-search results-empty-icon\"></i>\n <p class=\"results-empty-text\">No results to display</p>\n </div>\n} @else {\n <!-- Results summary -->\n <div class=\"results-summary\">\n <span>{{ TotalCount }} results</span>\n @if (ElapsedMs > 0) {\n <span class=\"results-summary-time\"> in {{ FormatTime(ElapsedMs) }}</span>\n }\n </div>\n\n <!-- Grouped results -->\n @for (group of ResultGroups; track group.SourceType) {\n <div class=\"results-group\">\n <div class=\"results-group-header\" (click)=\"ToggleGroup(group.SourceType)\">\n @if (ShowSourceIcons) {\n <i [class]=\"group.Icon + ' results-group-icon'\"></i>\n }\n <span class=\"results-group-label\">{{ group.Label }}</span>\n <span class=\"results-group-count\">({{ group.TotalCount }})</span>\n <i class=\"fa-solid results-group-chevron\"\n [class.fa-chevron-down]=\"!IsGroupExpanded(group.SourceType)\"\n [class.fa-chevron-up]=\"IsGroupExpanded(group.SourceType)\"></i>\n </div>\n\n @for (result of GetVisibleResults(group); track result.ID) {\n <div class=\"result-card\" [class.result-card-expanded]=\"IsExpanded(result.ID)\">\n <!-- Main row -->\n <div class=\"result-card-main\" (click)=\"ToggleExpand(result)\">\n <div class=\"result-card-icon-wrap\">\n <i [class]=\"result.EntityIcon || result.SourceIcon || 'fa-solid fa-database'\"></i>\n </div>\n <div class=\"result-card-body\">\n <div class=\"result-card-title\">{{ result.RecordName || result.Title }}</div>\n <div class=\"result-card-entity\">{{ result.EntityName }}</div>\n </div>\n @if (ShowScores) {\n <div class=\"result-card-score\">\n <div class=\"score-circle\">\n <span class=\"score-value\">{{ FormatScore(result.Score) }}</span>\n </div>\n </div>\n }\n <div class=\"result-card-actions\">\n <button class=\"result-open-btn\" (click)=\"OnOpenRecord(result, $event)\" title=\"Open record\">\n <i class=\"fa-solid fa-arrow-up-right-from-square\"></i>\n </button>\n <button class=\"result-expand-btn\" (click)=\"ToggleExpand(result, $event)\" title=\"Expand details\">\n <i class=\"fa-solid\" [class.fa-chevron-down]=\"!IsExpanded(result.ID)\"\n [class.fa-chevron-up]=\"IsExpanded(result.ID)\"></i>\n </button>\n </div>\n </div>\n\n <!-- Expanded detail -->\n @if (IsExpanded(result.ID)) {\n <div class=\"result-card-detail\">\n @if (result.Snippet) {\n <div class=\"detail-section\">\n <span class=\"detail-label\">Preview</span>\n <p class=\"detail-snippet\">{{ result.Snippet }}</p>\n </div>\n }\n <div class=\"detail-meta\">\n <div class=\"detail-meta-item\">\n <i class=\"fa-solid fa-layer-group\"></i>\n <span>{{ result.EntityName }}</span>\n </div>\n <div class=\"detail-meta-item\">\n <i class=\"fa-solid fa-fingerprint\"></i>\n <span class=\"detail-record-id\">{{ result.RecordID }}</span>\n </div>\n <div class=\"detail-meta-item\">\n <i class=\"fa-solid fa-signal\"></i>\n <span>{{ result.SourceType }} match</span>\n </div>\n @if (result.ScoreBreakdown) {\n <div class=\"detail-meta-item\">\n <i class=\"fa-solid fa-chart-bar\"></i>\n <span>\n @if (result.ScoreBreakdown.Vector) { Vector: {{ (result.ScoreBreakdown.Vector * 100).toFixed(0) }}% }\n @if (result.ScoreBreakdown.FullText) { FTS: {{ (result.ScoreBreakdown.FullText * 100).toFixed(0) }}% }\n </span>\n </div>\n }\n </div>\n @if (ShowTags && result.Tags.length > 0) {\n <div class=\"detail-tags\">\n @for (tag of result.Tags; track tag) {\n <span class=\"result-card-tag\">{{ tag }}</span>\n }\n </div>\n }\n <div class=\"detail-actions\">\n <button class=\"detail-open-btn\" (click)=\"OnOpenRecord(result, $event)\">\n <i class=\"fa-solid fa-arrow-up-right-from-square\"></i> Open Record\n </button>\n </div>\n </div>\n }\n </div>\n }\n\n @if (HasMoreResults(group)) {\n <button class=\"results-show-more\" (click)=\"ToggleGroup(group.SourceType)\">\n <i class=\"fa-solid fa-chevron-down\"></i>\n Show {{ GetHiddenCount(group) }} more results\n </button>\n }\n </div>\n }\n}\n", styles: ["/* Search Results Component */\n\n.results-loading {\n display: flex;\n justify-content: center;\n padding: 3rem 1rem;\n}\n\n.results-empty {\n display: flex;\n flex-direction: column;\n align-items: center;\n padding: 3rem 1rem;\n gap: 0.5rem;\n}\n\n.results-empty-icon {\n font-size: 2rem;\n color: var(--mj-text-muted);\n margin-bottom: 0.5rem;\n}\n\n.results-empty-text {\n color: var(--mj-text-muted);\n font-size: 0.9rem;\n}\n\n.results-summary {\n padding: 0.75rem 1rem;\n color: var(--mj-text-secondary);\n font-size: 0.85rem;\n border-bottom: 1px solid var(--mj-border-subtle);\n}\n\n.results-summary-time {\n color: var(--mj-text-muted);\n}\n\n/* Group Header */\n.results-group {\n border-bottom: 1px solid var(--mj-border-subtle);\n}\n\n.results-group-header {\n display: flex;\n align-items: center;\n gap: 0.5rem;\n padding: 0.75rem 1rem;\n cursor: pointer;\n transition: background 0.1s ease;\n}\n\n.results-group-header:hover {\n background: var(--mj-bg-surface-hover);\n}\n\n.results-group-icon {\n color: var(--mj-brand-primary);\n font-size: 0.85rem;\n}\n\n.results-group-label {\n font-weight: 600;\n font-size: 0.85rem;\n color: var(--mj-text-primary);\n flex: 1;\n}\n\n.results-group-count {\n font-size: 0.78rem;\n color: var(--mj-text-muted);\n}\n\n.results-group-chevron {\n color: var(--mj-text-muted);\n font-size: 0.7rem;\n transition: transform 0.2s ease;\n}\n\n/* Result Card \u2014 expandable */\n.result-card {\n border: 1px solid var(--mj-border-subtle);\n border-radius: 8px;\n margin: 0 0 0.35rem 1.5rem;\n overflow: hidden;\n transition: border-color 0.15s, box-shadow 0.15s;\n}\n\n.result-card:hover {\n border-color: var(--mj-border-default);\n}\n\n.result-card-expanded {\n border-color: var(--mj-brand-primary);\n box-shadow: 0 2px 8px color-mix(in srgb, var(--mj-brand-primary) 10%, transparent);\n}\n\n.result-card-main {\n display: flex;\n align-items: center;\n gap: 0.75rem;\n padding: 0.65rem 0.85rem;\n cursor: pointer;\n transition: background 0.1s ease;\n}\n\n.result-card-main:hover {\n background: var(--mj-bg-surface-hover);\n}\n\n.result-card-icon-wrap {\n width: 2rem;\n height: 2rem;\n display: flex;\n align-items: center;\n justify-content: center;\n border-radius: 6px;\n background: color-mix(in srgb, var(--mj-brand-primary) 10%, var(--mj-bg-surface));\n color: var(--mj-brand-primary);\n font-size: 0.8rem;\n flex-shrink: 0;\n}\n\n.result-card-body {\n flex: 1;\n min-width: 0;\n}\n\n.result-card-title {\n color: var(--mj-text-primary);\n font-weight: 600;\n font-size: 0.85rem;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.result-card-entity {\n color: var(--mj-text-muted);\n font-size: 0.7rem;\n}\n\n.result-card-actions {\n display: flex;\n align-items: center;\n gap: 4px;\n flex-shrink: 0;\n}\n\n.result-open-btn,\n.result-expand-btn {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 28px;\n height: 28px;\n border: 1px solid var(--mj-border-default);\n border-radius: 6px;\n background: transparent;\n color: var(--mj-text-muted);\n font-size: 11px;\n cursor: pointer;\n transition: all 0.15s;\n}\n\n.result-open-btn:hover {\n background: color-mix(in srgb, var(--mj-brand-primary) 10%, var(--mj-bg-surface));\n border-color: var(--mj-brand-primary);\n color: var(--mj-brand-primary);\n}\n\n.result-expand-btn:hover {\n background: var(--mj-bg-surface-hover);\n color: var(--mj-text-primary);\n}\n\n/* Expanded detail panel */\n.result-card-detail {\n padding: 0.75rem 1rem 0.85rem 3.5rem;\n border-top: 1px solid var(--mj-border-subtle);\n background: var(--mj-bg-surface-card);\n}\n\n.detail-section {\n margin-bottom: 0.65rem;\n}\n\n.detail-label {\n font-size: 0.7rem;\n font-weight: 600;\n color: var(--mj-text-muted);\n text-transform: uppercase;\n letter-spacing: 0.04em;\n margin-bottom: 0.25rem;\n display: block;\n}\n\n.detail-snippet {\n margin: 0;\n font-size: 0.82rem;\n color: var(--mj-text-secondary);\n line-height: 1.5;\n}\n\n.detail-meta {\n display: flex;\n flex-wrap: wrap;\n gap: 0.75rem;\n margin-bottom: 0.65rem;\n}\n\n.detail-meta-item {\n display: flex;\n align-items: center;\n gap: 5px;\n font-size: 0.75rem;\n color: var(--mj-text-muted);\n}\n\n.detail-meta-item i {\n font-size: 0.65rem;\n}\n\n.detail-record-id {\n font-family: monospace;\n font-size: 0.7rem;\n max-width: 180px;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.detail-tags {\n display: flex;\n flex-wrap: wrap;\n gap: 4px;\n margin-bottom: 0.65rem;\n}\n\n.detail-actions {\n display: flex;\n gap: 8px;\n}\n\n.detail-open-btn {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n padding: 6px 14px;\n border: 1px solid var(--mj-brand-primary);\n border-radius: 6px;\n background: transparent;\n color: var(--mj-brand-primary);\n font-size: 0.78rem;\n font-weight: 500;\n cursor: pointer;\n transition: all 0.15s;\n}\n\n.detail-open-btn:hover {\n background: color-mix(in srgb, var(--mj-brand-primary) 10%, var(--mj-bg-surface));\n}\n\n.result-card-snippet {\n color: var(--mj-text-secondary);\n font-size: 0.82rem;\n line-height: 1.4;\n display: -webkit-box;\n -webkit-line-clamp: 2;\n -webkit-box-orient: vertical;\n overflow: hidden;\n}\n\n.result-card-tags {\n display: flex;\n flex-wrap: wrap;\n gap: 0.25rem;\n margin-top: 0.35rem;\n}\n\n.result-card-tag {\n display: inline-block;\n padding: 0.1rem 0.4rem;\n border-radius: 4px;\n background: var(--mj-bg-surface-sunken);\n color: var(--mj-text-muted);\n font-size: 0.7rem;\n}\n\n.result-card-tag-more {\n color: var(--mj-brand-primary);\n}\n\n.result-card-score {\n flex-shrink: 0;\n margin-top: 0.2rem;\n}\n\n.score-circle {\n width: 2.5rem;\n height: 2.5rem;\n border-radius: 50%;\n display: flex;\n align-items: center;\n justify-content: center;\n background: color-mix(in srgb, var(--mj-brand-primary) 10%, var(--mj-bg-surface));\n border: 2px solid color-mix(in srgb, var(--mj-brand-primary) 30%, var(--mj-bg-surface));\n}\n\n.score-value {\n font-size: 0.7rem;\n font-weight: 700;\n color: var(--mj-brand-primary);\n}\n\n/* Show More Button */\n.results-show-more {\n display: flex;\n align-items: center;\n gap: 0.5rem;\n width: 100%;\n padding: 0.5rem 1rem;\n border: none;\n background: transparent;\n color: var(--mj-brand-primary);\n font-size: 0.82rem;\n cursor: pointer;\n justify-content: center;\n transition: background 0.1s ease;\n}\n\n.results-show-more:hover {\n background: var(--mj-bg-surface-hover);\n}\n"] }]
680
+ args: [{ standalone: false, selector: 'mj-search-results', template: "@if (IsLoading) {\n <div class=\"results-loading\">\n <mj-loading text=\"Searching...\" size=\"medium\"></mj-loading>\n </div>\n} @else if ((DisplayMode === 'flat' ? FlatResults.length : ResultGroups.length) === 0 && TotalCount === 0) {\n <div class=\"results-empty\">\n <i class=\"fa-solid fa-search results-empty-icon\"></i>\n <p class=\"results-empty-text\">No results to display</p>\n </div>\n} @else {\n <!-- Results summary -->\n @if (ShowSummary) {\n <div class=\"results-summary\">\n <span>{{ TotalCount }} results</span>\n @if (ElapsedMs > 0) {\n <span class=\"results-summary-time\"> in {{ FormatTime(ElapsedMs) }}</span>\n }\n </div>\n }\n\n @if (DisplayMode === 'flat') {\n <!-- \u2550\u2550\u2550\u2550\u2550\u2550 FLAT BLENDED LIST (sorted by score) \u2550\u2550\u2550\u2550\u2550\u2550 -->\n <div class=\"results-scroll-area\">\n @for (result of PagedResults; track result.ID) {\n <ng-container *ngTemplateOutlet=\"resultCardTpl; context: { $implicit: result }\"></ng-container>\n }\n </div>\n\n <!-- Google-style pagination (sticky at bottom) -->\n @if (TotalPages > 1) {\n <div class=\"results-pager\">\n <button class=\"pager-btn pager-prev\" [disabled]=\"CurrentPage === 1\"\n (click)=\"GoToPage(CurrentPage - 1)\">\n <i class=\"fa-solid fa-chevron-left\"></i>\n </button>\n @for (p of PageNumbers; track $index) {\n @if (p === -1) {\n <span class=\"pager-ellipsis\">...</span>\n } @else {\n <button class=\"pager-btn pager-num\" [class.pager-active]=\"p === CurrentPage\"\n (click)=\"GoToPage(p)\">{{ p }}</button>\n }\n }\n <button class=\"pager-btn pager-next\" [disabled]=\"CurrentPage === TotalPages\"\n (click)=\"GoToPage(CurrentPage + 1)\">\n <i class=\"fa-solid fa-chevron-right\"></i>\n </button>\n </div>\n }\n } @else {\n <!-- \u2550\u2550\u2550\u2550\u2550\u2550 GROUPED BY SOURCE TYPE \u2550\u2550\u2550\u2550\u2550\u2550 -->\n @for (group of ResultGroups; track group.SourceType) {\n <div class=\"results-group\">\n <div class=\"results-group-header\" (click)=\"ToggleGroup(group.SourceType)\">\n @if (ShowSourceIcons) {\n <i [class]=\"group.Icon + ' results-group-icon'\"></i>\n }\n <span class=\"results-group-label\">{{ group.Label }}</span>\n <span class=\"results-group-count\">({{ group.TotalCount }})</span>\n <i class=\"fa-solid results-group-chevron\"\n [class.fa-chevron-down]=\"!IsGroupExpanded(group.SourceType)\"\n [class.fa-chevron-up]=\"IsGroupExpanded(group.SourceType)\"></i>\n </div>\n\n @for (result of GetVisibleResults(group); track result.ID) {\n <ng-container *ngTemplateOutlet=\"resultCardTpl; context: { $implicit: result }\"></ng-container>\n }\n\n @if (HasMoreResults(group)) {\n <button class=\"results-show-more\" (click)=\"ToggleGroup(group.SourceType)\">\n <i class=\"fa-solid fa-chevron-down\"></i>\n Show {{ GetHiddenCount(group) }} more results\n </button>\n }\n </div>\n }\n }\n}\n\n<!-- \u2550\u2550\u2550 Shared result card template \u2550\u2550\u2550 -->\n<ng-template #resultCardTpl let-result>\n <div class=\"result-card\" [class.result-card-expanded]=\"IsExpanded(result.ID)\">\n <!-- Main row -->\n <div class=\"result-card-main\" (click)=\"ToggleExpand(result)\">\n <div class=\"result-card-icon-wrap\">\n <i [class]=\"result.EntityIcon || result.SourceIcon || 'fa-solid fa-database'\"></i>\n </div>\n <div class=\"result-card-body\">\n <div class=\"result-card-title\">{{ result.RecordName || result.Title }}</div>\n <div class=\"result-card-entity\">{{ result.EntityName }}</div>\n @if (result.Tags && result.Tags.length > 0) {\n <div class=\"result-card-tags\">\n @for (tag of result.Tags.slice(0, 5); track tag) {\n <span class=\"result-tag-chip\">{{ tag }}</span>\n }\n @if (result.Tags.length > 5) {\n <span class=\"result-tag-more\">+{{ result.Tags.length - 5 }}</span>\n }\n </div>\n }\n </div>\n @if (ShowScores) {\n <div class=\"result-card-score\">\n <div class=\"score-circle\">\n <span class=\"score-value\">{{ FormatScore(result.Score) }}</span>\n </div>\n </div>\n }\n <div class=\"result-card-actions\">\n <button class=\"result-open-btn\" (click)=\"OnOpenRecord(result, $event)\" title=\"Open record\">\n <i class=\"fa-solid fa-arrow-up-right-from-square\"></i>\n </button>\n <button class=\"result-expand-btn\" (click)=\"ToggleExpand(result, $event)\" title=\"Expand details\">\n <i class=\"fa-solid\" [class.fa-chevron-down]=\"!IsExpanded(result.ID)\"\n [class.fa-chevron-up]=\"IsExpanded(result.ID)\"></i>\n </button>\n </div>\n </div>\n\n <!-- Expanded detail -->\n @if (IsExpanded(result.ID)) {\n <div class=\"result-card-detail\">\n @if (result.Snippet) {\n <div class=\"detail-section\">\n <span class=\"detail-label\">Preview</span>\n <p class=\"detail-snippet\">{{ result.Snippet }}</p>\n </div>\n }\n <div class=\"detail-meta\">\n <div class=\"detail-meta-item\">\n <i class=\"fa-solid fa-layer-group\"></i>\n <span>{{ result.EntityName }}</span>\n </div>\n <div class=\"detail-meta-item\">\n <i class=\"fa-solid fa-fingerprint\"></i>\n <span class=\"detail-record-id\">{{ result.RecordID }}</span>\n </div>\n <!-- SR-1: Show overall score consistently -->\n <div class=\"detail-meta-item\">\n <i class=\"fa-solid fa-signal\"></i>\n <span>Relevance: {{ FormatScore(result.Score) }}</span>\n </div>\n @if (result.ScoreBreakdown) {\n <div class=\"detail-meta-item\">\n <i class=\"fa-solid fa-chart-bar\"></i>\n <span>\n @if (result.ScoreBreakdown.Vector) { Vector: {{ FormatScore(result.ScoreBreakdown.Vector) }} }\n @if (result.ScoreBreakdown.FullText) { FTS: {{ FormatScore(result.ScoreBreakdown.FullText) }} }\n </span>\n </div>\n }\n </div>\n @if (ShowTags && result.Tags.length > 0) {\n <div class=\"detail-tags\">\n @for (tag of result.Tags; track tag) {\n <span class=\"result-card-tag\">{{ tag }}</span>\n }\n </div>\n }\n @if (GetResolvedLinks(result).length > 0) {\n <div class=\"detail-links\">\n @for (link of GetResolvedLinks(result); track link.Value) {\n @if (link.Type === 'URL') {\n <a [href]=\"link.Value\" target=\"_blank\" class=\"detail-link\" (click)=\"$event.stopPropagation()\">\n <i class=\"fa-solid fa-arrow-up-right-from-square\"></i>\n {{ TruncateUrl(link.Value) }}\n </a>\n } @else if (link.Type === 'Email') {\n <a [href]=\"'mailto:' + link.Value\" class=\"detail-link detail-link-email\" (click)=\"$event.stopPropagation()\">\n <i class=\"fa-solid fa-envelope\"></i>\n {{ link.Value }}\n </a>\n }\n }\n </div>\n }\n <div class=\"detail-actions\">\n <button class=\"detail-open-btn\" (click)=\"OnOpenRecord(result, $event)\">\n <i class=\"fa-solid fa-arrow-up-right-from-square\"></i> Open Record\n </button>\n <button class=\"detail-similar-btn\" (click)=\"OnMoreLikeThis(result, $event)\">\n <i class=\"fa-solid fa-shuffle\"></i> See Similar Items\n </button>\n </div>\n </div>\n }\n </div>\n</ng-template>\n", styles: ["/* Search Results Component */\n\n:host {\n display: flex;\n flex-direction: column;\n min-height: 0;\n flex: 1;\n}\n\n.results-scroll-area {\n flex: 1;\n overflow-y: auto;\n min-height: 0;\n}\n\n.results-loading {\n display: flex;\n justify-content: center;\n padding: 3rem 1rem;\n}\n\n.results-empty {\n display: flex;\n flex-direction: column;\n align-items: center;\n padding: 3rem 1rem;\n gap: 0.5rem;\n}\n\n.results-empty-icon {\n font-size: 2rem;\n color: var(--mj-text-muted);\n margin-bottom: 0.5rem;\n}\n\n.results-empty-text {\n color: var(--mj-text-muted);\n font-size: 0.9rem;\n}\n\n.results-summary {\n padding: 0.75rem 1rem;\n color: var(--mj-text-secondary);\n font-size: 0.85rem;\n border-bottom: 1px solid var(--mj-border-subtle);\n}\n\n.results-summary-time {\n color: var(--mj-text-muted);\n}\n\n/* Group Header */\n.results-group {\n border-bottom: 1px solid var(--mj-border-subtle);\n}\n\n.results-group-header {\n display: flex;\n align-items: center;\n gap: 0.5rem;\n padding: 0.75rem 1rem;\n cursor: pointer;\n transition: background 0.1s ease;\n}\n\n.results-group-header:hover {\n background: var(--mj-bg-surface-hover);\n}\n\n.results-group-icon {\n color: var(--mj-brand-primary);\n font-size: 0.85rem;\n}\n\n.results-group-label {\n font-weight: 600;\n font-size: 0.85rem;\n color: var(--mj-text-primary);\n flex: 1;\n}\n\n.results-group-count {\n font-size: 0.78rem;\n color: var(--mj-text-muted);\n}\n\n.results-group-chevron {\n color: var(--mj-text-muted);\n font-size: 0.7rem;\n transition: transform 0.2s ease;\n}\n\n/* Result Card \u2014 expandable */\n.result-card {\n border: 1px solid var(--mj-border-subtle);\n border-radius: 8px;\n margin: 0 0 0.35rem 1.5rem;\n overflow: hidden;\n transition: border-color 0.15s, box-shadow 0.15s;\n}\n\n.result-card:hover {\n border-color: var(--mj-border-default);\n}\n\n.result-card-expanded {\n border-color: var(--mj-brand-primary);\n box-shadow: 0 2px 8px color-mix(in srgb, var(--mj-brand-primary) 10%, transparent);\n}\n\n.result-card-main {\n display: flex;\n align-items: center;\n gap: 0.75rem;\n padding: 0.65rem 0.85rem;\n cursor: pointer;\n transition: background 0.1s ease;\n}\n\n.result-card-main:hover {\n background: var(--mj-bg-surface-hover);\n}\n\n.result-card-icon-wrap {\n width: 2rem;\n height: 2rem;\n display: flex;\n align-items: center;\n justify-content: center;\n border-radius: 6px;\n background: color-mix(in srgb, var(--mj-brand-primary) 10%, var(--mj-bg-surface));\n color: var(--mj-brand-primary);\n font-size: 0.8rem;\n flex-shrink: 0;\n}\n\n.result-card-body {\n flex: 1;\n min-width: 0;\n}\n\n.result-card-title {\n color: var(--mj-text-primary);\n font-weight: 600;\n font-size: 0.85rem;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.result-card-entity {\n color: var(--mj-text-muted);\n font-size: 0.7rem;\n}\n\n.result-card-tags {\n display: flex;\n flex-wrap: wrap;\n gap: 4px;\n margin-top: 4px;\n}\n\n.result-tag-chip {\n display: inline-block;\n padding: 1px 7px;\n border-radius: 10px;\n font-size: 0.65rem;\n font-weight: 500;\n background: color-mix(in srgb, var(--mj-brand-primary) 10%, var(--mj-bg-surface));\n color: var(--mj-brand-primary);\n border: 1px solid color-mix(in srgb, var(--mj-brand-primary) 20%, var(--mj-border-default));\n}\n\n.result-tag-more {\n display: inline-block;\n padding: 1px 6px;\n font-size: 0.6rem;\n color: var(--mj-text-muted);\n}\n\n.result-card-actions {\n display: flex;\n align-items: center;\n gap: 4px;\n flex-shrink: 0;\n}\n\n.result-open-btn,\n.result-expand-btn {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 28px;\n height: 28px;\n border: 1px solid var(--mj-border-default);\n border-radius: 6px;\n background: transparent;\n color: var(--mj-text-muted);\n font-size: 11px;\n cursor: pointer;\n transition: all 0.15s;\n}\n\n.result-open-btn:hover {\n background: color-mix(in srgb, var(--mj-brand-primary) 10%, var(--mj-bg-surface));\n border-color: var(--mj-brand-primary);\n color: var(--mj-brand-primary);\n}\n\n.result-expand-btn:hover {\n background: var(--mj-bg-surface-hover);\n color: var(--mj-text-primary);\n}\n\n/* Expanded detail panel */\n.result-card-detail {\n padding: 0.75rem 1rem 0.85rem 3.5rem;\n border-top: 1px solid var(--mj-border-subtle);\n background: var(--mj-bg-surface-card);\n}\n\n.detail-section {\n margin-bottom: 0.65rem;\n}\n\n.detail-label {\n font-size: 0.7rem;\n font-weight: 600;\n color: var(--mj-text-muted);\n text-transform: uppercase;\n letter-spacing: 0.04em;\n margin-bottom: 0.25rem;\n display: block;\n}\n\n.detail-snippet {\n margin: 0;\n font-size: 0.82rem;\n color: var(--mj-text-secondary);\n line-height: 1.5;\n}\n\n.detail-meta {\n display: flex;\n flex-wrap: wrap;\n gap: 0.75rem;\n margin-bottom: 0.65rem;\n}\n\n.detail-meta-item {\n display: flex;\n align-items: center;\n gap: 5px;\n font-size: 0.75rem;\n color: var(--mj-text-muted);\n}\n\n.detail-meta-item i {\n font-size: 0.65rem;\n}\n\n.detail-record-id {\n font-family: monospace;\n font-size: 0.7rem;\n max-width: 180px;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.detail-tags {\n display: flex;\n flex-wrap: wrap;\n gap: 4px;\n margin-bottom: 0.65rem;\n}\n\n.detail-links {\n display: flex;\n flex-wrap: wrap;\n gap: 6px;\n margin-bottom: 8px;\n}\n\n.detail-link {\n display: inline-flex;\n align-items: center;\n gap: 4px;\n padding: 3px 8px;\n border-radius: 6px;\n font-size: 0.72rem;\n color: var(--mj-text-link);\n background: color-mix(in srgb, var(--mj-brand-primary) 5%, var(--mj-bg-surface));\n border: 1px solid color-mix(in srgb, var(--mj-brand-primary) 15%, var(--mj-border-default));\n text-decoration: none;\n transition: background 0.15s ease;\n}\n\n.detail-link:hover {\n background: color-mix(in srgb, var(--mj-brand-primary) 12%, var(--mj-bg-surface));\n text-decoration: underline;\n}\n\n.detail-link i {\n font-size: 0.6rem;\n}\n\n.detail-actions {\n display: flex;\n gap: 8px;\n}\n\n.detail-open-btn {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n padding: 6px 14px;\n border: 1px solid var(--mj-brand-primary);\n border-radius: 6px;\n background: transparent;\n color: var(--mj-brand-primary);\n font-size: 0.78rem;\n font-weight: 500;\n cursor: pointer;\n transition: all 0.15s;\n}\n\n.detail-open-btn:hover {\n background: color-mix(in srgb, var(--mj-brand-primary) 10%, var(--mj-bg-surface));\n}\n\n.detail-similar-btn {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n padding: 6px 14px;\n border: 1px solid var(--mj-border-default);\n border-radius: 6px;\n background: transparent;\n color: var(--mj-text-secondary);\n font-size: 0.78rem;\n font-weight: 500;\n cursor: pointer;\n transition: all 0.15s;\n}\n\n.detail-similar-btn:hover {\n border-color: var(--mj-brand-primary);\n color: var(--mj-brand-primary);\n background: color-mix(in srgb, var(--mj-brand-primary) 5%, var(--mj-bg-surface));\n}\n\n.result-card-snippet {\n color: var(--mj-text-secondary);\n font-size: 0.82rem;\n line-height: 1.4;\n display: -webkit-box;\n -webkit-line-clamp: 2;\n -webkit-box-orient: vertical;\n overflow: hidden;\n}\n\n.result-card-tags {\n display: flex;\n flex-wrap: wrap;\n gap: 0.25rem;\n margin-top: 0.35rem;\n}\n\n.result-card-tag {\n display: inline-block;\n padding: 0.1rem 0.4rem;\n border-radius: 4px;\n background: var(--mj-bg-surface-sunken);\n color: var(--mj-text-muted);\n font-size: 0.7rem;\n}\n\n.result-card-tag-more {\n color: var(--mj-brand-primary);\n}\n\n.result-card-score {\n flex-shrink: 0;\n margin-top: 0.2rem;\n}\n\n.score-circle {\n width: 2.5rem;\n height: 2.5rem;\n border-radius: 50%;\n display: flex;\n align-items: center;\n justify-content: center;\n background: color-mix(in srgb, var(--mj-brand-primary) 10%, var(--mj-bg-surface));\n border: 2px solid color-mix(in srgb, var(--mj-brand-primary) 30%, var(--mj-bg-surface));\n}\n\n.score-value {\n font-size: 0.7rem;\n font-weight: 700;\n color: var(--mj-brand-primary);\n}\n\n/* Show More Button */\n.results-show-more {\n display: flex;\n align-items: center;\n gap: 0.5rem;\n width: 100%;\n padding: 0.5rem 1rem;\n border: none;\n background: transparent;\n color: var(--mj-brand-primary);\n font-size: 0.82rem;\n cursor: pointer;\n justify-content: center;\n transition: background 0.1s ease;\n}\n\n.results-show-more:hover {\n background: var(--mj-bg-surface-hover);\n}\n\n/* Google-style Pagination \u2014 pinned at bottom */\n.results-pager {\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 4px;\n padding: 0.75rem 0;\n flex-shrink: 0;\n border-top: 1px solid var(--mj-border-subtle);\n background: var(--mj-bg-surface);\n}\n\n.pager-btn {\n display: flex;\n align-items: center;\n justify-content: center;\n min-width: 32px;\n height: 32px;\n border: 1px solid var(--mj-border-default);\n border-radius: 8px;\n background: var(--mj-bg-surface);\n color: var(--mj-text-secondary);\n font-size: 0.82rem;\n font-weight: 500;\n cursor: pointer;\n transition: all 0.15s ease;\n padding: 0 6px;\n}\n\n.pager-btn:hover:not(:disabled) {\n background: var(--mj-bg-surface-hover);\n border-color: var(--mj-brand-primary);\n color: var(--mj-brand-primary);\n}\n\n.pager-btn:disabled {\n opacity: 0.35;\n cursor: default;\n}\n\n.pager-active {\n background: var(--mj-brand-primary);\n border-color: var(--mj-brand-primary);\n color: var(--mj-text-inverse);\n}\n\n.pager-active:hover:not(:disabled) {\n background: var(--mj-brand-primary-hover);\n border-color: var(--mj-brand-primary-hover);\n color: var(--mj-text-inverse);\n}\n\n.pager-ellipsis {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 28px;\n color: var(--mj-text-muted);\n font-size: 0.8rem;\n}\n\n.pager-prev i,\n.pager-next i {\n font-size: 0.7rem;\n}\n"] }]
356
681
  }], null, { ResultGroups: [{
357
682
  type: Input
683
+ }], FlatResults: [{
684
+ type: Input
685
+ }], DisplayMode: [{
686
+ type: Input
358
687
  }], IsLoading: [{
359
688
  type: Input
360
689
  }], TotalCount: [{
@@ -363,6 +692,10 @@ export class SearchResultsComponent {
363
692
  type: Input
364
693
  }], MaxPerGroup: [{
365
694
  type: Input
695
+ }], PageSize: [{
696
+ type: Input
697
+ }], ShowSummary: [{
698
+ type: Input
366
699
  }], ShowScores: [{
367
700
  type: Input
368
701
  }], ShowTags: [{
@@ -373,6 +706,8 @@ export class SearchResultsComponent {
373
706
  type: Output
374
707
  }], OpenRecordRequested: [{
375
708
  type: Output
709
+ }], MoreLikeThisRequested: [{
710
+ type: Output
376
711
  }] }); })();
377
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(SearchResultsComponent, { className: "SearchResultsComponent", filePath: "src/lib/search-results.component.ts", lineNumber: 25 }); })();
712
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(SearchResultsComponent, { className: "SearchResultsComponent", filePath: "src/lib/search-results.component.ts", lineNumber: 26 }); })();
378
713
  //# sourceMappingURL=search-results.component.js.map