@memberjunction/ng-search 5.43.0 → 5.44.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.
@@ -11,6 +11,7 @@ import { BaseAngularComponent } from '@memberjunction/ng-base-types';
11
11
  import * as i0 from "@angular/core";
12
12
  import * as i1 from "@angular/common";
13
13
  import * as i2 from "@memberjunction/ng-shared-generic";
14
+ import * as i3 from "@memberjunction/ng-ui-components";
14
15
  const _c0 = a0 => ({ $implicit: a0 });
15
16
  const _forTrack0 = ($index, $item) => $item.ID;
16
17
  const _forTrack1 = ($index, $item) => $item.SourceType;
@@ -21,14 +22,10 @@ function SearchResultsComponent_Conditional_0_Template(rf, ctx) { if (rf & 1) {
21
22
  i0.ɵɵelementEnd();
22
23
  } }
23
24
  function SearchResultsComponent_Conditional_1_Template(rf, ctx) { if (rf & 1) {
24
- i0.ɵɵelementStart(0, "div", 2);
25
- i0.ɵɵelement(1, "i", 4);
26
- i0.ɵɵelementStart(2, "p", 5);
27
- i0.ɵɵtext(3, "No results to display");
28
- i0.ɵɵelementEnd()();
25
+ i0.ɵɵelement(0, "mj-empty-state", 2);
29
26
  } }
30
27
  function SearchResultsComponent_Conditional_2_Conditional_0_Conditional_3_Template(rf, ctx) { if (rf & 1) {
31
- i0.ɵɵelementStart(0, "span", 7);
28
+ i0.ɵɵelementStart(0, "span", 5);
32
29
  i0.ɵɵtext(1);
33
30
  i0.ɵɵelementEnd();
34
31
  } if (rf & 2) {
@@ -37,10 +34,10 @@ function SearchResultsComponent_Conditional_2_Conditional_0_Conditional_3_Templa
37
34
  i0.ɵɵtextInterpolate1(" in ", ctx_r0.FormatTime(ctx_r0.ElapsedMs));
38
35
  } }
39
36
  function SearchResultsComponent_Conditional_2_Conditional_0_Template(rf, ctx) { if (rf & 1) {
40
- i0.ɵɵelementStart(0, "div", 6)(1, "span");
37
+ i0.ɵɵelementStart(0, "div", 4)(1, "span");
41
38
  i0.ɵɵtext(2);
42
39
  i0.ɵɵelementEnd();
43
- i0.ɵɵconditionalCreate(3, SearchResultsComponent_Conditional_2_Conditional_0_Conditional_3_Template, 2, 1, "span", 7);
40
+ i0.ɵɵconditionalCreate(3, SearchResultsComponent_Conditional_2_Conditional_0_Conditional_3_Template, 2, 1, "span", 5);
44
41
  i0.ɵɵelementEnd();
45
42
  } if (rf & 2) {
46
43
  const ctx_r0 = i0.ɵɵnextContext(2);
@@ -53,7 +50,7 @@ function SearchResultsComponent_Conditional_2_Conditional_1_For_2_ng_container_0
53
50
  i0.ɵɵelementContainer(0);
54
51
  } }
55
52
  function SearchResultsComponent_Conditional_2_Conditional_1_For_2_Template(rf, ctx) { if (rf & 1) {
56
- i0.ɵɵtemplate(0, SearchResultsComponent_Conditional_2_Conditional_1_For_2_ng_container_0_Template, 1, 0, "ng-container", 10);
53
+ i0.ɵɵtemplate(0, SearchResultsComponent_Conditional_2_Conditional_1_For_2_ng_container_0_Template, 1, 0, "ng-container", 8);
57
54
  } if (rf & 2) {
58
55
  const result_r2 = ctx.$implicit;
59
56
  i0.ɵɵnextContext(3);
@@ -61,13 +58,13 @@ function SearchResultsComponent_Conditional_2_Conditional_1_For_2_Template(rf, c
61
58
  i0.ɵɵproperty("ngTemplateOutlet", resultCardTpl_r3)("ngTemplateOutletContext", i0.ɵɵpureFunction1(2, _c0, result_r2));
62
59
  } }
63
60
  function SearchResultsComponent_Conditional_2_Conditional_1_Conditional_3_For_4_Conditional_0_Template(rf, ctx) { if (rf & 1) {
64
- i0.ɵɵelementStart(0, "span", 15);
61
+ i0.ɵɵelementStart(0, "span", 13);
65
62
  i0.ɵɵtext(1, "...");
66
63
  i0.ɵɵelementEnd();
67
64
  } }
68
65
  function SearchResultsComponent_Conditional_2_Conditional_1_Conditional_3_For_4_Conditional_1_Template(rf, ctx) { if (rf & 1) {
69
66
  const _r5 = i0.ɵɵgetCurrentView();
70
- i0.ɵɵelementStart(0, "button", 17);
67
+ i0.ɵɵelementStart(0, "button", 15);
71
68
  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)); });
72
69
  i0.ɵɵtext(1);
73
70
  i0.ɵɵelementEnd();
@@ -79,21 +76,21 @@ function SearchResultsComponent_Conditional_2_Conditional_1_Conditional_3_For_4_
79
76
  i0.ɵɵtextInterpolate(p_r6);
80
77
  } }
81
78
  function SearchResultsComponent_Conditional_2_Conditional_1_Conditional_3_For_4_Template(rf, ctx) { if (rf & 1) {
82
- 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);
79
+ i0.ɵɵconditionalCreate(0, SearchResultsComponent_Conditional_2_Conditional_1_Conditional_3_For_4_Conditional_0_Template, 2, 0, "span", 13)(1, SearchResultsComponent_Conditional_2_Conditional_1_Conditional_3_For_4_Conditional_1_Template, 2, 3, "button", 14);
83
80
  } if (rf & 2) {
84
81
  const p_r6 = ctx.$implicit;
85
82
  i0.ɵɵconditional(p_r6 === -1 ? 0 : 1);
86
83
  } }
87
84
  function SearchResultsComponent_Conditional_2_Conditional_1_Conditional_3_Template(rf, ctx) { if (rf & 1) {
88
85
  const _r4 = i0.ɵɵgetCurrentView();
89
- i0.ɵɵelementStart(0, "div", 9)(1, "button", 11);
86
+ i0.ɵɵelementStart(0, "div", 7)(1, "button", 9);
90
87
  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)); });
91
- i0.ɵɵelement(2, "i", 12);
88
+ i0.ɵɵelement(2, "i", 10);
92
89
  i0.ɵɵelementEnd();
93
90
  i0.ɵɵrepeaterCreate(3, SearchResultsComponent_Conditional_2_Conditional_1_Conditional_3_For_4_Template, 2, 1, null, null, i0.ɵɵrepeaterTrackByIndex);
94
- i0.ɵɵelementStart(5, "button", 13);
91
+ i0.ɵɵelementStart(5, "button", 11);
95
92
  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)); });
96
- i0.ɵɵelement(6, "i", 14);
93
+ i0.ɵɵelement(6, "i", 12);
97
94
  i0.ɵɵelementEnd()();
98
95
  } if (rf & 2) {
99
96
  const ctx_r0 = i0.ɵɵnextContext(3);
@@ -105,10 +102,10 @@ function SearchResultsComponent_Conditional_2_Conditional_1_Conditional_3_Templa
105
102
  i0.ɵɵproperty("disabled", ctx_r0.CurrentPage === ctx_r0.TotalPages);
106
103
  } }
107
104
  function SearchResultsComponent_Conditional_2_Conditional_1_Template(rf, ctx) { if (rf & 1) {
108
- i0.ɵɵelementStart(0, "div", 8);
105
+ i0.ɵɵelementStart(0, "div", 6);
109
106
  i0.ɵɵrepeaterCreate(1, SearchResultsComponent_Conditional_2_Conditional_1_For_2_Template, 1, 4, "ng-container", null, _forTrack0);
110
107
  i0.ɵɵelementEnd();
111
- i0.ɵɵconditionalCreate(3, SearchResultsComponent_Conditional_2_Conditional_1_Conditional_3_Template, 7, 2, "div", 9);
108
+ i0.ɵɵconditionalCreate(3, SearchResultsComponent_Conditional_2_Conditional_1_Conditional_3_Template, 7, 2, "div", 7);
112
109
  } if (rf & 2) {
113
110
  const ctx_r0 = i0.ɵɵnextContext(2);
114
111
  i0.ɵɵadvance();
@@ -126,7 +123,7 @@ function SearchResultsComponent_Conditional_2_Conditional_2_For_1_For_9_ng_conta
126
123
  i0.ɵɵelementContainer(0);
127
124
  } }
128
125
  function SearchResultsComponent_Conditional_2_Conditional_2_For_1_For_9_Template(rf, ctx) { if (rf & 1) {
129
- i0.ɵɵtemplate(0, SearchResultsComponent_Conditional_2_Conditional_2_For_1_For_9_ng_container_0_Template, 1, 0, "ng-container", 10);
126
+ i0.ɵɵtemplate(0, SearchResultsComponent_Conditional_2_Conditional_2_For_1_For_9_ng_container_0_Template, 1, 0, "ng-container", 8);
130
127
  } if (rf & 2) {
131
128
  const result_r9 = ctx.$implicit;
132
129
  i0.ɵɵnextContext(4);
@@ -135,9 +132,9 @@ function SearchResultsComponent_Conditional_2_Conditional_2_For_1_For_9_Template
135
132
  } }
136
133
  function SearchResultsComponent_Conditional_2_Conditional_2_For_1_Conditional_10_Template(rf, ctx) { if (rf & 1) {
137
134
  const _r10 = i0.ɵɵgetCurrentView();
138
- i0.ɵɵelementStart(0, "button", 25);
135
+ i0.ɵɵelementStart(0, "button", 23);
139
136
  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)); });
140
- i0.ɵɵelement(1, "i", 26);
137
+ i0.ɵɵelement(1, "i", 24);
141
138
  i0.ɵɵtext(2);
142
139
  i0.ɵɵelementEnd();
143
140
  } if (rf & 2) {
@@ -148,19 +145,19 @@ function SearchResultsComponent_Conditional_2_Conditional_2_For_1_Conditional_10
148
145
  } }
149
146
  function SearchResultsComponent_Conditional_2_Conditional_2_For_1_Template(rf, ctx) { if (rf & 1) {
150
147
  const _r7 = i0.ɵɵgetCurrentView();
151
- i0.ɵɵelementStart(0, "div", 18)(1, "div", 19);
148
+ i0.ɵɵelementStart(0, "div", 16)(1, "div", 17);
152
149
  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)); });
153
- i0.ɵɵconditionalCreate(2, SearchResultsComponent_Conditional_2_Conditional_2_For_1_Conditional_2_Template, 1, 2, "i", 20);
154
- i0.ɵɵelementStart(3, "span", 21);
150
+ i0.ɵɵconditionalCreate(2, SearchResultsComponent_Conditional_2_Conditional_2_For_1_Conditional_2_Template, 1, 2, "i", 18);
151
+ i0.ɵɵelementStart(3, "span", 19);
155
152
  i0.ɵɵtext(4);
156
153
  i0.ɵɵelementEnd();
157
- i0.ɵɵelementStart(5, "span", 22);
154
+ i0.ɵɵelementStart(5, "span", 20);
158
155
  i0.ɵɵtext(6);
159
156
  i0.ɵɵelementEnd();
160
- i0.ɵɵelement(7, "i", 23);
157
+ i0.ɵɵelement(7, "i", 21);
161
158
  i0.ɵɵelementEnd();
162
159
  i0.ɵɵrepeaterCreate(8, SearchResultsComponent_Conditional_2_Conditional_2_For_1_For_9_Template, 1, 4, "ng-container", null, _forTrack0);
163
- i0.ɵɵconditionalCreate(10, SearchResultsComponent_Conditional_2_Conditional_2_For_1_Conditional_10_Template, 3, 1, "button", 24);
160
+ i0.ɵɵconditionalCreate(10, SearchResultsComponent_Conditional_2_Conditional_2_For_1_Conditional_10_Template, 3, 1, "button", 22);
164
161
  i0.ɵɵelementEnd();
165
162
  } if (rf & 2) {
166
163
  const group_r8 = ctx.$implicit;
@@ -179,13 +176,13 @@ function SearchResultsComponent_Conditional_2_Conditional_2_For_1_Template(rf, c
179
176
  i0.ɵɵconditional(ctx_r0.HasMoreResults(group_r8) ? 10 : -1);
180
177
  } }
181
178
  function SearchResultsComponent_Conditional_2_Conditional_2_Template(rf, ctx) { if (rf & 1) {
182
- i0.ɵɵrepeaterCreate(0, SearchResultsComponent_Conditional_2_Conditional_2_For_1_Template, 11, 8, "div", 18, _forTrack1);
179
+ i0.ɵɵrepeaterCreate(0, SearchResultsComponent_Conditional_2_Conditional_2_For_1_Template, 11, 8, "div", 16, _forTrack1);
183
180
  } if (rf & 2) {
184
181
  const ctx_r0 = i0.ɵɵnextContext(2);
185
182
  i0.ɵɵrepeater(ctx_r0.ResultGroups);
186
183
  } }
187
184
  function SearchResultsComponent_Conditional_2_Template(rf, ctx) { if (rf & 1) {
188
- i0.ɵɵconditionalCreate(0, SearchResultsComponent_Conditional_2_Conditional_0_Template, 4, 2, "div", 6);
185
+ i0.ɵɵconditionalCreate(0, SearchResultsComponent_Conditional_2_Conditional_0_Template, 4, 2, "div", 4);
189
186
  i0.ɵɵconditionalCreate(1, SearchResultsComponent_Conditional_2_Conditional_1_Template, 4, 1)(2, SearchResultsComponent_Conditional_2_Conditional_2_Template, 2, 0);
190
187
  } if (rf & 2) {
191
188
  const ctx_r0 = i0.ɵɵnextContext();
@@ -194,14 +191,14 @@ function SearchResultsComponent_Conditional_2_Template(rf, ctx) { if (rf & 1) {
194
191
  i0.ɵɵconditional(ctx_r0.DisplayMode === "flat" ? 1 : 2);
195
192
  } }
196
193
  function SearchResultsComponent_ng_template_3_Conditional_7_For_2_Template(rf, ctx) { if (rf & 1) {
197
- i0.ɵɵelement(0, "span", 40);
194
+ i0.ɵɵelement(0, "span", 38);
198
195
  } if (rf & 2) {
199
196
  const tag_r13 = ctx.$implicit;
200
197
  const ctx_r0 = i0.ɵɵnextContext(3);
201
198
  i0.ɵɵproperty("innerHTML", ctx_r0.HighlightMatch(tag_r13), i0.ɵɵsanitizeHtml);
202
199
  } }
203
200
  function SearchResultsComponent_ng_template_3_Conditional_7_Conditional_3_Template(rf, ctx) { if (rf & 1) {
204
- i0.ɵɵelementStart(0, "span", 41);
201
+ i0.ɵɵelementStart(0, "span", 39);
205
202
  i0.ɵɵtext(1);
206
203
  i0.ɵɵelementEnd();
207
204
  } if (rf & 2) {
@@ -210,9 +207,9 @@ function SearchResultsComponent_ng_template_3_Conditional_7_Conditional_3_Templa
210
207
  i0.ɵɵtextInterpolate1("+", result_r12.Tags.length - 5);
211
208
  } }
212
209
  function SearchResultsComponent_ng_template_3_Conditional_7_Template(rf, ctx) { if (rf & 1) {
213
- i0.ɵɵelementStart(0, "div", 33);
214
- i0.ɵɵrepeaterCreate(1, SearchResultsComponent_ng_template_3_Conditional_7_For_2_Template, 1, 1, "span", 40, i0.ɵɵrepeaterTrackByIdentity);
215
- i0.ɵɵconditionalCreate(3, SearchResultsComponent_ng_template_3_Conditional_7_Conditional_3_Template, 2, 1, "span", 41);
210
+ i0.ɵɵelementStart(0, "div", 31);
211
+ i0.ɵɵrepeaterCreate(1, SearchResultsComponent_ng_template_3_Conditional_7_For_2_Template, 1, 1, "span", 38, i0.ɵɵrepeaterTrackByIdentity);
212
+ i0.ɵɵconditionalCreate(3, SearchResultsComponent_ng_template_3_Conditional_7_Conditional_3_Template, 2, 1, "span", 39);
216
213
  i0.ɵɵelementEnd();
217
214
  } if (rf & 2) {
218
215
  const result_r12 = i0.ɵɵnextContext().$implicit;
@@ -222,7 +219,7 @@ function SearchResultsComponent_ng_template_3_Conditional_7_Template(rf, ctx) {
222
219
  i0.ɵɵconditional(result_r12.Tags.length > 5 ? 3 : -1);
223
220
  } }
224
221
  function SearchResultsComponent_ng_template_3_Conditional_8_Template(rf, ctx) { if (rf & 1) {
225
- i0.ɵɵelementStart(0, "div", 34)(1, "div", 42)(2, "span", 43);
222
+ i0.ɵɵelementStart(0, "div", 32)(1, "div", 40)(2, "span", 41);
226
223
  i0.ɵɵtext(3);
227
224
  i0.ɵɵelementEnd()()();
228
225
  } if (rf & 2) {
@@ -234,10 +231,10 @@ function SearchResultsComponent_ng_template_3_Conditional_8_Template(rf, ctx) {
234
231
  i0.ɵɵtextInterpolate(ctx_r0.FormatScore(result_r12.Score));
235
232
  } }
236
233
  function SearchResultsComponent_ng_template_3_Conditional_14_Conditional_1_Template(rf, ctx) { if (rf & 1) {
237
- i0.ɵɵelementStart(0, "div", 44)(1, "span", 57);
234
+ i0.ɵɵelementStart(0, "div", 42)(1, "span", 55);
238
235
  i0.ɵɵtext(2, "Preview");
239
236
  i0.ɵɵelementEnd();
240
- i0.ɵɵelement(3, "p", 58);
237
+ i0.ɵɵelement(3, "p", 56);
241
238
  i0.ɵɵelementEnd();
242
239
  } if (rf & 2) {
243
240
  const result_r12 = i0.ɵɵnextContext(2).$implicit;
@@ -260,8 +257,8 @@ function SearchResultsComponent_ng_template_3_Conditional_14_Conditional_15_Cond
260
257
  i0.ɵɵtextInterpolate1(" FTS: ", ctx_r0.FormatScore(result_r12.ScoreBreakdown.FullText), " ");
261
258
  } }
262
259
  function SearchResultsComponent_ng_template_3_Conditional_14_Conditional_15_Template(rf, ctx) { if (rf & 1) {
263
- i0.ɵɵelementStart(0, "div", 46);
264
- i0.ɵɵelement(1, "i", 59);
260
+ i0.ɵɵelementStart(0, "div", 44);
261
+ i0.ɵɵelement(1, "i", 57);
265
262
  i0.ɵɵelementStart(2, "span");
266
263
  i0.ɵɵconditionalCreate(3, SearchResultsComponent_ng_template_3_Conditional_14_Conditional_15_Conditional_3_Template, 1, 1);
267
264
  i0.ɵɵconditionalCreate(4, SearchResultsComponent_ng_template_3_Conditional_14_Conditional_15_Conditional_4_Template, 1, 1);
@@ -274,15 +271,15 @@ function SearchResultsComponent_ng_template_3_Conditional_14_Conditional_15_Temp
274
271
  i0.ɵɵconditional(result_r12.ScoreBreakdown.FullText ? 4 : -1);
275
272
  } }
276
273
  function SearchResultsComponent_ng_template_3_Conditional_14_Conditional_16_For_2_Template(rf, ctx) { if (rf & 1) {
277
- i0.ɵɵelement(0, "span", 60);
274
+ i0.ɵɵelement(0, "span", 58);
278
275
  } if (rf & 2) {
279
276
  const tag_r15 = ctx.$implicit;
280
277
  const ctx_r0 = i0.ɵɵnextContext(4);
281
278
  i0.ɵɵproperty("innerHTML", ctx_r0.HighlightMatch(tag_r15), i0.ɵɵsanitizeHtml);
282
279
  } }
283
280
  function SearchResultsComponent_ng_template_3_Conditional_14_Conditional_16_Template(rf, ctx) { if (rf & 1) {
284
- i0.ɵɵelementStart(0, "div", 51);
285
- i0.ɵɵrepeaterCreate(1, SearchResultsComponent_ng_template_3_Conditional_14_Conditional_16_For_2_Template, 1, 1, "span", 60, i0.ɵɵrepeaterTrackByIdentity);
281
+ i0.ɵɵelementStart(0, "div", 49);
282
+ i0.ɵɵrepeaterCreate(1, SearchResultsComponent_ng_template_3_Conditional_14_Conditional_16_For_2_Template, 1, 1, "span", 58, i0.ɵɵrepeaterTrackByIdentity);
286
283
  i0.ɵɵelementEnd();
287
284
  } if (rf & 2) {
288
285
  const result_r12 = i0.ɵɵnextContext(2).$implicit;
@@ -291,9 +288,9 @@ function SearchResultsComponent_ng_template_3_Conditional_14_Conditional_16_Temp
291
288
  } }
292
289
  function SearchResultsComponent_ng_template_3_Conditional_14_Conditional_17_For_2_Conditional_0_Template(rf, ctx) { if (rf & 1) {
293
290
  const _r16 = i0.ɵɵgetCurrentView();
294
- i0.ɵɵelementStart(0, "a", 63);
291
+ i0.ɵɵelementStart(0, "a", 61);
295
292
  i0.ɵɵlistener("click", function SearchResultsComponent_ng_template_3_Conditional_14_Conditional_17_For_2_Conditional_0_Template_a_click_0_listener($event) { i0.ɵɵrestoreView(_r16); return i0.ɵɵresetView($event.stopPropagation()); });
296
- i0.ɵɵelement(1, "i", 64);
293
+ i0.ɵɵelement(1, "i", 62);
297
294
  i0.ɵɵtext(2);
298
295
  i0.ɵɵelementEnd();
299
296
  } if (rf & 2) {
@@ -305,9 +302,9 @@ function SearchResultsComponent_ng_template_3_Conditional_14_Conditional_17_For_
305
302
  } }
306
303
  function SearchResultsComponent_ng_template_3_Conditional_14_Conditional_17_For_2_Conditional_1_Template(rf, ctx) { if (rf & 1) {
307
304
  const _r18 = i0.ɵɵgetCurrentView();
308
- i0.ɵɵelementStart(0, "a", 65);
305
+ i0.ɵɵelementStart(0, "a", 63);
309
306
  i0.ɵɵlistener("click", function SearchResultsComponent_ng_template_3_Conditional_14_Conditional_17_For_2_Conditional_1_Template_a_click_0_listener($event) { i0.ɵɵrestoreView(_r18); return i0.ɵɵresetView($event.stopPropagation()); });
310
- i0.ɵɵelement(1, "i", 66);
307
+ i0.ɵɵelement(1, "i", 64);
311
308
  i0.ɵɵtext(2);
312
309
  i0.ɵɵelementEnd();
313
310
  } if (rf & 2) {
@@ -317,13 +314,13 @@ function SearchResultsComponent_ng_template_3_Conditional_14_Conditional_17_For_
317
314
  i0.ɵɵtextInterpolate1(" ", link_r17.Value, " ");
318
315
  } }
319
316
  function SearchResultsComponent_ng_template_3_Conditional_14_Conditional_17_For_2_Template(rf, ctx) { if (rf & 1) {
320
- i0.ɵɵconditionalCreate(0, SearchResultsComponent_ng_template_3_Conditional_14_Conditional_17_For_2_Conditional_0_Template, 3, 2, "a", 61)(1, SearchResultsComponent_ng_template_3_Conditional_14_Conditional_17_For_2_Conditional_1_Template, 3, 2, "a", 62);
317
+ i0.ɵɵconditionalCreate(0, SearchResultsComponent_ng_template_3_Conditional_14_Conditional_17_For_2_Conditional_0_Template, 3, 2, "a", 59)(1, SearchResultsComponent_ng_template_3_Conditional_14_Conditional_17_For_2_Conditional_1_Template, 3, 2, "a", 60);
321
318
  } if (rf & 2) {
322
319
  const link_r17 = ctx.$implicit;
323
320
  i0.ɵɵconditional(link_r17.Type === "URL" ? 0 : link_r17.Type === "Email" ? 1 : -1);
324
321
  } }
325
322
  function SearchResultsComponent_ng_template_3_Conditional_14_Conditional_17_Template(rf, ctx) { if (rf & 1) {
326
- i0.ɵɵelementStart(0, "div", 52);
323
+ i0.ɵɵelementStart(0, "div", 50);
327
324
  i0.ɵɵrepeaterCreate(1, SearchResultsComponent_ng_template_3_Conditional_14_Conditional_17_For_2_Template, 2, 1, null, null, _forTrack2);
328
325
  i0.ɵɵelementEnd();
329
326
  } if (rf & 2) {
@@ -333,43 +330,43 @@ function SearchResultsComponent_ng_template_3_Conditional_14_Conditional_17_Temp
333
330
  i0.ɵɵrepeater(ctx_r0.GetResolvedLinks(result_r12));
334
331
  } }
335
332
  function SearchResultsComponent_ng_template_3_Conditional_14_Conditional_20_Template(rf, ctx) { if (rf & 1) {
336
- i0.ɵɵelement(0, "i", 67);
333
+ i0.ɵɵelement(0, "i", 65);
337
334
  i0.ɵɵtext(1, " Open File ");
338
335
  } }
339
336
  function SearchResultsComponent_ng_template_3_Conditional_14_Conditional_21_Template(rf, ctx) { if (rf & 1) {
340
- i0.ɵɵelement(0, "i", 64);
337
+ i0.ɵɵelement(0, "i", 62);
341
338
  i0.ɵɵtext(1, " Open Record ");
342
339
  } }
343
340
  function SearchResultsComponent_ng_template_3_Conditional_14_Template(rf, ctx) { if (rf & 1) {
344
341
  const _r14 = i0.ɵɵgetCurrentView();
345
- i0.ɵɵelementStart(0, "div", 39);
346
- i0.ɵɵconditionalCreate(1, SearchResultsComponent_ng_template_3_Conditional_14_Conditional_1_Template, 4, 1, "div", 44);
347
- i0.ɵɵelementStart(2, "div", 45)(3, "div", 46);
348
- i0.ɵɵelement(4, "i", 47);
342
+ i0.ɵɵelementStart(0, "div", 37);
343
+ i0.ɵɵconditionalCreate(1, SearchResultsComponent_ng_template_3_Conditional_14_Conditional_1_Template, 4, 1, "div", 42);
344
+ i0.ɵɵelementStart(2, "div", 43)(3, "div", 44);
345
+ i0.ɵɵelement(4, "i", 45);
349
346
  i0.ɵɵelementStart(5, "span");
350
347
  i0.ɵɵtext(6);
351
348
  i0.ɵɵelementEnd()();
352
- i0.ɵɵelementStart(7, "div", 46);
353
- i0.ɵɵelement(8, "i", 48);
354
- i0.ɵɵelementStart(9, "span", 49);
349
+ i0.ɵɵelementStart(7, "div", 44);
350
+ i0.ɵɵelement(8, "i", 46);
351
+ i0.ɵɵelementStart(9, "span", 47);
355
352
  i0.ɵɵtext(10);
356
353
  i0.ɵɵelementEnd()();
357
- i0.ɵɵelementStart(11, "div", 46);
358
- i0.ɵɵelement(12, "i", 50);
354
+ i0.ɵɵelementStart(11, "div", 44);
355
+ i0.ɵɵelement(12, "i", 48);
359
356
  i0.ɵɵelementStart(13, "span");
360
357
  i0.ɵɵtext(14);
361
358
  i0.ɵɵelementEnd()();
362
- i0.ɵɵconditionalCreate(15, SearchResultsComponent_ng_template_3_Conditional_14_Conditional_15_Template, 5, 2, "div", 46);
359
+ i0.ɵɵconditionalCreate(15, SearchResultsComponent_ng_template_3_Conditional_14_Conditional_15_Template, 5, 2, "div", 44);
363
360
  i0.ɵɵelementEnd();
364
- i0.ɵɵconditionalCreate(16, SearchResultsComponent_ng_template_3_Conditional_14_Conditional_16_Template, 3, 0, "div", 51);
365
- i0.ɵɵconditionalCreate(17, SearchResultsComponent_ng_template_3_Conditional_14_Conditional_17_Template, 3, 0, "div", 52);
366
- i0.ɵɵelementStart(18, "div", 53)(19, "button", 54);
361
+ i0.ɵɵconditionalCreate(16, SearchResultsComponent_ng_template_3_Conditional_14_Conditional_16_Template, 3, 0, "div", 49);
362
+ i0.ɵɵconditionalCreate(17, SearchResultsComponent_ng_template_3_Conditional_14_Conditional_17_Template, 3, 0, "div", 50);
363
+ i0.ɵɵelementStart(18, "div", 51)(19, "button", 52);
367
364
  i0.ɵɵlistener("click", function SearchResultsComponent_ng_template_3_Conditional_14_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)); });
368
365
  i0.ɵɵconditionalCreate(20, SearchResultsComponent_ng_template_3_Conditional_14_Conditional_20_Template, 2, 0)(21, SearchResultsComponent_ng_template_3_Conditional_14_Conditional_21_Template, 2, 0);
369
366
  i0.ɵɵelementEnd();
370
- i0.ɵɵelementStart(22, "button", 55);
367
+ i0.ɵɵelementStart(22, "button", 53);
371
368
  i0.ɵɵlistener("click", function SearchResultsComponent_ng_template_3_Conditional_14_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)); });
372
- i0.ɵɵelement(23, "i", 56);
369
+ i0.ɵɵelement(23, "i", 54);
373
370
  i0.ɵɵtext(24, " See Similar Items ");
374
371
  i0.ɵɵelementEnd()()();
375
372
  } if (rf & 2) {
@@ -394,25 +391,25 @@ function SearchResultsComponent_ng_template_3_Conditional_14_Template(rf, ctx) {
394
391
  } }
395
392
  function SearchResultsComponent_ng_template_3_Template(rf, ctx) { if (rf & 1) {
396
393
  const _r11 = i0.ɵɵgetCurrentView();
397
- i0.ɵɵelementStart(0, "div", 27)(1, "div", 28);
394
+ i0.ɵɵelementStart(0, "div", 25)(1, "div", 26);
398
395
  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)); });
399
- i0.ɵɵelementStart(2, "div", 29);
396
+ i0.ɵɵelementStart(2, "div", 27);
400
397
  i0.ɵɵelement(3, "i");
401
398
  i0.ɵɵelementEnd();
402
- i0.ɵɵelementStart(4, "div", 30);
403
- i0.ɵɵelement(5, "div", 31)(6, "div", 32);
404
- i0.ɵɵconditionalCreate(7, SearchResultsComponent_ng_template_3_Conditional_7_Template, 4, 1, "div", 33);
399
+ i0.ɵɵelementStart(4, "div", 28);
400
+ i0.ɵɵelement(5, "div", 29)(6, "div", 30);
401
+ i0.ɵɵconditionalCreate(7, SearchResultsComponent_ng_template_3_Conditional_7_Template, 4, 1, "div", 31);
405
402
  i0.ɵɵelementEnd();
406
- i0.ɵɵconditionalCreate(8, SearchResultsComponent_ng_template_3_Conditional_8_Template, 4, 7, "div", 34);
407
- i0.ɵɵelementStart(9, "div", 35)(10, "button", 36);
403
+ i0.ɵɵconditionalCreate(8, SearchResultsComponent_ng_template_3_Conditional_8_Template, 4, 7, "div", 32);
404
+ i0.ɵɵelementStart(9, "div", 33)(10, "button", 34);
408
405
  i0.ɵɵlistener("click", function SearchResultsComponent_ng_template_3_Template_button_click_10_listener($event) { const result_r12 = i0.ɵɵrestoreView(_r11).$implicit; const ctx_r0 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r0.OnOpenRecord(result_r12, $event)); });
409
406
  i0.ɵɵelement(11, "i");
410
407
  i0.ɵɵelementEnd();
411
- i0.ɵɵelementStart(12, "button", 37);
408
+ i0.ɵɵelementStart(12, "button", 35);
412
409
  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.ToggleExpand(result_r12, $event)); });
413
- i0.ɵɵelement(13, "i", 38);
410
+ i0.ɵɵelement(13, "i", 36);
414
411
  i0.ɵɵelementEnd()()();
415
- i0.ɵɵconditionalCreate(14, SearchResultsComponent_ng_template_3_Conditional_14_Template, 25, 8, "div", 39);
412
+ i0.ɵɵconditionalCreate(14, SearchResultsComponent_ng_template_3_Conditional_14_Template, 25, 8, "div", 37);
416
413
  i0.ɵɵelementEnd();
417
414
  } if (rf & 2) {
418
415
  const result_r12 = ctx.$implicit;
@@ -683,16 +680,16 @@ export class SearchResultsComponent extends BaseAngularComponent {
683
680
  }
684
681
  }
685
682
  static ɵfac = /*@__PURE__*/ (() => { let ɵSearchResultsComponent_BaseFactory; return function SearchResultsComponent_Factory(__ngFactoryType__) { return (ɵSearchResultsComponent_BaseFactory || (ɵSearchResultsComponent_BaseFactory = i0.ɵɵgetInheritedFactory(SearchResultsComponent)))(__ngFactoryType__ || SearchResultsComponent); }; })();
686
- 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", HighlightText: "HighlightText" }, outputs: { ResultSelected: "ResultSelected", OpenRecordRequested: "OpenRecordRequested", MoreLikeThisRequested: "MoreLikeThisRequested" }, standalone: false, features: [i0.ɵɵInheritDefinitionFeature], 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"], ["aria-label", "Previous page", 1, "pager-btn", "pager-prev", 3, "click", "disabled"], [1, "fa-solid", "fa-chevron-left"], ["aria-label", "Next page", 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", 3, "innerHTML"], [1, "result-card-entity", 3, "innerHTML"], [1, "result-card-tags"], [1, "result-card-score"], [1, "result-card-actions"], [1, "result-open-btn", 3, "click", "title"], ["title", "Expand details", "aria-label", "Expand details", 1, "result-expand-btn", 3, "click"], [1, "fa-solid"], [1, "result-card-detail"], [1, "result-tag-chip", 3, "innerHTML"], [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", 3, "innerHTML"], [1, "fa-solid", "fa-chart-bar"], [1, "result-card-tag", 3, "innerHTML"], ["target", "_blank", 1, "detail-link", 3, "href"], [1, "detail-link", "detail-link-email", 3, "href"], ["target", "_blank", 1, "detail-link", 3, "click", "href"], [1, "fa-solid", "fa-arrow-up-right-from-square"], [1, "detail-link", "detail-link-email", 3, "click", "href"], [1, "fa-solid", "fa-envelope"], [1, "fa-solid", "fa-external-link"]], template: function SearchResultsComponent_Template(rf, ctx) { if (rf & 1) {
687
- 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);
683
+ 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", HighlightText: "HighlightText" }, outputs: { ResultSelected: "ResultSelected", OpenRecordRequested: "OpenRecordRequested", MoreLikeThisRequested: "MoreLikeThisRequested" }, standalone: false, features: [i0.ɵɵInheritDefinitionFeature], decls: 5, vars: 1, consts: [["resultCardTpl", ""], [1, "results-loading"], ["Variant", "no-results", "Title", "No results to display"], ["text", "Searching...", "size", "medium"], [1, "results-summary"], [1, "results-summary-time"], [1, "results-scroll-area"], [1, "results-pager"], [4, "ngTemplateOutlet", "ngTemplateOutletContext"], ["aria-label", "Previous page", 1, "pager-btn", "pager-prev", 3, "click", "disabled"], [1, "fa-solid", "fa-chevron-left"], ["aria-label", "Next page", 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", 3, "innerHTML"], [1, "result-card-entity", 3, "innerHTML"], [1, "result-card-tags"], [1, "result-card-score"], [1, "result-card-actions"], [1, "result-open-btn", 3, "click", "title"], ["title", "Expand details", "aria-label", "Expand details", 1, "result-expand-btn", 3, "click"], [1, "fa-solid"], [1, "result-card-detail"], [1, "result-tag-chip", 3, "innerHTML"], [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", 3, "innerHTML"], [1, "fa-solid", "fa-chart-bar"], [1, "result-card-tag", 3, "innerHTML"], ["target", "_blank", 1, "detail-link", 3, "href"], [1, "detail-link", "detail-link-email", 3, "href"], ["target", "_blank", 1, "detail-link", 3, "click", "href"], [1, "fa-solid", "fa-arrow-up-right-from-square"], [1, "detail-link", "detail-link-email", 3, "click", "href"], [1, "fa-solid", "fa-envelope"], [1, "fa-solid", "fa-external-link"]], template: function SearchResultsComponent_Template(rf, ctx) { if (rf & 1) {
684
+ i0.ɵɵconditionalCreate(0, SearchResultsComponent_Conditional_0_Template, 2, 0, "div", 1)(1, SearchResultsComponent_Conditional_1_Template, 1, 0, "mj-empty-state", 2)(2, SearchResultsComponent_Conditional_2_Template, 3, 2);
688
685
  i0.ɵɵtemplate(3, SearchResultsComponent_ng_template_3_Template, 15, 17, "ng-template", null, 0, i0.ɵɵtemplateRefExtractor);
689
686
  } if (rf & 2) {
690
687
  i0.ɵɵconditional(ctx.IsLoading ? 0 : (ctx.DisplayMode === "flat" ? ctx.FlatResults.length : ctx.ResultGroups.length) === 0 && ctx.TotalCount === 0 ? 1 : 2);
691
- } }, 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 \n\n background: color-mix(in srgb, var(--mj-text-muted) 10%, var(--mj-bg-surface));\n border: 2px solid color-mix(in srgb, var(--mj-text-muted) 25%, var(--mj-bg-surface));\n}\n.score-circle.score-high[_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--mj-status-success) 15%, var(--mj-bg-surface));\n border-color: color-mix(in srgb, var(--mj-status-success) 40%, var(--mj-bg-surface));\n}\n.score-circle.score-medium[_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--mj-status-warning) 15%, var(--mj-bg-surface));\n border-color: color-mix(in srgb, var(--mj-status-warning) 40%, var(--mj-bg-surface));\n}\n.score-circle.score-low[_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--mj-text-muted) 10%, var(--mj-bg-surface));\n border-color: color-mix(in srgb, var(--mj-text-muted) 25%, var(--mj-bg-surface));\n}\n\n.score-value[_ngcontent-%COMP%] {\n font-size: 0.7rem;\n font-weight: 700;\n color: var(--mj-text-secondary);\n}\n.score-high[_ngcontent-%COMP%] .score-value[_ngcontent-%COMP%] {\n color: var(--mj-status-success-text, var(--mj-status-success));\n}\n.score-medium[_ngcontent-%COMP%] .score-value[_ngcontent-%COMP%] {\n color: var(--mj-status-warning-text, var(--mj-status-warning));\n}\n.score-low[_ngcontent-%COMP%] .score-value[_ngcontent-%COMP%] {\n color: var(--mj-text-muted);\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}\n\n\n\n[_nghost-%COMP%] .search-highlight, \n.search-highlight[_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--mj-status-warning) 35%, transparent);\n color: inherit;\n padding: 1px 2px;\n border-radius: 2px;\n}"] });
688
+ } }, dependencies: [i1.NgTemplateOutlet, i2.LoadingComponent, i3.MJEmptyStateComponent], 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-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 \n\n background: color-mix(in srgb, var(--mj-text-muted) 10%, var(--mj-bg-surface));\n border: 2px solid color-mix(in srgb, var(--mj-text-muted) 25%, var(--mj-bg-surface));\n}\n.score-circle.score-high[_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--mj-status-success) 15%, var(--mj-bg-surface));\n border-color: color-mix(in srgb, var(--mj-status-success) 40%, var(--mj-bg-surface));\n}\n.score-circle.score-medium[_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--mj-status-warning) 15%, var(--mj-bg-surface));\n border-color: color-mix(in srgb, var(--mj-status-warning) 40%, var(--mj-bg-surface));\n}\n.score-circle.score-low[_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--mj-text-muted) 10%, var(--mj-bg-surface));\n border-color: color-mix(in srgb, var(--mj-text-muted) 25%, var(--mj-bg-surface));\n}\n\n.score-value[_ngcontent-%COMP%] {\n font-size: 0.7rem;\n font-weight: 700;\n color: var(--mj-text-secondary);\n}\n.score-high[_ngcontent-%COMP%] .score-value[_ngcontent-%COMP%] {\n color: var(--mj-status-success-text, var(--mj-status-success));\n}\n.score-medium[_ngcontent-%COMP%] .score-value[_ngcontent-%COMP%] {\n color: var(--mj-status-warning-text, var(--mj-status-warning));\n}\n.score-low[_ngcontent-%COMP%] .score-value[_ngcontent-%COMP%] {\n color: var(--mj-text-muted);\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}\n\n\n\n[_nghost-%COMP%] .search-highlight, \n.search-highlight[_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--mj-status-warning) 35%, transparent);\n color: inherit;\n padding: 1px 2px;\n border-radius: 2px;\n}"] });
692
689
  }
693
690
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(SearchResultsComponent, [{
694
691
  type: Component,
695
- 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)\" aria-label=\"Previous page\">\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)\" aria-label=\"Next page\">\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\" [innerHTML]=\"HighlightMatch(result.RecordName || result.Title)\"></div>\n <div class=\"result-card-entity\" [innerHTML]=\"HighlightMatch(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\" [innerHTML]=\"HighlightMatch(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\" [class.score-high]=\"result.Score >= 0.40\" [class.score-medium]=\"result.Score >= 0.15 && result.Score < 0.40\" [class.score-low]=\"result.Score < 0.15\">\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)\"\n [title]=\"result.ResultType === 'storage-file' ? 'Open file' : 'Open record'\"\n [attr.aria-label]=\"result.ResultType === 'storage-file' ? 'Open file' : 'Open record'\">\n <i [class]=\"result.ResultType === 'storage-file' ? 'fa-solid fa-external-link' : 'fa-solid fa-arrow-up-right-from-square'\"></i>\n </button>\n <button class=\"result-expand-btn\" (click)=\"ToggleExpand(result, $event)\" title=\"Expand details\" aria-label=\"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\" [innerHTML]=\"HighlightMatch(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\" [innerHTML]=\"HighlightMatch(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 @if (result.ResultType === 'storage-file') {\n <i class=\"fa-solid fa-external-link\"></i> Open File\n } @else {\n <i class=\"fa-solid fa-arrow-up-right-from-square\"></i> Open Record\n }\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 /* Default: neutral gray */\n background: color-mix(in srgb, var(--mj-text-muted) 10%, var(--mj-bg-surface));\n border: 2px solid color-mix(in srgb, var(--mj-text-muted) 25%, var(--mj-bg-surface));\n}\n.score-circle.score-high {\n background: color-mix(in srgb, var(--mj-status-success) 15%, var(--mj-bg-surface));\n border-color: color-mix(in srgb, var(--mj-status-success) 40%, var(--mj-bg-surface));\n}\n.score-circle.score-medium {\n background: color-mix(in srgb, var(--mj-status-warning) 15%, var(--mj-bg-surface));\n border-color: color-mix(in srgb, var(--mj-status-warning) 40%, var(--mj-bg-surface));\n}\n.score-circle.score-low {\n background: color-mix(in srgb, var(--mj-text-muted) 10%, var(--mj-bg-surface));\n border-color: color-mix(in srgb, var(--mj-text-muted) 25%, var(--mj-bg-surface));\n}\n\n.score-value {\n font-size: 0.7rem;\n font-weight: 700;\n color: var(--mj-text-secondary);\n}\n.score-high .score-value {\n color: var(--mj-status-success-text, var(--mj-status-success));\n}\n.score-medium .score-value {\n color: var(--mj-status-warning-text, var(--mj-status-warning));\n}\n.score-low .score-value {\n color: var(--mj-text-muted);\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\n/* Search text highlighting */\n:host ::ng-deep .search-highlight,\n.search-highlight {\n background: color-mix(in srgb, var(--mj-status-warning) 35%, transparent);\n color: inherit;\n padding: 1px 2px;\n border-radius: 2px;\n}\n"] }]
692
+ 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 <mj-empty-state\n Variant=\"no-results\"\n Title=\"No results to display\" />\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)\" aria-label=\"Previous page\">\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)\" aria-label=\"Next page\">\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\" [innerHTML]=\"HighlightMatch(result.RecordName || result.Title)\"></div>\n <div class=\"result-card-entity\" [innerHTML]=\"HighlightMatch(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\" [innerHTML]=\"HighlightMatch(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\" [class.score-high]=\"result.Score >= 0.40\" [class.score-medium]=\"result.Score >= 0.15 && result.Score < 0.40\" [class.score-low]=\"result.Score < 0.15\">\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)\"\n [title]=\"result.ResultType === 'storage-file' ? 'Open file' : 'Open record'\"\n [attr.aria-label]=\"result.ResultType === 'storage-file' ? 'Open file' : 'Open record'\">\n <i [class]=\"result.ResultType === 'storage-file' ? 'fa-solid fa-external-link' : 'fa-solid fa-arrow-up-right-from-square'\"></i>\n </button>\n <button class=\"result-expand-btn\" (click)=\"ToggleExpand(result, $event)\" title=\"Expand details\" aria-label=\"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\" [innerHTML]=\"HighlightMatch(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\" [innerHTML]=\"HighlightMatch(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 @if (result.ResultType === 'storage-file') {\n <i class=\"fa-solid fa-external-link\"></i> Open File\n } @else {\n <i class=\"fa-solid fa-arrow-up-right-from-square\"></i> Open Record\n }\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-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 /* Default: neutral gray */\n background: color-mix(in srgb, var(--mj-text-muted) 10%, var(--mj-bg-surface));\n border: 2px solid color-mix(in srgb, var(--mj-text-muted) 25%, var(--mj-bg-surface));\n}\n.score-circle.score-high {\n background: color-mix(in srgb, var(--mj-status-success) 15%, var(--mj-bg-surface));\n border-color: color-mix(in srgb, var(--mj-status-success) 40%, var(--mj-bg-surface));\n}\n.score-circle.score-medium {\n background: color-mix(in srgb, var(--mj-status-warning) 15%, var(--mj-bg-surface));\n border-color: color-mix(in srgb, var(--mj-status-warning) 40%, var(--mj-bg-surface));\n}\n.score-circle.score-low {\n background: color-mix(in srgb, var(--mj-text-muted) 10%, var(--mj-bg-surface));\n border-color: color-mix(in srgb, var(--mj-text-muted) 25%, var(--mj-bg-surface));\n}\n\n.score-value {\n font-size: 0.7rem;\n font-weight: 700;\n color: var(--mj-text-secondary);\n}\n.score-high .score-value {\n color: var(--mj-status-success-text, var(--mj-status-success));\n}\n.score-medium .score-value {\n color: var(--mj-status-warning-text, var(--mj-status-warning));\n}\n.score-low .score-value {\n color: var(--mj-text-muted);\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\n/* Search text highlighting */\n:host ::ng-deep .search-highlight,\n.search-highlight {\n background: color-mix(in srgb, var(--mj-status-warning) 35%, transparent);\n color: inherit;\n padding: 1px 2px;\n border-radius: 2px;\n}\n"] }]
696
693
  }], null, { ResultGroups: [{
697
694
  type: Input
698
695
  }], FlatResults: [{