@memberjunction/ng-explorer-core 5.33.0 → 5.34.1

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.
@@ -15,86 +15,153 @@ import * as i1 from "@angular/forms";
15
15
  import * as i2 from "@memberjunction/ng-shared-generic";
16
16
  import * as i3 from "@memberjunction/ng-search";
17
17
  import * as i4 from "@memberjunction/ng-word-cloud";
18
- function SearchResultsResource_Conditional_1_Conditional_2_Template(rf, ctx) { if (rf & 1) {
19
- const _r2 = i0.ɵɵgetCurrentView();
20
- i0.ɵɵelementStart(0, "button", 24);
21
- i0.ɵɵlistener("click", function SearchResultsResource_Conditional_1_Conditional_2_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r2); const ctx_r2 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r2.ToggleFilterPanel()); });
22
- i0.ɵɵelement(1, "i", 25);
18
+ const _forTrack0 = ($index, $item) => $item.Name;
19
+ function SearchResultsResource_Conditional_1_For_2_Conditional_1_Template(rf, ctx) { if (rf & 1) {
20
+ i0.ɵɵelement(0, "i", 9);
21
+ } }
22
+ function SearchResultsResource_Conditional_1_For_2_Conditional_2_Template(rf, ctx) { if (rf & 1) {
23
+ i0.ɵɵelement(0, "i", 10);
24
+ } }
25
+ function SearchResultsResource_Conditional_1_For_2_Conditional_5_Template(rf, ctx) { if (rf & 1) {
26
+ i0.ɵɵelementStart(0, "span", 13);
27
+ i0.ɵɵtext(1);
28
+ i0.ɵɵelementEnd();
29
+ i0.ɵɵelementStart(2, "span", 12);
30
+ i0.ɵɵtext(3);
23
31
  i0.ɵɵelementEnd();
32
+ } if (rf & 2) {
33
+ const p_r1 = i0.ɵɵnextContext().$implicit;
34
+ i0.ɵɵadvance();
35
+ i0.ɵɵtextInterpolate(p_r1.Count);
36
+ i0.ɵɵadvance(2);
37
+ i0.ɵɵtextInterpolate1("", p_r1.ElapsedMs, "ms");
24
38
  } }
25
- function SearchResultsResource_Conditional_1_Conditional_9_Template(rf, ctx) { if (rf & 1) {
26
- const _r4 = i0.ɵɵgetCurrentView();
27
- i0.ɵɵelementStart(0, "button", 26);
28
- i0.ɵɵlistener("click", function SearchResultsResource_Conditional_1_Conditional_9_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r4); const ctx_r2 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r2.OnClientFilterTextChange("")); });
29
- i0.ɵɵelement(1, "i", 27);
39
+ function SearchResultsResource_Conditional_1_For_2_Conditional_6_Template(rf, ctx) { if (rf & 1) {
40
+ i0.ɵɵelementStart(0, "span", 12);
41
+ i0.ɵɵtext(1);
42
+ i0.ɵɵelementEnd();
43
+ } if (rf & 2) {
44
+ const p_r1 = i0.ɵɵnextContext().$implicit;
45
+ i0.ɵɵadvance();
46
+ i0.ɵɵtextInterpolate(p_r1.ErrorMessage);
47
+ } }
48
+ function SearchResultsResource_Conditional_1_For_2_Template(rf, ctx) { if (rf & 1) {
49
+ i0.ɵɵelementStart(0, "span", 8);
50
+ i0.ɵɵconditionalCreate(1, SearchResultsResource_Conditional_1_For_2_Conditional_1_Template, 1, 0, "i", 9)(2, SearchResultsResource_Conditional_1_For_2_Conditional_2_Template, 1, 0, "i", 10);
51
+ i0.ɵɵelementStart(3, "span", 11);
52
+ i0.ɵɵtext(4);
53
+ i0.ɵɵelementEnd();
54
+ i0.ɵɵconditionalCreate(5, SearchResultsResource_Conditional_1_For_2_Conditional_5_Template, 4, 2)(6, SearchResultsResource_Conditional_1_For_2_Conditional_6_Template, 2, 1, "span", 12);
30
55
  i0.ɵɵelementEnd();
56
+ } if (rf & 2) {
57
+ const p_r1 = ctx.$implicit;
58
+ i0.ɵɵclassProp("streaming-chip-error", p_r1.State === "Error")("streaming-chip-completed", p_r1.State === "Completed");
59
+ i0.ɵɵadvance();
60
+ i0.ɵɵconditional(p_r1.State === "Completed" ? 1 : 2);
61
+ i0.ɵɵadvance(3);
62
+ i0.ɵɵtextInterpolate(p_r1.Name);
63
+ i0.ɵɵadvance();
64
+ i0.ɵɵconditional(p_r1.State === "Completed" ? 5 : p_r1.ErrorMessage ? 6 : -1);
65
+ } }
66
+ function SearchResultsResource_Conditional_1_Conditional_3_Template(rf, ctx) { if (rf & 1) {
67
+ i0.ɵɵelementStart(0, "span", 7);
68
+ i0.ɵɵelement(1, "i", 14);
69
+ i0.ɵɵelementStart(2, "span");
70
+ i0.ɵɵtext(3, "Streaming\u2026");
71
+ i0.ɵɵelementEnd()();
31
72
  } }
32
73
  function SearchResultsResource_Conditional_1_Template(rf, ctx) { if (rf & 1) {
33
- const _r1 = i0.ɵɵgetCurrentView();
34
- i0.ɵɵelementStart(0, "div", 1)(1, "div", 5);
35
- i0.ɵɵconditionalCreate(2, SearchResultsResource_Conditional_1_Conditional_2_Template, 2, 0, "button", 6);
36
- i0.ɵɵelementStart(3, "span", 7);
74
+ i0.ɵɵelementStart(0, "div", 1);
75
+ i0.ɵɵrepeaterCreate(1, SearchResultsResource_Conditional_1_For_2_Template, 7, 7, "span", 6, _forTrack0);
76
+ i0.ɵɵconditionalCreate(3, SearchResultsResource_Conditional_1_Conditional_3_Template, 4, 0, "span", 7);
77
+ i0.ɵɵelementEnd();
78
+ } if (rf & 2) {
79
+ const ctx_r1 = i0.ɵɵnextContext();
80
+ i0.ɵɵadvance();
81
+ i0.ɵɵrepeater(ctx_r1.StreamingProviders);
82
+ i0.ɵɵadvance(2);
83
+ i0.ɵɵconditional(ctx_r1.IsSearching ? 3 : -1);
84
+ } }
85
+ function SearchResultsResource_Conditional_2_Conditional_2_Template(rf, ctx) { if (rf & 1) {
86
+ const _r4 = i0.ɵɵgetCurrentView();
87
+ i0.ɵɵelementStart(0, "button", 34);
88
+ i0.ɵɵlistener("click", function SearchResultsResource_Conditional_2_Conditional_2_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r4); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.ToggleFilterPanel()); });
89
+ i0.ɵɵelement(1, "i", 35);
90
+ i0.ɵɵelementEnd();
91
+ } }
92
+ function SearchResultsResource_Conditional_2_Conditional_9_Template(rf, ctx) { if (rf & 1) {
93
+ const _r5 = i0.ɵɵgetCurrentView();
94
+ i0.ɵɵelementStart(0, "button", 36);
95
+ i0.ɵɵlistener("click", function SearchResultsResource_Conditional_2_Conditional_9_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r5); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.OnClientFilterTextChange("")); });
96
+ i0.ɵɵelement(1, "i", 37);
97
+ i0.ɵɵelementEnd();
98
+ } }
99
+ function SearchResultsResource_Conditional_2_Template(rf, ctx) { if (rf & 1) {
100
+ const _r3 = i0.ɵɵgetCurrentView();
101
+ i0.ɵɵelementStart(0, "div", 2)(1, "div", 15);
102
+ i0.ɵɵconditionalCreate(2, SearchResultsResource_Conditional_2_Conditional_2_Template, 2, 0, "button", 16);
103
+ i0.ɵɵelementStart(3, "span", 17);
37
104
  i0.ɵɵtext(4);
38
105
  i0.ɵɵelementEnd()();
39
- i0.ɵɵelementStart(5, "div", 8)(6, "div", 9);
40
- i0.ɵɵelement(7, "i", 10);
41
- i0.ɵɵelementStart(8, "input", 11);
42
- i0.ɵɵlistener("input", function SearchResultsResource_Conditional_1_Template_input_input_8_listener($event) { i0.ɵɵrestoreView(_r1); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.OnClientFilterTextChange($event.target.value)); });
106
+ i0.ɵɵelementStart(5, "div", 18)(6, "div", 19);
107
+ i0.ɵɵelement(7, "i", 20);
108
+ i0.ɵɵelementStart(8, "input", 21);
109
+ i0.ɵɵlistener("input", function SearchResultsResource_Conditional_2_Template_input_input_8_listener($event) { i0.ɵɵrestoreView(_r3); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.OnClientFilterTextChange($event.target.value)); });
43
110
  i0.ɵɵelementEnd();
44
- i0.ɵɵconditionalCreate(9, SearchResultsResource_Conditional_1_Conditional_9_Template, 2, 0, "button", 12);
111
+ i0.ɵɵconditionalCreate(9, SearchResultsResource_Conditional_2_Conditional_9_Template, 2, 0, "button", 22);
45
112
  i0.ɵɵelementEnd();
46
- i0.ɵɵelementStart(10, "select", 13);
47
- i0.ɵɵlistener("change", function SearchResultsResource_Conditional_1_Template_select_change_10_listener($event) { i0.ɵɵrestoreView(_r1); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.OnSortChange($event.target.value)); });
48
- i0.ɵɵelementStart(11, "option", 14);
113
+ i0.ɵɵelementStart(10, "select", 23);
114
+ i0.ɵɵlistener("change", function SearchResultsResource_Conditional_2_Template_select_change_10_listener($event) { i0.ɵɵrestoreView(_r3); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.OnSortChange($event.target.value)); });
115
+ i0.ɵɵelementStart(11, "option", 24);
49
116
  i0.ɵɵtext(12, "Sort: Relevance");
50
117
  i0.ɵɵelementEnd();
51
- i0.ɵɵelementStart(13, "option", 15);
118
+ i0.ɵɵelementStart(13, "option", 25);
52
119
  i0.ɵɵtext(14, "Sort: Name");
53
120
  i0.ɵɵelementEnd();
54
- i0.ɵɵelementStart(15, "option", 16);
121
+ i0.ɵɵelementStart(15, "option", 26);
55
122
  i0.ɵɵtext(16, "Sort: Entity");
56
123
  i0.ɵɵelementEnd()();
57
- i0.ɵɵelementStart(17, "div", 17)(18, "button", 18);
58
- i0.ɵɵlistener("click", function SearchResultsResource_Conditional_1_Template_button_click_18_listener() { i0.ɵɵrestoreView(_r1); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.SetViewMode("list")); });
59
- i0.ɵɵelement(19, "i", 19);
124
+ i0.ɵɵelementStart(17, "div", 27)(18, "button", 28);
125
+ i0.ɵɵlistener("click", function SearchResultsResource_Conditional_2_Template_button_click_18_listener() { i0.ɵɵrestoreView(_r3); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.SetViewMode("list")); });
126
+ i0.ɵɵelement(19, "i", 29);
60
127
  i0.ɵɵelementEnd();
61
- i0.ɵɵelementStart(20, "button", 20);
62
- i0.ɵɵlistener("click", function SearchResultsResource_Conditional_1_Template_button_click_20_listener() { i0.ɵɵrestoreView(_r1); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.SetViewMode("cloud")); });
63
- i0.ɵɵelement(21, "i", 21);
128
+ i0.ɵɵelementStart(20, "button", 30);
129
+ i0.ɵɵlistener("click", function SearchResultsResource_Conditional_2_Template_button_click_20_listener() { i0.ɵɵrestoreView(_r3); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.SetViewMode("cloud")); });
130
+ i0.ɵɵelement(21, "i", 31);
64
131
  i0.ɵɵelementEnd()();
65
- i0.ɵɵelementStart(22, "button", 22);
66
- i0.ɵɵlistener("click", function SearchResultsResource_Conditional_1_Template_button_click_22_listener() { i0.ɵɵrestoreView(_r1); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.OnRefresh()); });
67
- i0.ɵɵelement(23, "i", 23);
132
+ i0.ɵɵelementStart(22, "button", 32);
133
+ i0.ɵɵlistener("click", function SearchResultsResource_Conditional_2_Template_button_click_22_listener() { i0.ɵɵrestoreView(_r3); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.OnRefresh()); });
134
+ i0.ɵɵelement(23, "i", 33);
68
135
  i0.ɵɵelementEnd()()();
69
136
  } if (rf & 2) {
70
- const ctx_r2 = i0.ɵɵnextContext();
137
+ const ctx_r1 = i0.ɵɵnextContext();
71
138
  i0.ɵɵadvance(2);
72
- i0.ɵɵconditional(!ctx_r2.ShowFilterPanel ? 2 : -1);
139
+ i0.ɵɵconditional(!ctx_r1.ShowFilterPanel ? 2 : -1);
73
140
  i0.ɵɵadvance(2);
74
- i0.ɵɵtextInterpolate5(" ", ctx_r2.FilteredResults.length, " of ", ctx_r2.ServerResultCount, " result", ctx_r2.ServerResultCount !== 1 ? "s" : "", " for \"", ctx_r2.CurrentQuery, "\" in ", ctx_r2.ElapsedMs, "ms ");
141
+ i0.ɵɵtextInterpolate5(" ", ctx_r1.FilteredResults.length, " of ", ctx_r1.ServerResultCount, " result", ctx_r1.ServerResultCount !== 1 ? "s" : "", " for \"", ctx_r1.CurrentQuery, "\" in ", ctx_r1.ElapsedMs, "ms ");
75
142
  i0.ɵɵadvance(4);
76
- i0.ɵɵproperty("value", ctx_r2.ClientFilterText);
143
+ i0.ɵɵproperty("value", ctx_r1.ClientFilterText);
77
144
  i0.ɵɵadvance();
78
- i0.ɵɵconditional(ctx_r2.ClientFilterText ? 9 : -1);
145
+ i0.ɵɵconditional(ctx_r1.ClientFilterText ? 9 : -1);
79
146
  i0.ɵɵadvance();
80
- i0.ɵɵproperty("value", ctx_r2.SortField);
147
+ i0.ɵɵproperty("value", ctx_r1.SortField);
81
148
  i0.ɵɵadvance(8);
82
- i0.ɵɵclassProp("sr-view-active", ctx_r2.ViewMode === "list");
149
+ i0.ɵɵclassProp("sr-view-active", ctx_r1.ViewMode === "list");
83
150
  i0.ɵɵadvance(2);
84
- i0.ɵɵclassProp("sr-view-active", ctx_r2.ViewMode === "cloud");
151
+ i0.ɵɵclassProp("sr-view-active", ctx_r1.ViewMode === "cloud");
85
152
  i0.ɵɵadvance(2);
86
- i0.ɵɵproperty("disabled", ctx_r2.IsSearching);
153
+ i0.ɵɵproperty("disabled", ctx_r1.IsSearching);
87
154
  i0.ɵɵadvance();
88
- i0.ɵɵclassProp("fa-spin", ctx_r2.IsSearching);
89
- } }
90
- function SearchResultsResource_Conditional_2_Template(rf, ctx) { if (rf & 1) {
91
- i0.ɵɵelementStart(0, "div", 2);
92
- i0.ɵɵelement(1, "mj-loading", 28);
93
- i0.ɵɵelementEnd();
155
+ i0.ɵɵclassProp("fa-spin", ctx_r1.IsSearching);
94
156
  } }
95
157
  function SearchResultsResource_Conditional_3_Template(rf, ctx) { if (rf & 1) {
96
158
  i0.ɵɵelementStart(0, "div", 3);
97
- i0.ɵɵelement(1, "i", 29);
159
+ i0.ɵɵelement(1, "mj-loading", 38);
160
+ i0.ɵɵelementEnd();
161
+ } }
162
+ function SearchResultsResource_Conditional_4_Template(rf, ctx) { if (rf & 1) {
163
+ i0.ɵɵelementStart(0, "div", 4);
164
+ i0.ɵɵelement(1, "i", 39);
98
165
  i0.ɵɵelementStart(2, "h3");
99
166
  i0.ɵɵtext(3, "No results found");
100
167
  i0.ɵɵelementEnd();
@@ -102,80 +169,80 @@ function SearchResultsResource_Conditional_3_Template(rf, ctx) { if (rf & 1) {
102
169
  i0.ɵɵtext(5, "Try different keywords or broaden your search.");
103
170
  i0.ɵɵelementEnd()();
104
171
  } }
105
- function SearchResultsResource_Conditional_4_Conditional_1_Template(rf, ctx) { if (rf & 1) {
106
- i0.ɵɵelementStart(0, "div", 30);
107
- i0.ɵɵelement(1, "mj-loading", 33);
172
+ function SearchResultsResource_Conditional_5_Conditional_1_Template(rf, ctx) { if (rf & 1) {
173
+ i0.ɵɵelementStart(0, "div", 40);
174
+ i0.ɵɵelement(1, "mj-loading", 43);
108
175
  i0.ɵɵelementEnd();
109
176
  } }
110
- function SearchResultsResource_Conditional_4_Conditional_2_Conditional_1_Template(rf, ctx) { if (rf & 1) {
111
- i0.ɵɵelement(0, "mj-loading", 34);
177
+ function SearchResultsResource_Conditional_5_Conditional_2_Conditional_1_Template(rf, ctx) { if (rf & 1) {
178
+ i0.ɵɵelement(0, "mj-loading", 44);
112
179
  } }
113
- function SearchResultsResource_Conditional_4_Conditional_2_Conditional_2_Template(rf, ctx) { if (rf & 1) {
114
- const _r5 = i0.ɵɵgetCurrentView();
115
- i0.ɵɵelementStart(0, "mj-word-cloud", 36);
116
- i0.ɵɵlistener("ItemClick", function SearchResultsResource_Conditional_4_Conditional_2_Conditional_2_Template_mj_word_cloud_ItemClick_0_listener($event) { i0.ɵɵrestoreView(_r5); const ctx_r2 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r2.OnCloudItemClick($event)); });
180
+ function SearchResultsResource_Conditional_5_Conditional_2_Conditional_2_Template(rf, ctx) { if (rf & 1) {
181
+ const _r6 = i0.ɵɵgetCurrentView();
182
+ i0.ɵɵelementStart(0, "mj-word-cloud", 46);
183
+ i0.ɵɵlistener("ItemClick", function SearchResultsResource_Conditional_5_Conditional_2_Conditional_2_Template_mj_word_cloud_ItemClick_0_listener($event) { i0.ɵɵrestoreView(_r6); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.OnCloudItemClick($event)); });
117
184
  i0.ɵɵelementEnd();
118
185
  } if (rf & 2) {
119
- const ctx_r2 = i0.ɵɵnextContext(3);
120
- i0.ɵɵproperty("Items", ctx_r2.CloudItems)("MaxItems", 80)("Interactive", true);
186
+ const ctx_r1 = i0.ɵɵnextContext(3);
187
+ i0.ɵɵproperty("Items", ctx_r1.CloudItems)("MaxItems", 80)("Interactive", true);
121
188
  } }
122
- function SearchResultsResource_Conditional_4_Conditional_2_Template(rf, ctx) { if (rf & 1) {
123
- i0.ɵɵelementStart(0, "div", 31);
124
- i0.ɵɵconditionalCreate(1, SearchResultsResource_Conditional_4_Conditional_2_Conditional_1_Template, 1, 0, "mj-loading", 34)(2, SearchResultsResource_Conditional_4_Conditional_2_Conditional_2_Template, 1, 3, "mj-word-cloud", 35);
189
+ function SearchResultsResource_Conditional_5_Conditional_2_Template(rf, ctx) { if (rf & 1) {
190
+ i0.ɵɵelementStart(0, "div", 41);
191
+ i0.ɵɵconditionalCreate(1, SearchResultsResource_Conditional_5_Conditional_2_Conditional_1_Template, 1, 0, "mj-loading", 44)(2, SearchResultsResource_Conditional_5_Conditional_2_Conditional_2_Template, 1, 3, "mj-word-cloud", 45);
125
192
  i0.ɵɵelementEnd();
126
193
  } if (rf & 2) {
127
- const ctx_r2 = i0.ɵɵnextContext(2);
194
+ const ctx_r1 = i0.ɵɵnextContext(2);
128
195
  i0.ɵɵadvance();
129
- i0.ɵɵconditional(ctx_r2.IsLoadingCloud ? 1 : 2);
196
+ i0.ɵɵconditional(ctx_r1.IsLoadingCloud ? 1 : 2);
130
197
  } }
131
- function SearchResultsResource_Conditional_4_Conditional_3_Conditional_1_Template(rf, ctx) { if (rf & 1) {
132
- const _r6 = i0.ɵɵgetCurrentView();
133
- i0.ɵɵelementStart(0, "mj-search-filter", 40);
134
- i0.ɵɵlistener("FilterChanged", function SearchResultsResource_Conditional_4_Conditional_3_Conditional_1_Template_mj_search_filter_FilterChanged_0_listener($event) { i0.ɵɵrestoreView(_r6); const ctx_r2 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r2.OnFilterChanged($event)); })("FiltersCleared", function SearchResultsResource_Conditional_4_Conditional_3_Conditional_1_Template_mj_search_filter_FiltersCleared_0_listener() { i0.ɵɵrestoreView(_r6); const ctx_r2 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r2.OnFiltersCleared()); })("CloseRequested", function SearchResultsResource_Conditional_4_Conditional_3_Conditional_1_Template_mj_search_filter_CloseRequested_0_listener() { i0.ɵɵrestoreView(_r6); const ctx_r2 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r2.ToggleFilterPanel()); })("MinScoreChanged", function SearchResultsResource_Conditional_4_Conditional_3_Conditional_1_Template_mj_search_filter_MinScoreChanged_0_listener($event) { i0.ɵɵrestoreView(_r6); const ctx_r2 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r2.OnMinScoreChanged($event)); });
198
+ function SearchResultsResource_Conditional_5_Conditional_3_Conditional_1_Template(rf, ctx) { if (rf & 1) {
199
+ const _r7 = i0.ɵɵgetCurrentView();
200
+ i0.ɵɵelementStart(0, "mj-search-filter", 50);
201
+ i0.ɵɵlistener("FilterChanged", function SearchResultsResource_Conditional_5_Conditional_3_Conditional_1_Template_mj_search_filter_FilterChanged_0_listener($event) { i0.ɵɵrestoreView(_r7); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.OnFilterChanged($event)); })("FiltersCleared", function SearchResultsResource_Conditional_5_Conditional_3_Conditional_1_Template_mj_search_filter_FiltersCleared_0_listener() { i0.ɵɵrestoreView(_r7); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.OnFiltersCleared()); })("CloseRequested", function SearchResultsResource_Conditional_5_Conditional_3_Conditional_1_Template_mj_search_filter_CloseRequested_0_listener() { i0.ɵɵrestoreView(_r7); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.ToggleFilterPanel()); })("MinScoreChanged", function SearchResultsResource_Conditional_5_Conditional_3_Conditional_1_Template_mj_search_filter_MinScoreChanged_0_listener($event) { i0.ɵɵrestoreView(_r7); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.OnMinScoreChanged($event)); });
135
202
  i0.ɵɵelementEnd();
136
203
  } if (rf & 2) {
137
- const ctx_r2 = i0.ɵɵnextContext(3);
138
- i0.ɵɵproperty("Filters", ctx_r2.Filters)("ActiveFilters", ctx_r2.ActiveFilters)("ShowRelevanceSlider", true)("MinScorePercent", ctx_r2.MinScorePercent)("ServerMinScorePercent", ctx_r2.serverMinScorePercent);
204
+ const ctx_r1 = i0.ɵɵnextContext(3);
205
+ i0.ɵɵproperty("Filters", ctx_r1.Filters)("ActiveFilters", ctx_r1.ActiveFilters)("ShowRelevanceSlider", true)("MinScorePercent", ctx_r1.MinScorePercent)("ServerMinScorePercent", ctx_r1.serverMinScorePercent);
139
206
  } }
140
- function SearchResultsResource_Conditional_4_Conditional_3_Conditional_2_Template(rf, ctx) { if (rf & 1) {
141
- const _r7 = i0.ɵɵgetCurrentView();
142
- i0.ɵɵelementStart(0, "mj-search-results", 41);
143
- i0.ɵɵlistener("ResultSelected", function SearchResultsResource_Conditional_4_Conditional_3_Conditional_2_Template_mj_search_results_ResultSelected_0_listener($event) { i0.ɵɵrestoreView(_r7); const ctx_r2 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r2.OnResultSelected($event)); })("OpenRecordRequested", function SearchResultsResource_Conditional_4_Conditional_3_Conditional_2_Template_mj_search_results_OpenRecordRequested_0_listener($event) { i0.ɵɵrestoreView(_r7); const ctx_r2 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r2.OnOpenRecord($event)); });
207
+ function SearchResultsResource_Conditional_5_Conditional_3_Conditional_2_Template(rf, ctx) { if (rf & 1) {
208
+ const _r8 = i0.ɵɵgetCurrentView();
209
+ i0.ɵɵelementStart(0, "mj-search-results", 51);
210
+ i0.ɵɵlistener("ResultSelected", function SearchResultsResource_Conditional_5_Conditional_3_Conditional_2_Template_mj_search_results_ResultSelected_0_listener($event) { i0.ɵɵrestoreView(_r8); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.OnResultSelected($event)); })("OpenRecordRequested", function SearchResultsResource_Conditional_5_Conditional_3_Conditional_2_Template_mj_search_results_OpenRecordRequested_0_listener($event) { i0.ɵɵrestoreView(_r8); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.OnOpenRecord($event)); });
144
211
  i0.ɵɵelementEnd();
145
212
  } if (rf & 2) {
146
- const ctx_r2 = i0.ɵɵnextContext(3);
147
- i0.ɵɵproperty("FlatResults", ctx_r2.FilteredResults)("HighlightText", ctx_r2.ClientFilterText)("ShowScores", true)("ShowTags", true)("ShowSummary", false)("PageSize", 20);
213
+ const ctx_r1 = i0.ɵɵnextContext(3);
214
+ i0.ɵɵproperty("FlatResults", ctx_r1.FilteredResults)("HighlightText", ctx_r1.ClientFilterText)("ShowScores", true)("ShowTags", true)("ShowSummary", false)("PageSize", 20);
148
215
  } }
149
- function SearchResultsResource_Conditional_4_Conditional_3_Conditional_3_Template(rf, ctx) { if (rf & 1) {
150
- i0.ɵɵelementStart(0, "div", 39);
151
- i0.ɵɵelement(1, "i", 42);
216
+ function SearchResultsResource_Conditional_5_Conditional_3_Conditional_3_Template(rf, ctx) { if (rf & 1) {
217
+ i0.ɵɵelementStart(0, "div", 49);
218
+ i0.ɵɵelement(1, "i", 52);
152
219
  i0.ɵɵelementStart(2, "p");
153
220
  i0.ɵɵtext(3, "No results match current filters. Try lowering the minimum relevance.");
154
221
  i0.ɵɵelementEnd()();
155
222
  } }
156
- function SearchResultsResource_Conditional_4_Conditional_3_Template(rf, ctx) { if (rf & 1) {
157
- i0.ɵɵelementStart(0, "div", 32);
158
- i0.ɵɵconditionalCreate(1, SearchResultsResource_Conditional_4_Conditional_3_Conditional_1_Template, 1, 5, "mj-search-filter", 37);
159
- i0.ɵɵconditionalCreate(2, SearchResultsResource_Conditional_4_Conditional_3_Conditional_2_Template, 1, 6, "mj-search-results", 38)(3, SearchResultsResource_Conditional_4_Conditional_3_Conditional_3_Template, 4, 0, "div", 39);
223
+ function SearchResultsResource_Conditional_5_Conditional_3_Template(rf, ctx) { if (rf & 1) {
224
+ i0.ɵɵelementStart(0, "div", 42);
225
+ i0.ɵɵconditionalCreate(1, SearchResultsResource_Conditional_5_Conditional_3_Conditional_1_Template, 1, 5, "mj-search-filter", 47);
226
+ i0.ɵɵconditionalCreate(2, SearchResultsResource_Conditional_5_Conditional_3_Conditional_2_Template, 1, 6, "mj-search-results", 48)(3, SearchResultsResource_Conditional_5_Conditional_3_Conditional_3_Template, 4, 0, "div", 49);
160
227
  i0.ɵɵelementEnd();
161
228
  } if (rf & 2) {
162
- const ctx_r2 = i0.ɵɵnextContext(2);
229
+ const ctx_r1 = i0.ɵɵnextContext(2);
163
230
  i0.ɵɵadvance();
164
- i0.ɵɵconditional(ctx_r2.ShowFilterPanel ? 1 : -1);
231
+ i0.ɵɵconditional(ctx_r1.ShowFilterPanel ? 1 : -1);
165
232
  i0.ɵɵadvance();
166
- i0.ɵɵconditional(ctx_r2.FilteredResults.length > 0 ? 2 : 3);
233
+ i0.ɵɵconditional(ctx_r1.FilteredResults.length > 0 ? 2 : 3);
167
234
  } }
168
- function SearchResultsResource_Conditional_4_Template(rf, ctx) { if (rf & 1) {
169
- i0.ɵɵelementStart(0, "div", 4);
170
- i0.ɵɵconditionalCreate(1, SearchResultsResource_Conditional_4_Conditional_1_Template, 2, 0, "div", 30);
171
- i0.ɵɵconditionalCreate(2, SearchResultsResource_Conditional_4_Conditional_2_Template, 3, 1, "div", 31)(3, SearchResultsResource_Conditional_4_Conditional_3_Template, 4, 2, "div", 32);
235
+ function SearchResultsResource_Conditional_5_Template(rf, ctx) { if (rf & 1) {
236
+ i0.ɵɵelementStart(0, "div", 5);
237
+ i0.ɵɵconditionalCreate(1, SearchResultsResource_Conditional_5_Conditional_1_Template, 2, 0, "div", 40);
238
+ i0.ɵɵconditionalCreate(2, SearchResultsResource_Conditional_5_Conditional_2_Template, 3, 1, "div", 41)(3, SearchResultsResource_Conditional_5_Conditional_3_Template, 4, 2, "div", 42);
172
239
  i0.ɵɵelementEnd();
173
240
  } if (rf & 2) {
174
- const ctx_r2 = i0.ɵɵnextContext();
241
+ const ctx_r1 = i0.ɵɵnextContext();
175
242
  i0.ɵɵadvance();
176
- i0.ɵɵconditional(ctx_r2.IsSearching ? 1 : -1);
243
+ i0.ɵɵconditional(ctx_r1.IsSearching ? 1 : -1);
177
244
  i0.ɵɵadvance();
178
- i0.ɵɵconditional(ctx_r2.ViewMode === "cloud" ? 2 : 3);
245
+ i0.ɵɵconditional(ctx_r1.ViewMode === "cloud" ? 2 : 3);
179
246
  } }
180
247
  let SearchResultsResource = class SearchResultsResource extends BaseResourceComponent {
181
248
  cdr = inject(ChangeDetectorRef);
@@ -203,6 +270,19 @@ let SearchResultsResource = class SearchResultsResource extends BaseResourceComp
203
270
  IsLoadingCloud = false;
204
271
  /** All results from the last search (before client-side filtering) */
205
272
  allResults = [];
273
+ /** Selected scope IDs from the search bar (empty = unscoped/global). */
274
+ ScopeIDs = [];
275
+ /**
276
+ * Phase 2C streaming opt-in. Off by default to preserve Phase 1 request-response UX.
277
+ * Enable per-resource via `Data.Configuration.EnableStreaming` or per-tab via the
278
+ * `?stream=1` query param (mostly for engineering verification before flipping the
279
+ * default).
280
+ */
281
+ EnableStreaming = false;
282
+ /** Per-provider stream status displayed above results while a stream is in flight. */
283
+ StreamingProviders = [];
284
+ /** Active stream subscription so we can cancel on a new search or destroy. */
285
+ currentStream = null;
206
286
  dataLoaded = false;
207
287
  // Override Data setter to trigger search when tab container provides the data
208
288
  // (ngOnInit fires before Data is set, so we can't rely on it)
@@ -240,6 +320,24 @@ let SearchResultsResource = class SearchResultsResource extends BaseResourceComp
240
320
  this.MinScorePercent = mr;
241
321
  }
242
322
  }
323
+ // Carry scope selection from the search bar through into the initial query.
324
+ if (Array.isArray(config?.ScopeIDs)) {
325
+ this.ScopeIDs = config.ScopeIDs.filter((x) => typeof x === 'string');
326
+ }
327
+ // Streaming opt-in: resource config wins; URL query param `?stream=1` is the
328
+ // engineering-verification override (cleared once the default flips). Read the
329
+ // URL directly because the resource's tab config doesn't always mirror URL params
330
+ // into `Configuration.queryParams` at the moment loadFromData() runs.
331
+ if (config?.EnableStreaming === true) {
332
+ this.EnableStreaming = true;
333
+ }
334
+ try {
335
+ const streamParam = new URL(window.location.href).searchParams.get('stream');
336
+ if (streamParam === '1' || streamParam === 'true') {
337
+ this.EnableStreaming = true;
338
+ }
339
+ }
340
+ catch { /* ignore — server-side render or odd URL */ }
243
341
  // Sync min relevance to URL query param
244
342
  this.navigationService.UpdateActiveTabQueryParams({ minRelevance: String(this.MinScorePercent) });
245
343
  if (this.CurrentQuery) {
@@ -247,6 +345,11 @@ let SearchResultsResource = class SearchResultsResource extends BaseResourceComp
247
345
  }
248
346
  this.NotifyLoadComplete();
249
347
  }
348
+ ngOnDestroy() {
349
+ this.currentStream?.unsubscribe();
350
+ this.currentStream = null;
351
+ super.ngOnDestroy();
352
+ }
250
353
  async GetResourceDisplayName(data) {
251
354
  const query = (data.Configuration?.Query ?? data.Configuration?.SearchInput ?? 'Search');
252
355
  return `Search: ${query}`;
@@ -363,6 +466,13 @@ let SearchResultsResource = class SearchResultsResource extends BaseResourceComp
363
466
  IncludeSources: ['vector', 'fulltext', 'entity', 'storage'],
364
467
  MinScore: this.MinScorePercent / 100
365
468
  };
469
+ if (this.ScopeIDs.length > 0) {
470
+ request.ScopeIDs = [...this.ScopeIDs];
471
+ }
472
+ if (this.EnableStreaming) {
473
+ this.executeStreamingSearch(query, request);
474
+ return;
475
+ }
366
476
  const response = await this.searchService.ExecuteSearch(request);
367
477
  this.allResults = [...response.Results].sort((a, b) => b.Score - a.Score);
368
478
  this.ServerResultCount = this.allResults.length;
@@ -375,6 +485,73 @@ let SearchResultsResource = class SearchResultsResource extends BaseResourceComp
375
485
  this.emitAgentContext();
376
486
  this.cdr.detectChanges();
377
487
  }
488
+ /**
489
+ * Phase 2C streaming variant. Subscribes to `streamScopedSearch` and progressively
490
+ * populates the result list as each provider reports back. The 'final' event carries
491
+ * the canonical fused/reranked list, which replaces any partials the user already saw.
492
+ *
493
+ * Cancellation: a new query starts by tearing down the in-flight stream so events
494
+ * from a stale search do not bleed into the current view.
495
+ */
496
+ executeStreamingSearch(query, request) {
497
+ // Cancel any prior stream so events from a stale query don't leak in.
498
+ this.currentStream?.unsubscribe();
499
+ this.currentStream = null;
500
+ // Reset visible streaming state.
501
+ this.StreamingProviders = [];
502
+ this.allResults = [];
503
+ this.FilteredResults = [];
504
+ this.ServerResultCount = 0;
505
+ this.TotalCount = 0;
506
+ this.ElapsedMs = 0;
507
+ this.cdr.detectChanges();
508
+ this.currentStream = this.searchService.StreamSearch(request).subscribe({
509
+ next: (event) => {
510
+ if (event.Phase === 'provider' && event.ProviderName) {
511
+ const count = event.Results?.length ?? 0;
512
+ this.StreamingProviders = [
513
+ ...this.StreamingProviders,
514
+ {
515
+ Name: event.ProviderName,
516
+ Count: count,
517
+ ElapsedMs: event.ElapsedMs ?? 0,
518
+ State: 'Completed',
519
+ },
520
+ ];
521
+ if (event.Results && event.Results.length > 0) {
522
+ this.allResults = [...this.allResults, ...event.Results].sort((a, b) => b.Score - a.Score);
523
+ this.ServerResultCount = this.allResults.length;
524
+ this.applyClientFilters();
525
+ }
526
+ }
527
+ else if (event.Phase === 'final' && event.Results) {
528
+ this.allResults = [...event.Results].sort((a, b) => b.Score - a.Score);
529
+ this.ServerResultCount = this.allResults.length;
530
+ this.TotalCount = event.Results.length;
531
+ this.ElapsedMs = event.ElapsedMs ?? this.ElapsedMs;
532
+ this.Filters = this.searchService.BuildFilters(this.allResults);
533
+ this.applyClientFilters();
534
+ this.HasSearched = true;
535
+ }
536
+ this.cdr.detectChanges();
537
+ },
538
+ error: (err) => {
539
+ this.StreamingProviders = [
540
+ ...this.StreamingProviders,
541
+ { Name: 'stream', Count: 0, ElapsedMs: 0, State: 'Error', ErrorMessage: err.message },
542
+ ];
543
+ this.IsSearching = false;
544
+ this.HasSearched = true;
545
+ this.cdr.detectChanges();
546
+ },
547
+ complete: () => {
548
+ this.IsSearching = false;
549
+ this.HasSearched = true;
550
+ this.emitAgentContext();
551
+ this.cdr.detectChanges();
552
+ },
553
+ });
554
+ }
378
555
  /**
379
556
  * Apply active filter selections to the full result set.
380
557
  */
@@ -647,23 +824,26 @@ let SearchResultsResource = class SearchResultsResource extends BaseResourceComp
647
824
  ]);
648
825
  }
649
826
  static ɵfac = /*@__PURE__*/ (() => { let ɵSearchResultsResource_BaseFactory; return function SearchResultsResource_Factory(__ngFactoryType__) { return (ɵSearchResultsResource_BaseFactory || (ɵSearchResultsResource_BaseFactory = i0.ɵɵgetInheritedFactory(SearchResultsResource)))(__ngFactoryType__ || SearchResultsResource); }; })();
650
- static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: SearchResultsResource, selectors: [["mj-search-results-resource"]], standalone: false, features: [i0.ɵɵInheritDefinitionFeature], decls: 5, vars: 4, consts: [[1, "search-results-page"], [1, "search-header"], [1, "search-loading"], [1, "search-no-results"], [1, "search-results-body-wrapper"], [1, "search-header-left"], ["title", "Show filters", 1, "sr-icon-btn"], [1, "search-meta"], [1, "search-header-right"], [1, "sr-refine-wrapper"], [1, "fa-solid", "fa-filter-list", "sr-refine-icon"], ["placeholder", "Filter within results...", 1, "mj-input", "sr-refine-input", 3, "input", "value"], [1, "sr-refine-clear"], [1, "mj-input", "sr-sort-select", 3, "change", "value"], ["value", "score"], ["value", "title"], ["value", "entity"], [1, "sr-view-toggle"], ["title", "List view", 1, "sr-icon-btn", 3, "click"], [1, "fa-solid", "fa-list"], ["title", "Tag cloud view", 1, "sr-icon-btn", 3, "click"], [1, "fa-solid", "fa-cloud"], ["title", "Refresh search", 1, "sr-icon-btn", 3, "click", "disabled"], [1, "fa-solid", "fa-arrows-rotate"], ["title", "Show filters", 1, "sr-icon-btn", 3, "click"], [1, "fa-solid", "fa-filter"], [1, "sr-refine-clear", 3, "click"], [1, "fa-solid", "fa-xmark"], ["text", "Searching...", "size", "medium"], [1, "fa-solid", "fa-magnifying-glass-minus"], [1, "search-requery-overlay"], [1, "search-cloud-wrapper"], [1, "search-body"], ["text", "Updating results...", "size", "medium"], ["text", "Loading tag cloud...", "size", "medium"], ["ColorMode", "weight-gradient", 3, "Items", "MaxItems", "Interactive"], ["ColorMode", "weight-gradient", 3, "ItemClick", "Items", "MaxItems", "Interactive"], [3, "Filters", "ActiveFilters", "ShowRelevanceSlider", "MinScorePercent", "ServerMinScorePercent"], [3, "FlatResults", "HighlightText", "ShowScores", "ShowTags", "ShowSummary", "PageSize"], [1, "search-no-results-inline"], [3, "FilterChanged", "FiltersCleared", "CloseRequested", "MinScoreChanged", "Filters", "ActiveFilters", "ShowRelevanceSlider", "MinScorePercent", "ServerMinScorePercent"], [3, "ResultSelected", "OpenRecordRequested", "FlatResults", "HighlightText", "ShowScores", "ShowTags", "ShowSummary", "PageSize"], [1, "fa-solid", "fa-filter-circle-xmark"]], template: function SearchResultsResource_Template(rf, ctx) { if (rf & 1) {
827
+ static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: SearchResultsResource, selectors: [["mj-search-results-resource"]], standalone: false, features: [i0.ɵɵInheritDefinitionFeature], decls: 6, vars: 5, consts: [[1, "search-results-page"], ["aria-live", "polite", 1, "streaming-status-strip"], [1, "search-header"], [1, "search-loading"], [1, "search-no-results"], [1, "search-results-body-wrapper"], [1, "streaming-chip", 3, "streaming-chip-error", "streaming-chip-completed"], [1, "streaming-chip", "streaming-chip-pending"], [1, "streaming-chip"], [1, "fa-solid", "fa-check"], [1, "fa-solid", "fa-triangle-exclamation"], [1, "streaming-chip-name"], [1, "streaming-chip-time"], [1, "streaming-chip-count"], [1, "fa-solid", "fa-circle-notch", "fa-spin"], [1, "search-header-left"], ["title", "Show filters", 1, "sr-icon-btn"], [1, "search-meta"], [1, "search-header-right"], [1, "sr-refine-wrapper"], [1, "fa-solid", "fa-filter-list", "sr-refine-icon"], ["placeholder", "Filter within results...", 1, "mj-input", "sr-refine-input", 3, "input", "value"], [1, "sr-refine-clear"], [1, "mj-input", "sr-sort-select", 3, "change", "value"], ["value", "score"], ["value", "title"], ["value", "entity"], [1, "sr-view-toggle"], ["title", "List view", 1, "sr-icon-btn", 3, "click"], [1, "fa-solid", "fa-list"], ["title", "Tag cloud view", 1, "sr-icon-btn", 3, "click"], [1, "fa-solid", "fa-cloud"], ["title", "Refresh search", 1, "sr-icon-btn", 3, "click", "disabled"], [1, "fa-solid", "fa-arrows-rotate"], ["title", "Show filters", 1, "sr-icon-btn", 3, "click"], [1, "fa-solid", "fa-filter"], [1, "sr-refine-clear", 3, "click"], [1, "fa-solid", "fa-xmark"], ["text", "Searching...", "size", "medium"], [1, "fa-solid", "fa-magnifying-glass-minus"], [1, "search-requery-overlay"], [1, "search-cloud-wrapper"], [1, "search-body"], ["text", "Updating results...", "size", "medium"], ["text", "Loading tag cloud...", "size", "medium"], ["ColorMode", "weight-gradient", 3, "Items", "MaxItems", "Interactive"], ["ColorMode", "weight-gradient", 3, "ItemClick", "Items", "MaxItems", "Interactive"], [3, "Filters", "ActiveFilters", "ShowRelevanceSlider", "MinScorePercent", "ServerMinScorePercent"], [3, "FlatResults", "HighlightText", "ShowScores", "ShowTags", "ShowSummary", "PageSize"], [1, "search-no-results-inline"], [3, "FilterChanged", "FiltersCleared", "CloseRequested", "MinScoreChanged", "Filters", "ActiveFilters", "ShowRelevanceSlider", "MinScorePercent", "ServerMinScorePercent"], [3, "ResultSelected", "OpenRecordRequested", "FlatResults", "HighlightText", "ShowScores", "ShowTags", "ShowSummary", "PageSize"], [1, "fa-solid", "fa-filter-circle-xmark"]], template: function SearchResultsResource_Template(rf, ctx) { if (rf & 1) {
651
828
  i0.ɵɵelementStart(0, "div", 0);
652
- i0.ɵɵconditionalCreate(1, SearchResultsResource_Conditional_1_Template, 24, 16, "div", 1);
653
- i0.ɵɵconditionalCreate(2, SearchResultsResource_Conditional_2_Template, 2, 0, "div", 2);
654
- i0.ɵɵconditionalCreate(3, SearchResultsResource_Conditional_3_Template, 6, 0, "div", 3);
655
- i0.ɵɵconditionalCreate(4, SearchResultsResource_Conditional_4_Template, 4, 2, "div", 4);
829
+ i0.ɵɵconditionalCreate(1, SearchResultsResource_Conditional_1_Template, 4, 1, "div", 1);
830
+ i0.ɵɵconditionalCreate(2, SearchResultsResource_Conditional_2_Template, 24, 16, "div", 2);
831
+ i0.ɵɵconditionalCreate(3, SearchResultsResource_Conditional_3_Template, 2, 0, "div", 3);
832
+ i0.ɵɵconditionalCreate(4, SearchResultsResource_Conditional_4_Template, 6, 0, "div", 4);
833
+ i0.ɵɵconditionalCreate(5, SearchResultsResource_Conditional_5_Template, 4, 2, "div", 5);
656
834
  i0.ɵɵelementEnd();
657
835
  } if (rf & 2) {
658
836
  i0.ɵɵadvance();
659
- i0.ɵɵconditional(ctx.HasSearched && ctx.ServerResultCount > 0 ? 1 : -1);
837
+ i0.ɵɵconditional(ctx.EnableStreaming && (ctx.IsSearching || ctx.StreamingProviders.length > 0) ? 1 : -1);
838
+ i0.ɵɵadvance();
839
+ i0.ɵɵconditional(ctx.HasSearched && ctx.ServerResultCount > 0 ? 2 : -1);
660
840
  i0.ɵɵadvance();
661
- i0.ɵɵconditional(ctx.IsSearching && ctx.ServerResultCount === 0 ? 2 : -1);
841
+ i0.ɵɵconditional(ctx.IsSearching && ctx.ServerResultCount === 0 ? 3 : -1);
662
842
  i0.ɵɵadvance();
663
- i0.ɵɵconditional(!ctx.IsSearching && ctx.ServerResultCount === 0 && ctx.HasSearched ? 3 : -1);
843
+ i0.ɵɵconditional(!ctx.IsSearching && ctx.ServerResultCount === 0 && ctx.HasSearched ? 4 : -1);
664
844
  i0.ɵɵadvance();
665
- i0.ɵɵconditional(ctx.ServerResultCount > 0 ? 4 : -1);
666
- } }, dependencies: [i1.NgSelectOption, i1.ɵNgSelectMultipleOption, i2.LoadingComponent, i3.SearchResultsComponent, i3.SearchFilterComponent, i4.MJWordCloudComponent], styles: [".search-results-page[_ngcontent-%COMP%] {\n height: 100%;\n display: flex;\n flex-direction: column;\n background: var(--mj-bg-page);\n overflow: hidden;\n }\n .search-header[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: 12px;\n padding: 8px 24px;\n border-bottom: 1px solid var(--mj-border-default);\n background: var(--mj-bg-surface);\n flex-shrink: 0;\n }\n .search-header-left[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n }\n .search-header-right[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n }\n .search-meta[_ngcontent-%COMP%] {\n color: var(--mj-text-muted);\n font-size: 13px;\n white-space: nowrap;\n }\n .sr-icon-btn[_ngcontent-%COMP%] {\n width: 32px;\n height: 32px;\n display: flex;\n align-items: center;\n justify-content: center;\n border: 1px solid var(--mj-border-default);\n border-radius: 6px;\n background: var(--mj-bg-surface);\n color: var(--mj-text-secondary);\n cursor: pointer;\n transition: all 0.15s;\n font-size: 13px;\n flex-shrink: 0;\n }\n .sr-icon-btn[_ngcontent-%COMP%]:hover { background: var(--mj-bg-surface-hover); color: var(--mj-text-primary); }\n .sr-icon-btn[_ngcontent-%COMP%]:disabled { opacity: 0.4; cursor: default; }\n .sr-refine-wrapper[_ngcontent-%COMP%] {\n position: relative;\n display: flex;\n align-items: center;\n }\n .sr-refine-icon[_ngcontent-%COMP%] {\n position: absolute;\n left: 8px;\n color: var(--mj-text-muted);\n font-size: 12px;\n pointer-events: none;\n }\n .sr-refine-input[_ngcontent-%COMP%] {\n padding: 5px 28px 5px 26px;\n font-size: 12px;\n width: 180px;\n border-radius: 6px;\n }\n .sr-refine-clear[_ngcontent-%COMP%] {\n position: absolute;\n right: 6px;\n background: none;\n border: none;\n color: var(--mj-text-muted);\n cursor: pointer;\n font-size: 11px;\n padding: 2px;\n }\n .sr-refine-clear[_ngcontent-%COMP%]:hover { color: var(--mj-text-primary); }\n .sr-sort-select[_ngcontent-%COMP%] {\n padding: 5px 24px 5px 8px;\n font-size: 12px;\n border-radius: 6px;\n min-width: 130px;\n }\n .search-loading[_ngcontent-%COMP%] {\n display: flex;\n justify-content: center;\n padding: 60px 0;\n }\n .search-body[_ngcontent-%COMP%] {\n flex: 1;\n display: flex;\n gap: 16px;\n padding: 16px 24px;\n overflow: hidden;\n }\n .search-body[_ngcontent-%COMP%] mj-search-filter[_ngcontent-%COMP%] {\n flex-shrink: 0;\n width: 240px;\n overflow-y: auto;\n }\n .search-body[_ngcontent-%COMP%] mj-search-results[_ngcontent-%COMP%] {\n flex: 1;\n min-width: 0;\n overflow-y: auto;\n }\n .search-no-results[_ngcontent-%COMP%] {\n text-align: center;\n padding: 60px 20px;\n color: var(--mj-text-muted);\n }\n .search-no-results[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 48px;\n margin-bottom: 16px;\n opacity: 0.4;\n }\n .search-no-results[_ngcontent-%COMP%] h3[_ngcontent-%COMP%] {\n font-size: 18px;\n color: var(--mj-text-primary);\n margin: 0 0 8px;\n }\n .search-no-results[_ngcontent-%COMP%] p[_ngcontent-%COMP%] {\n font-size: 14px;\n margin: 0;\n }\n .search-results-body-wrapper[_ngcontent-%COMP%] {\n position: relative;\n flex: 1;\n display: flex;\n flex-direction: column;\n overflow: hidden;\n }\n .search-requery-overlay[_ngcontent-%COMP%] {\n position: absolute;\n inset: 0;\n background: color-mix(in srgb, var(--mj-bg-page) 75%, transparent);\n z-index: 10;\n display: flex;\n align-items: center;\n justify-content: center;\n }\n .search-no-results-inline[_ngcontent-%COMP%] {\n flex: 1;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n gap: 8px;\n color: var(--mj-text-muted);\n padding: 40px 20px;\n }\n .search-no-results-inline[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 32px;\n opacity: 0.4;\n }\n .search-no-results-inline[_ngcontent-%COMP%] p[_ngcontent-%COMP%] {\n font-size: 13px;\n margin: 0;\n }\n .sr-view-toggle[_ngcontent-%COMP%] {\n display: flex;\n gap: 2px;\n border: 1px solid var(--mj-border-default);\n border-radius: 6px;\n padding: 2px;\n background: var(--mj-bg-surface-sunken);\n }\n .sr-view-toggle[_ngcontent-%COMP%] .sr-icon-btn[_ngcontent-%COMP%] {\n border: none;\n border-radius: 4px;\n width: 28px;\n height: 26px;\n font-size: 12px;\n background: transparent;\n }\n .sr-view-toggle[_ngcontent-%COMP%] .sr-icon-btn.sr-view-active[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface);\n color: var(--mj-brand-primary);\n box-shadow: 0 1px 2px color-mix(in srgb, var(--mj-text-primary) 10%, transparent);\n }\n .search-cloud-wrapper[_ngcontent-%COMP%] {\n flex: 1;\n padding: 24px;\n overflow: hidden;\n display: flex;\n align-items: center;\n justify-content: center;\n }\n .search-cloud-wrapper[_ngcontent-%COMP%] mj-word-cloud[_ngcontent-%COMP%] {\n width: 100%;\n height: 100%;\n max-height: 600px;\n }"] });
845
+ i0.ɵɵconditional(ctx.ServerResultCount > 0 ? 5 : -1);
846
+ } }, dependencies: [i1.NgSelectOption, i1.ɵNgSelectMultipleOption, i2.LoadingComponent, i3.SearchResultsComponent, i3.SearchFilterComponent, i4.MJWordCloudComponent], styles: [".search-results-page[_ngcontent-%COMP%] {\n height: 100%;\n display: flex;\n flex-direction: column;\n background: var(--mj-bg-page);\n overflow: hidden;\n }\n .search-header[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: 12px;\n padding: 8px 24px;\n border-bottom: 1px solid var(--mj-border-default);\n background: var(--mj-bg-surface);\n flex-shrink: 0;\n }\n .search-header-left[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n }\n .search-header-right[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n }\n .search-meta[_ngcontent-%COMP%] {\n color: var(--mj-text-muted);\n font-size: 13px;\n white-space: nowrap;\n }\n .sr-icon-btn[_ngcontent-%COMP%] {\n width: 32px;\n height: 32px;\n display: flex;\n align-items: center;\n justify-content: center;\n border: 1px solid var(--mj-border-default);\n border-radius: 6px;\n background: var(--mj-bg-surface);\n color: var(--mj-text-secondary);\n cursor: pointer;\n transition: all 0.15s;\n font-size: 13px;\n flex-shrink: 0;\n }\n .sr-icon-btn[_ngcontent-%COMP%]:hover { background: var(--mj-bg-surface-hover); color: var(--mj-text-primary); }\n .sr-icon-btn[_ngcontent-%COMP%]:disabled { opacity: 0.4; cursor: default; }\n .sr-refine-wrapper[_ngcontent-%COMP%] {\n position: relative;\n display: flex;\n align-items: center;\n }\n .sr-refine-icon[_ngcontent-%COMP%] {\n position: absolute;\n left: 8px;\n color: var(--mj-text-muted);\n font-size: 12px;\n pointer-events: none;\n }\n .sr-refine-input[_ngcontent-%COMP%] {\n padding: 5px 28px 5px 26px;\n font-size: 12px;\n width: 180px;\n border-radius: 6px;\n }\n .sr-refine-clear[_ngcontent-%COMP%] {\n position: absolute;\n right: 6px;\n background: none;\n border: none;\n color: var(--mj-text-muted);\n cursor: pointer;\n font-size: 11px;\n padding: 2px;\n }\n .sr-refine-clear[_ngcontent-%COMP%]:hover { color: var(--mj-text-primary); }\n .sr-sort-select[_ngcontent-%COMP%] {\n padding: 5px 24px 5px 8px;\n font-size: 12px;\n border-radius: 6px;\n min-width: 130px;\n }\n .search-loading[_ngcontent-%COMP%] {\n display: flex;\n justify-content: center;\n padding: 60px 0;\n }\n .search-body[_ngcontent-%COMP%] {\n flex: 1;\n display: flex;\n gap: 16px;\n padding: 16px 24px;\n overflow: hidden;\n }\n .search-body[_ngcontent-%COMP%] mj-search-filter[_ngcontent-%COMP%] {\n flex-shrink: 0;\n width: 240px;\n overflow-y: auto;\n }\n .search-body[_ngcontent-%COMP%] mj-search-results[_ngcontent-%COMP%] {\n flex: 1;\n min-width: 0;\n overflow-y: auto;\n }\n .search-no-results[_ngcontent-%COMP%] {\n text-align: center;\n padding: 60px 20px;\n color: var(--mj-text-muted);\n }\n .search-no-results[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 48px;\n margin-bottom: 16px;\n opacity: 0.4;\n }\n .search-no-results[_ngcontent-%COMP%] h3[_ngcontent-%COMP%] {\n font-size: 18px;\n color: var(--mj-text-primary);\n margin: 0 0 8px;\n }\n .search-no-results[_ngcontent-%COMP%] p[_ngcontent-%COMP%] {\n font-size: 14px;\n margin: 0;\n }\n .search-results-body-wrapper[_ngcontent-%COMP%] {\n position: relative;\n flex: 1;\n display: flex;\n flex-direction: column;\n overflow: hidden;\n }\n .search-requery-overlay[_ngcontent-%COMP%] {\n position: absolute;\n inset: 0;\n background: color-mix(in srgb, var(--mj-bg-page) 75%, transparent);\n z-index: 10;\n display: flex;\n align-items: center;\n justify-content: center;\n }\n .search-no-results-inline[_ngcontent-%COMP%] {\n flex: 1;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n gap: 8px;\n color: var(--mj-text-muted);\n padding: 40px 20px;\n }\n .search-no-results-inline[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 32px;\n opacity: 0.4;\n }\n .search-no-results-inline[_ngcontent-%COMP%] p[_ngcontent-%COMP%] {\n font-size: 13px;\n margin: 0;\n }\n .sr-view-toggle[_ngcontent-%COMP%] {\n display: flex;\n gap: 2px;\n border: 1px solid var(--mj-border-default);\n border-radius: 6px;\n padding: 2px;\n background: var(--mj-bg-surface-sunken);\n }\n .sr-view-toggle[_ngcontent-%COMP%] .sr-icon-btn[_ngcontent-%COMP%] {\n border: none;\n border-radius: 4px;\n width: 28px;\n height: 26px;\n font-size: 12px;\n background: transparent;\n }\n .sr-view-toggle[_ngcontent-%COMP%] .sr-icon-btn.sr-view-active[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface);\n color: var(--mj-brand-primary);\n box-shadow: 0 1px 2px color-mix(in srgb, var(--mj-text-primary) 10%, transparent);\n }\n .search-cloud-wrapper[_ngcontent-%COMP%] {\n flex: 1;\n padding: 24px;\n overflow: hidden;\n display: flex;\n align-items: center;\n justify-content: center;\n }\n .search-cloud-wrapper[_ngcontent-%COMP%] mj-word-cloud[_ngcontent-%COMP%] {\n width: 100%;\n height: 100%;\n max-height: 600px;\n }\n .streaming-status-strip[_ngcontent-%COMP%] {\n display: flex;\n flex-wrap: wrap;\n gap: 0.4rem;\n padding: 0.5rem 1rem;\n border-bottom: 1px solid var(--mj-border-subtle);\n }\n .streaming-chip[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n gap: 0.35rem;\n padding: 0.2rem 0.55rem;\n border-radius: 9999px;\n border: 1px solid var(--mj-border-default);\n background: var(--mj-bg-surface);\n color: var(--mj-text-secondary);\n font-size: 0.74rem;\n }\n .streaming-chip-pending[_ngcontent-%COMP%] {\n color: var(--mj-text-muted);\n }\n .streaming-chip-completed[_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--mj-status-success) 10%, var(--mj-bg-surface));\n border-color: var(--mj-status-success-border);\n color: var(--mj-status-success-text);\n }\n .streaming-chip-error[_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--mj-status-error) 10%, var(--mj-bg-surface));\n border-color: var(--mj-status-error-border);\n color: var(--mj-status-error-text);\n }\n .streaming-chip-name[_ngcontent-%COMP%] { font-weight: 500; }\n .streaming-chip-count[_ngcontent-%COMP%] { opacity: 0.7; }\n .streaming-chip-time[_ngcontent-%COMP%] { opacity: 0.6; font-size: 0.7rem; }"] });
667
847
  };
668
848
  SearchResultsResource = __decorate([
669
849
  RegisterClass(BaseResourceComponent, 'SearchResultsResource')
@@ -673,6 +853,36 @@ export { SearchResultsResource };
673
853
  type: Component,
674
854
  args: [{ standalone: false, selector: 'mj-search-results-resource', template: `
675
855
  <div class="search-results-page">
856
+ <!-- Streaming status strip — visible while streamScopedSearch is in flight -->
857
+ @if (EnableStreaming && (IsSearching || StreamingProviders.length > 0)) {
858
+ <div class="streaming-status-strip" aria-live="polite">
859
+ @for (p of StreamingProviders; track p.Name) {
860
+ <span class="streaming-chip"
861
+ [class.streaming-chip-error]="p.State === 'Error'"
862
+ [class.streaming-chip-completed]="p.State === 'Completed'">
863
+ @if (p.State === 'Completed') {
864
+ <i class="fa-solid fa-check"></i>
865
+ } @else {
866
+ <i class="fa-solid fa-triangle-exclamation"></i>
867
+ }
868
+ <span class="streaming-chip-name">{{ p.Name }}</span>
869
+ @if (p.State === 'Completed') {
870
+ <span class="streaming-chip-count">{{ p.Count }}</span>
871
+ <span class="streaming-chip-time">{{ p.ElapsedMs }}ms</span>
872
+ } @else if (p.ErrorMessage) {
873
+ <span class="streaming-chip-time">{{ p.ErrorMessage }}</span>
874
+ }
875
+ </span>
876
+ }
877
+ @if (IsSearching) {
878
+ <span class="streaming-chip streaming-chip-pending">
879
+ <i class="fa-solid fa-circle-notch fa-spin"></i>
880
+ <span>Streaming…</span>
881
+ </span>
882
+ }
883
+ </div>
884
+ }
885
+
676
886
  <!-- Header bar (always visible when we have server results) -->
677
887
  @if (HasSearched && ServerResultCount > 0) {
678
888
  <div class="search-header">
@@ -806,9 +1016,9 @@ export { SearchResultsResource };
806
1016
  </div>
807
1017
  }
808
1018
  </div>
809
- `, styles: ["\n .search-results-page {\n height: 100%;\n display: flex;\n flex-direction: column;\n background: var(--mj-bg-page);\n overflow: hidden;\n }\n .search-header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: 12px;\n padding: 8px 24px;\n border-bottom: 1px solid var(--mj-border-default);\n background: var(--mj-bg-surface);\n flex-shrink: 0;\n }\n .search-header-left {\n display: flex;\n align-items: center;\n gap: 8px;\n }\n .search-header-right {\n display: flex;\n align-items: center;\n gap: 8px;\n }\n .search-meta {\n color: var(--mj-text-muted);\n font-size: 13px;\n white-space: nowrap;\n }\n .sr-icon-btn {\n width: 32px;\n height: 32px;\n display: flex;\n align-items: center;\n justify-content: center;\n border: 1px solid var(--mj-border-default);\n border-radius: 6px;\n background: var(--mj-bg-surface);\n color: var(--mj-text-secondary);\n cursor: pointer;\n transition: all 0.15s;\n font-size: 13px;\n flex-shrink: 0;\n }\n .sr-icon-btn:hover { background: var(--mj-bg-surface-hover); color: var(--mj-text-primary); }\n .sr-icon-btn:disabled { opacity: 0.4; cursor: default; }\n .sr-refine-wrapper {\n position: relative;\n display: flex;\n align-items: center;\n }\n .sr-refine-icon {\n position: absolute;\n left: 8px;\n color: var(--mj-text-muted);\n font-size: 12px;\n pointer-events: none;\n }\n .sr-refine-input {\n padding: 5px 28px 5px 26px;\n font-size: 12px;\n width: 180px;\n border-radius: 6px;\n }\n .sr-refine-clear {\n position: absolute;\n right: 6px;\n background: none;\n border: none;\n color: var(--mj-text-muted);\n cursor: pointer;\n font-size: 11px;\n padding: 2px;\n }\n .sr-refine-clear:hover { color: var(--mj-text-primary); }\n .sr-sort-select {\n padding: 5px 24px 5px 8px;\n font-size: 12px;\n border-radius: 6px;\n min-width: 130px;\n }\n .search-loading {\n display: flex;\n justify-content: center;\n padding: 60px 0;\n }\n .search-body {\n flex: 1;\n display: flex;\n gap: 16px;\n padding: 16px 24px;\n overflow: hidden;\n }\n .search-body mj-search-filter {\n flex-shrink: 0;\n width: 240px;\n overflow-y: auto;\n }\n .search-body mj-search-results {\n flex: 1;\n min-width: 0;\n overflow-y: auto;\n }\n .search-no-results {\n text-align: center;\n padding: 60px 20px;\n color: var(--mj-text-muted);\n }\n .search-no-results i {\n font-size: 48px;\n margin-bottom: 16px;\n opacity: 0.4;\n }\n .search-no-results h3 {\n font-size: 18px;\n color: var(--mj-text-primary);\n margin: 0 0 8px;\n }\n .search-no-results p {\n font-size: 14px;\n margin: 0;\n }\n .search-results-body-wrapper {\n position: relative;\n flex: 1;\n display: flex;\n flex-direction: column;\n overflow: hidden;\n }\n .search-requery-overlay {\n position: absolute;\n inset: 0;\n background: color-mix(in srgb, var(--mj-bg-page) 75%, transparent);\n z-index: 10;\n display: flex;\n align-items: center;\n justify-content: center;\n }\n .search-no-results-inline {\n flex: 1;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n gap: 8px;\n color: var(--mj-text-muted);\n padding: 40px 20px;\n }\n .search-no-results-inline i {\n font-size: 32px;\n opacity: 0.4;\n }\n .search-no-results-inline p {\n font-size: 13px;\n margin: 0;\n }\n .sr-view-toggle {\n display: flex;\n gap: 2px;\n border: 1px solid var(--mj-border-default);\n border-radius: 6px;\n padding: 2px;\n background: var(--mj-bg-surface-sunken);\n }\n .sr-view-toggle .sr-icon-btn {\n border: none;\n border-radius: 4px;\n width: 28px;\n height: 26px;\n font-size: 12px;\n background: transparent;\n }\n .sr-view-toggle .sr-icon-btn.sr-view-active {\n background: var(--mj-bg-surface);\n color: var(--mj-brand-primary);\n box-shadow: 0 1px 2px color-mix(in srgb, var(--mj-text-primary) 10%, transparent);\n }\n .search-cloud-wrapper {\n flex: 1;\n padding: 24px;\n overflow: hidden;\n display: flex;\n align-items: center;\n justify-content: center;\n }\n .search-cloud-wrapper mj-word-cloud {\n width: 100%;\n height: 100%;\n max-height: 600px;\n }\n "] }]
1019
+ `, styles: ["\n .search-results-page {\n height: 100%;\n display: flex;\n flex-direction: column;\n background: var(--mj-bg-page);\n overflow: hidden;\n }\n .search-header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: 12px;\n padding: 8px 24px;\n border-bottom: 1px solid var(--mj-border-default);\n background: var(--mj-bg-surface);\n flex-shrink: 0;\n }\n .search-header-left {\n display: flex;\n align-items: center;\n gap: 8px;\n }\n .search-header-right {\n display: flex;\n align-items: center;\n gap: 8px;\n }\n .search-meta {\n color: var(--mj-text-muted);\n font-size: 13px;\n white-space: nowrap;\n }\n .sr-icon-btn {\n width: 32px;\n height: 32px;\n display: flex;\n align-items: center;\n justify-content: center;\n border: 1px solid var(--mj-border-default);\n border-radius: 6px;\n background: var(--mj-bg-surface);\n color: var(--mj-text-secondary);\n cursor: pointer;\n transition: all 0.15s;\n font-size: 13px;\n flex-shrink: 0;\n }\n .sr-icon-btn:hover { background: var(--mj-bg-surface-hover); color: var(--mj-text-primary); }\n .sr-icon-btn:disabled { opacity: 0.4; cursor: default; }\n .sr-refine-wrapper {\n position: relative;\n display: flex;\n align-items: center;\n }\n .sr-refine-icon {\n position: absolute;\n left: 8px;\n color: var(--mj-text-muted);\n font-size: 12px;\n pointer-events: none;\n }\n .sr-refine-input {\n padding: 5px 28px 5px 26px;\n font-size: 12px;\n width: 180px;\n border-radius: 6px;\n }\n .sr-refine-clear {\n position: absolute;\n right: 6px;\n background: none;\n border: none;\n color: var(--mj-text-muted);\n cursor: pointer;\n font-size: 11px;\n padding: 2px;\n }\n .sr-refine-clear:hover { color: var(--mj-text-primary); }\n .sr-sort-select {\n padding: 5px 24px 5px 8px;\n font-size: 12px;\n border-radius: 6px;\n min-width: 130px;\n }\n .search-loading {\n display: flex;\n justify-content: center;\n padding: 60px 0;\n }\n .search-body {\n flex: 1;\n display: flex;\n gap: 16px;\n padding: 16px 24px;\n overflow: hidden;\n }\n .search-body mj-search-filter {\n flex-shrink: 0;\n width: 240px;\n overflow-y: auto;\n }\n .search-body mj-search-results {\n flex: 1;\n min-width: 0;\n overflow-y: auto;\n }\n .search-no-results {\n text-align: center;\n padding: 60px 20px;\n color: var(--mj-text-muted);\n }\n .search-no-results i {\n font-size: 48px;\n margin-bottom: 16px;\n opacity: 0.4;\n }\n .search-no-results h3 {\n font-size: 18px;\n color: var(--mj-text-primary);\n margin: 0 0 8px;\n }\n .search-no-results p {\n font-size: 14px;\n margin: 0;\n }\n .search-results-body-wrapper {\n position: relative;\n flex: 1;\n display: flex;\n flex-direction: column;\n overflow: hidden;\n }\n .search-requery-overlay {\n position: absolute;\n inset: 0;\n background: color-mix(in srgb, var(--mj-bg-page) 75%, transparent);\n z-index: 10;\n display: flex;\n align-items: center;\n justify-content: center;\n }\n .search-no-results-inline {\n flex: 1;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n gap: 8px;\n color: var(--mj-text-muted);\n padding: 40px 20px;\n }\n .search-no-results-inline i {\n font-size: 32px;\n opacity: 0.4;\n }\n .search-no-results-inline p {\n font-size: 13px;\n margin: 0;\n }\n .sr-view-toggle {\n display: flex;\n gap: 2px;\n border: 1px solid var(--mj-border-default);\n border-radius: 6px;\n padding: 2px;\n background: var(--mj-bg-surface-sunken);\n }\n .sr-view-toggle .sr-icon-btn {\n border: none;\n border-radius: 4px;\n width: 28px;\n height: 26px;\n font-size: 12px;\n background: transparent;\n }\n .sr-view-toggle .sr-icon-btn.sr-view-active {\n background: var(--mj-bg-surface);\n color: var(--mj-brand-primary);\n box-shadow: 0 1px 2px color-mix(in srgb, var(--mj-text-primary) 10%, transparent);\n }\n .search-cloud-wrapper {\n flex: 1;\n padding: 24px;\n overflow: hidden;\n display: flex;\n align-items: center;\n justify-content: center;\n }\n .search-cloud-wrapper mj-word-cloud {\n width: 100%;\n height: 100%;\n max-height: 600px;\n }\n .streaming-status-strip {\n display: flex;\n flex-wrap: wrap;\n gap: 0.4rem;\n padding: 0.5rem 1rem;\n border-bottom: 1px solid var(--mj-border-subtle);\n }\n .streaming-chip {\n display: inline-flex;\n align-items: center;\n gap: 0.35rem;\n padding: 0.2rem 0.55rem;\n border-radius: 9999px;\n border: 1px solid var(--mj-border-default);\n background: var(--mj-bg-surface);\n color: var(--mj-text-secondary);\n font-size: 0.74rem;\n }\n .streaming-chip-pending {\n color: var(--mj-text-muted);\n }\n .streaming-chip-completed {\n background: color-mix(in srgb, var(--mj-status-success) 10%, var(--mj-bg-surface));\n border-color: var(--mj-status-success-border);\n color: var(--mj-status-success-text);\n }\n .streaming-chip-error {\n background: color-mix(in srgb, var(--mj-status-error) 10%, var(--mj-bg-surface));\n border-color: var(--mj-status-error-border);\n color: var(--mj-status-error-text);\n }\n .streaming-chip-name { font-weight: 500; }\n .streaming-chip-count { opacity: 0.7; }\n .streaming-chip-time { opacity: 0.6; font-size: 0.7rem; }\n "] }]
810
1020
  }], null, null); })();
811
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(SearchResultsResource, { className: "SearchResultsResource", filePath: "src/lib/resource-wrappers/search-results-resource.component.ts", lineNumber: 354 }); })();
1021
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(SearchResultsResource, { className: "SearchResultsResource", filePath: "src/lib/resource-wrappers/search-results-resource.component.ts", lineNumber: 420 }); })();
812
1022
  export function LoadSearchResultsResource() {
813
1023
  // Tree-shaking prevention
814
1024
  }