@sinequa/atomic-angular 0.0.146

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.
Files changed (174) hide show
  1. package/assets/tailwind.css +334 -0
  2. package/esm2022/lib/assistant/index.mjs +2 -0
  3. package/esm2022/lib/assistant/signalR.web.service.mjs +81 -0
  4. package/esm2022/lib/components/dropdown-input.mjs +97 -0
  5. package/esm2022/lib/components/dropdown-list.mjs +35 -0
  6. package/esm2022/lib/components/dropdown.mjs +127 -0
  7. package/esm2022/lib/components/index.mjs +7 -0
  8. package/esm2022/lib/components/menu/index.mjs +3 -0
  9. package/esm2022/lib/components/menu/menu-item.mjs +22 -0
  10. package/esm2022/lib/components/menu/menu.mjs +99 -0
  11. package/esm2022/lib/components/metadata/index.mjs +2 -0
  12. package/esm2022/lib/components/metadata/metadata.component.mjs +65 -0
  13. package/esm2022/lib/components/theme/index.mjs +3 -0
  14. package/esm2022/lib/components/theme/theme-selector.component.mjs +67 -0
  15. package/esm2022/lib/components/theme/theme-toggle.component.mjs +67 -0
  16. package/esm2022/lib/directives/index.mjs +5 -0
  17. package/esm2022/lib/directives/infinite-scroll.directive.mjs +47 -0
  18. package/esm2022/lib/directives/select-article-on-click.directive.mjs +39 -0
  19. package/esm2022/lib/directives/show-bookmark.directive.mjs +55 -0
  20. package/esm2022/lib/directives/theme-provider.directive.mjs +31 -0
  21. package/esm2022/lib/guards/auth.guard.mjs +27 -0
  22. package/esm2022/lib/guards/index.mjs +3 -0
  23. package/esm2022/lib/guards/initialization.guard.mjs +41 -0
  24. package/esm2022/lib/interceptors/audit.interceptor.mjs +23 -0
  25. package/esm2022/lib/interceptors/auth.interceptor.mjs +49 -0
  26. package/esm2022/lib/interceptors/body.interceptor.mjs +24 -0
  27. package/esm2022/lib/interceptors/error.interceptor.mjs +35 -0
  28. package/esm2022/lib/interceptors/index.mjs +7 -0
  29. package/esm2022/lib/interceptors/toast.interceptor.mjs +27 -0
  30. package/esm2022/lib/models/aggregation.mjs +2 -0
  31. package/esm2022/lib/models/article-metadata.mjs +2 -0
  32. package/esm2022/lib/models/autocomplete.mjs +2 -0
  33. package/esm2022/lib/models/custom-json.mjs +2 -0
  34. package/esm2022/lib/models/filter-dropdown.mjs +2 -0
  35. package/esm2022/lib/models/index.mjs +7 -0
  36. package/esm2022/lib/models/user-settings.mjs +2 -0
  37. package/esm2022/lib/pipes/highlight-word.pipe.mjs +33 -0
  38. package/esm2022/lib/pipes/index.mjs +3 -0
  39. package/esm2022/lib/pipes/source-icon.pipe.mjs +43 -0
  40. package/esm2022/lib/public-api.mjs +18 -0
  41. package/esm2022/lib/resolvers/index.mjs +2 -0
  42. package/esm2022/lib/resolvers/query-name-resolver.mjs +14 -0
  43. package/esm2022/lib/resources/index.mjs +2 -0
  44. package/esm2022/lib/resources/themes.mjs +53 -0
  45. package/esm2022/lib/services/application.service.mjs +245 -0
  46. package/esm2022/lib/services/autocomplete.service.mjs +85 -0
  47. package/esm2022/lib/services/drawer/backdrop.service.mjs +23 -0
  48. package/esm2022/lib/services/drawer/drawer-stack.service.mjs +152 -0
  49. package/esm2022/lib/services/drawer/drawer.service.mjs +38 -0
  50. package/esm2022/lib/services/index.mjs +12 -0
  51. package/esm2022/lib/services/label.service.mjs +161 -0
  52. package/esm2022/lib/services/navigation.service.mjs +59 -0
  53. package/esm2022/lib/services/saved-searches.service.mjs +75 -0
  54. package/esm2022/lib/services/search.service.mjs +89 -0
  55. package/esm2022/lib/services/selection-history.service.mjs +92 -0
  56. package/esm2022/lib/services/selection.service.mjs +87 -0
  57. package/esm2022/lib/stores/aggregations.store.mjs +59 -0
  58. package/esm2022/lib/stores/app.store.mjs +270 -0
  59. package/esm2022/lib/stores/application.store.mjs +87 -0
  60. package/esm2022/lib/stores/index.mjs +9 -0
  61. package/esm2022/lib/stores/principal.store.mjs +47 -0
  62. package/esm2022/lib/stores/query-params.store.mjs +207 -0
  63. package/esm2022/lib/stores/selection.store.mjs +45 -0
  64. package/esm2022/lib/stores/theme.store.mjs +116 -0
  65. package/esm2022/lib/stores/user-settings.store.mjs +391 -0
  66. package/esm2022/lib/tokens/highlights.mjs +32 -0
  67. package/esm2022/lib/tokens/index.mjs +2 -0
  68. package/esm2022/lib/utils/debounced-signal.mjs +38 -0
  69. package/esm2022/lib/utils/index.mjs +8 -0
  70. package/esm2022/lib/utils/inline-worker.mjs +40 -0
  71. package/esm2022/lib/utils/query.mjs +58 -0
  72. package/esm2022/lib/utils/routes.mjs +28 -0
  73. package/esm2022/lib/utils/tailwind-utils.mjs +6 -0
  74. package/esm2022/lib/utils/theme-body-hook.mjs +18 -0
  75. package/esm2022/lib/utils/theme-registry.mjs +6 -0
  76. package/esm2022/lib/web-services/aggregations.service.mjs +104 -0
  77. package/esm2022/lib/web-services/app.service.mjs +48 -0
  78. package/esm2022/lib/web-services/audit.service.mjs +122 -0
  79. package/esm2022/lib/web-services/index.mjs +10 -0
  80. package/esm2022/lib/web-services/json-method-plugin.service.mjs +54 -0
  81. package/esm2022/lib/web-services/preview.service.mjs +327 -0
  82. package/esm2022/lib/web-services/principal.service.mjs +46 -0
  83. package/esm2022/lib/web-services/query.service.mjs +123 -0
  84. package/esm2022/lib/web-services/text-chunck.service.mjs +46 -0
  85. package/esm2022/public-api.mjs +5 -0
  86. package/esm2022/sinequa-atomic-angular.mjs +5 -0
  87. package/fesm2022/sinequa-atomic-angular.mjs +4420 -0
  88. package/fesm2022/sinequa-atomic-angular.mjs.map +1 -0
  89. package/index.d.ts +5 -0
  90. package/lib/assistant/index.d.ts +1 -0
  91. package/lib/assistant/signalR.web.service.d.ts +46 -0
  92. package/lib/components/dropdown-input.d.ts +18 -0
  93. package/lib/components/dropdown-list.d.ts +8 -0
  94. package/lib/components/dropdown.d.ts +50 -0
  95. package/lib/components/index.d.ts +6 -0
  96. package/lib/components/menu/index.d.ts +2 -0
  97. package/lib/components/menu/menu-item.d.ts +8 -0
  98. package/lib/components/menu/menu.d.ts +24 -0
  99. package/lib/components/metadata/index.d.ts +1 -0
  100. package/lib/components/metadata/metadata.component.d.ts +24 -0
  101. package/lib/components/theme/index.d.ts +2 -0
  102. package/lib/components/theme/theme-selector.component.d.ts +70 -0
  103. package/lib/components/theme/theme-toggle.component.d.ts +10 -0
  104. package/lib/directives/index.d.ts +4 -0
  105. package/lib/directives/infinite-scroll.directive.d.ts +30 -0
  106. package/lib/directives/select-article-on-click.directive.d.ts +14 -0
  107. package/lib/directives/show-bookmark.directive.d.ts +60 -0
  108. package/lib/directives/theme-provider.directive.d.ts +20 -0
  109. package/lib/guards/auth.guard.d.ts +7 -0
  110. package/lib/guards/index.d.ts +2 -0
  111. package/lib/guards/initialization.guard.d.ts +20 -0
  112. package/lib/interceptors/audit.interceptor.d.ts +13 -0
  113. package/lib/interceptors/auth.interceptor.d.ts +14 -0
  114. package/lib/interceptors/body.interceptor.d.ts +11 -0
  115. package/lib/interceptors/error.interceptor.d.ts +9 -0
  116. package/lib/interceptors/index.d.ts +5 -0
  117. package/lib/interceptors/toast.interceptor.d.ts +13 -0
  118. package/lib/models/aggregation.d.ts +12 -0
  119. package/lib/models/article-metadata.d.ts +5 -0
  120. package/lib/models/autocomplete.d.ts +5 -0
  121. package/lib/models/custom-json.d.ts +69 -0
  122. package/lib/models/filter-dropdown.d.ts +10 -0
  123. package/lib/models/index.d.ts +6 -0
  124. package/lib/models/user-settings.d.ts +38 -0
  125. package/lib/pipes/highlight-word.pipe.d.ts +22 -0
  126. package/lib/pipes/index.d.ts +2 -0
  127. package/lib/pipes/source-icon.pipe.d.ts +51 -0
  128. package/lib/public-api.d.ts +14 -0
  129. package/lib/resolvers/index.d.ts +1 -0
  130. package/lib/resolvers/query-name-resolver.d.ts +9 -0
  131. package/lib/resources/index.d.ts +1 -0
  132. package/lib/resources/themes.d.ts +51 -0
  133. package/lib/services/application.service.d.ts +183 -0
  134. package/lib/services/autocomplete.service.d.ts +96 -0
  135. package/lib/services/drawer/backdrop.service.d.ts +9 -0
  136. package/lib/services/drawer/drawer-stack.service.d.ts +70 -0
  137. package/lib/services/drawer/drawer.service.d.ts +15 -0
  138. package/lib/services/index.d.ts +11 -0
  139. package/lib/services/label.service.d.ts +114 -0
  140. package/lib/services/navigation.service.d.ts +33 -0
  141. package/lib/services/saved-searches.service.d.ts +149 -0
  142. package/lib/services/search.service.d.ts +159 -0
  143. package/lib/services/selection-history.service.d.ts +50 -0
  144. package/lib/services/selection.service.d.ts +123 -0
  145. package/lib/stores/aggregations.store.d.ts +25 -0
  146. package/lib/stores/app.store.d.ts +110 -0
  147. package/lib/stores/application.store.d.ts +83 -0
  148. package/lib/stores/index.d.ts +8 -0
  149. package/lib/stores/principal.store.d.ts +47 -0
  150. package/lib/stores/query-params.store.d.ts +128 -0
  151. package/lib/stores/selection.store.d.ts +52 -0
  152. package/lib/stores/theme.store.d.ts +66 -0
  153. package/lib/stores/user-settings.store.d.ts +111 -0
  154. package/lib/tokens/highlights.d.ts +8 -0
  155. package/lib/tokens/index.d.ts +1 -0
  156. package/lib/utils/debounced-signal.d.ts +25 -0
  157. package/lib/utils/index.d.ts +7 -0
  158. package/lib/utils/inline-worker.d.ts +11 -0
  159. package/lib/utils/query.d.ts +26 -0
  160. package/lib/utils/routes.d.ts +16 -0
  161. package/lib/utils/tailwind-utils.d.ts +2 -0
  162. package/lib/utils/theme-body-hook.d.ts +6 -0
  163. package/lib/utils/theme-registry.d.ts +3 -0
  164. package/lib/web-services/aggregations.service.d.ts +57 -0
  165. package/lib/web-services/app.service.d.ts +30 -0
  166. package/lib/web-services/audit.service.d.ts +72 -0
  167. package/lib/web-services/index.d.ts +9 -0
  168. package/lib/web-services/json-method-plugin.service.d.ts +41 -0
  169. package/lib/web-services/preview.service.d.ts +283 -0
  170. package/lib/web-services/principal.service.d.ts +28 -0
  171. package/lib/web-services/query.service.d.ts +29 -0
  172. package/lib/web-services/text-chunck.service.d.ts +22 -0
  173. package/package.json +28 -0
  174. package/public-api.d.ts +1 -0
@@ -0,0 +1,334 @@
1
+ *, ::before, ::after {
2
+ --tw-border-spacing-x: 0;
3
+ --tw-border-spacing-y: 0;
4
+ --tw-translate-x: 0;
5
+ --tw-translate-y: 0;
6
+ --tw-rotate: 0;
7
+ --tw-skew-x: 0;
8
+ --tw-skew-y: 0;
9
+ --tw-scale-x: 1;
10
+ --tw-scale-y: 1;
11
+ --tw-pan-x: ;
12
+ --tw-pan-y: ;
13
+ --tw-pinch-zoom: ;
14
+ --tw-scroll-snap-strictness: proximity;
15
+ --tw-gradient-from-position: ;
16
+ --tw-gradient-via-position: ;
17
+ --tw-gradient-to-position: ;
18
+ --tw-ordinal: ;
19
+ --tw-slashed-zero: ;
20
+ --tw-numeric-figure: ;
21
+ --tw-numeric-spacing: ;
22
+ --tw-numeric-fraction: ;
23
+ --tw-ring-inset: ;
24
+ --tw-ring-offset-width: 0px;
25
+ --tw-ring-offset-color: #fff;
26
+ --tw-ring-color: rgb(59 130 246 / 0.5);
27
+ --tw-ring-offset-shadow: 0 0 #0000;
28
+ --tw-ring-shadow: 0 0 #0000;
29
+ --tw-shadow: 0 0 #0000;
30
+ --tw-shadow-colored: 0 0 #0000;
31
+ --tw-blur: ;
32
+ --tw-brightness: ;
33
+ --tw-contrast: ;
34
+ --tw-grayscale: ;
35
+ --tw-hue-rotate: ;
36
+ --tw-invert: ;
37
+ --tw-saturate: ;
38
+ --tw-sepia: ;
39
+ --tw-drop-shadow: ;
40
+ --tw-backdrop-blur: ;
41
+ --tw-backdrop-brightness: ;
42
+ --tw-backdrop-contrast: ;
43
+ --tw-backdrop-grayscale: ;
44
+ --tw-backdrop-hue-rotate: ;
45
+ --tw-backdrop-invert: ;
46
+ --tw-backdrop-opacity: ;
47
+ --tw-backdrop-saturate: ;
48
+ --tw-backdrop-sepia: ;
49
+ --tw-contain-size: ;
50
+ --tw-contain-layout: ;
51
+ --tw-contain-paint: ;
52
+ --tw-contain-style:
53
+ }
54
+
55
+ ::backdrop {
56
+ --tw-border-spacing-x: 0;
57
+ --tw-border-spacing-y: 0;
58
+ --tw-translate-x: 0;
59
+ --tw-translate-y: 0;
60
+ --tw-rotate: 0;
61
+ --tw-skew-x: 0;
62
+ --tw-skew-y: 0;
63
+ --tw-scale-x: 1;
64
+ --tw-scale-y: 1;
65
+ --tw-pan-x: ;
66
+ --tw-pan-y: ;
67
+ --tw-pinch-zoom: ;
68
+ --tw-scroll-snap-strictness: proximity;
69
+ --tw-gradient-from-position: ;
70
+ --tw-gradient-via-position: ;
71
+ --tw-gradient-to-position: ;
72
+ --tw-ordinal: ;
73
+ --tw-slashed-zero: ;
74
+ --tw-numeric-figure: ;
75
+ --tw-numeric-spacing: ;
76
+ --tw-numeric-fraction: ;
77
+ --tw-ring-inset: ;
78
+ --tw-ring-offset-width: 0px;
79
+ --tw-ring-offset-color: #fff;
80
+ --tw-ring-color: rgb(59 130 246 / 0.5);
81
+ --tw-ring-offset-shadow: 0 0 #0000;
82
+ --tw-ring-shadow: 0 0 #0000;
83
+ --tw-shadow: 0 0 #0000;
84
+ --tw-shadow-colored: 0 0 #0000;
85
+ --tw-blur: ;
86
+ --tw-brightness: ;
87
+ --tw-contrast: ;
88
+ --tw-grayscale: ;
89
+ --tw-hue-rotate: ;
90
+ --tw-invert: ;
91
+ --tw-saturate: ;
92
+ --tw-sepia: ;
93
+ --tw-drop-shadow: ;
94
+ --tw-backdrop-blur: ;
95
+ --tw-backdrop-brightness: ;
96
+ --tw-backdrop-contrast: ;
97
+ --tw-backdrop-grayscale: ;
98
+ --tw-backdrop-hue-rotate: ;
99
+ --tw-backdrop-invert: ;
100
+ --tw-backdrop-opacity: ;
101
+ --tw-backdrop-saturate: ;
102
+ --tw-backdrop-sepia: ;
103
+ --tw-contain-size: ;
104
+ --tw-contain-layout: ;
105
+ --tw-contain-paint: ;
106
+ --tw-contain-style:
107
+ }
108
+
109
+ .absolute {
110
+ position: absolute
111
+ }
112
+
113
+ .relative {
114
+ position: relative
115
+ }
116
+
117
+ .z-10 {
118
+ z-index: 10
119
+ }
120
+
121
+ .float-left {
122
+ float: left
123
+ }
124
+
125
+ .m-1 {
126
+ margin: 0.25rem
127
+ }
128
+
129
+ .my-2 {
130
+ margin-top: 0.5rem;
131
+ margin-bottom: 0.5rem
132
+ }
133
+
134
+ .mb-4 {
135
+ margin-bottom: 1rem
136
+ }
137
+
138
+ .ms-1 {
139
+ margin-inline-start: 0.25rem
140
+ }
141
+
142
+ .mt-\[-1\.5rem\] {
143
+ margin-top: -1.5rem
144
+ }
145
+
146
+ .block {
147
+ display: block
148
+ }
149
+
150
+ .flex {
151
+ display: flex
152
+ }
153
+
154
+ .hidden {
155
+ display: none
156
+ }
157
+
158
+ .size-3 {
159
+ width: 0.75rem;
160
+ height: 0.75rem
161
+ }
162
+
163
+ .max-h-44 {
164
+ max-height: 11rem
165
+ }
166
+
167
+ .w-1\/2 {
168
+ width: 50%
169
+ }
170
+
171
+ .w-full {
172
+ width: 100%
173
+ }
174
+
175
+ .w-max {
176
+ width: -moz-max-content;
177
+ width: max-content
178
+ }
179
+
180
+ .min-w-fit {
181
+ min-width: -moz-fit-content;
182
+ min-width: fit-content
183
+ }
184
+
185
+ .flex-grow {
186
+ flex-grow: 1
187
+ }
188
+
189
+ .grow {
190
+ flex-grow: 1
191
+ }
192
+
193
+ .cursor-default {
194
+ cursor: default
195
+ }
196
+
197
+ .cursor-pointer {
198
+ cursor: pointer
199
+ }
200
+
201
+ .select-none {
202
+ -webkit-user-select: none;
203
+ -moz-user-select: none;
204
+ user-select: none
205
+ }
206
+
207
+ .flex-col {
208
+ flex-direction: column
209
+ }
210
+
211
+ .place-content-center {
212
+ place-content: center
213
+ }
214
+
215
+ .items-center {
216
+ align-items: center
217
+ }
218
+
219
+ .items-baseline {
220
+ align-items: baseline
221
+ }
222
+
223
+ .justify-start {
224
+ justify-content: flex-start
225
+ }
226
+
227
+ .gap-1 {
228
+ gap: 0.25rem
229
+ }
230
+
231
+ .gap-2 {
232
+ gap: 0.5rem
233
+ }
234
+
235
+ .divide-y > :not([hidden]) ~ :not([hidden]) {
236
+ --tw-divide-y-reverse: 0;
237
+ border-top-width: calc(1px * calc(1 - var(--tw-divide-y-reverse)));
238
+ border-bottom-width: calc(1px * var(--tw-divide-y-reverse))
239
+ }
240
+
241
+ .overflow-auto {
242
+ overflow: auto
243
+ }
244
+
245
+ .text-ellipsis {
246
+ text-overflow: ellipsis
247
+ }
248
+
249
+ .rounded {
250
+ border-radius: 0.25rem
251
+ }
252
+
253
+ .rounded-full {
254
+ border-radius: 9999px
255
+ }
256
+
257
+ .rounded-md {
258
+ border-radius: 0.375rem
259
+ }
260
+
261
+ .border {
262
+ border-width: 1px
263
+ }
264
+
265
+ .border-gray-300 {
266
+ --tw-border-opacity: 1;
267
+ border-color: rgb(209 213 219 / var(--tw-border-opacity))
268
+ }
269
+
270
+ .border-neutral-200 {
271
+ --tw-border-opacity: 1;
272
+ border-color: rgb(229 229 229 / var(--tw-border-opacity))
273
+ }
274
+
275
+ .bg-white {
276
+ --tw-bg-opacity: 1;
277
+ background-color: rgb(255 255 255 / var(--tw-bg-opacity))
278
+ }
279
+
280
+ .p-2 {
281
+ padding: 0.5rem
282
+ }
283
+
284
+ .px-4 {
285
+ padding-left: 1rem;
286
+ padding-right: 1rem
287
+ }
288
+
289
+ .py-2 {
290
+ padding-top: 0.5rem;
291
+ padding-bottom: 0.5rem
292
+ }
293
+
294
+ .text-sm {
295
+ font-size: 0.875rem;
296
+ line-height: 1.25rem
297
+ }
298
+
299
+ .font-semibold {
300
+ font-weight: 600
301
+ }
302
+
303
+ .text-white {
304
+ --tw-text-opacity: 1;
305
+ color: rgb(255 255 255 / var(--tw-text-opacity))
306
+ }
307
+
308
+ .opacity-50 {
309
+ opacity: 0.5
310
+ }
311
+
312
+ .shadow {
313
+ --tw-shadow: 0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1);
314
+ --tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);
315
+ box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow)
316
+ }
317
+
318
+ .filter {
319
+ filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)
320
+ }
321
+
322
+ .hover\:bg-transparent:hover {
323
+ background-color: transparent
324
+ }
325
+
326
+ .focus\:outline-none:focus {
327
+ outline: 2px solid transparent;
328
+ outline-offset: 2px
329
+ }
330
+
331
+ .group:hover .group-hover\:bg-white {
332
+ --tw-bg-opacity: 1;
333
+ background-color: rgb(255 255 255 / var(--tw-bg-opacity))
334
+ }
@@ -0,0 +1,2 @@
1
+ export * from './signalR.web.service';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hdG9taWMtYW5ndWxhci9zcmMvbGliL2Fzc2lzdGFudC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLHVCQUF1QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9zaWduYWxSLndlYi5zZXJ2aWNlJztcbiJdfQ==
@@ -0,0 +1,81 @@
1
+ import { Injectable, InjectionToken } from "@angular/core";
2
+ import { HubConnectionBuilder, LogLevel } from '@microsoft/signalr';
3
+ import { globalConfig } from "@sinequa/atomic";
4
+ import * as i0 from "@angular/core";
5
+ /** A token that is used to inject the transports allowed to use by hub connection.
6
+ *
7
+ * Expects a {@link HttpTransportType} value.
8
+ */
9
+ export const SIGNAL_R_TRANSPORTS = new InjectionToken('SIGNAL_R_TRANSPORTS');
10
+ /** A token that is used to inject the log level for the hub connection.
11
+ *
12
+ * Expects a {@link LogLevel} value.
13
+ */
14
+ export const SIGNAL_R_LOG_LEVEL = new InjectionToken('SIGNAL_R_LOG_LEVEL');
15
+ /**
16
+ * A service to connect the Sinequa server to the client via SignalR
17
+ */
18
+ export class SignalRWebService {
19
+ constructor() {
20
+ this.endpoints = `${globalConfig.backendUrl}/endpoints/v1`;
21
+ }
22
+ /**
23
+ * Builds a SignalR connection to the given endpoint
24
+ * @param endpointName Name of the endpoint to connect to
25
+ * @param options Options for the connection. It must overrides the default options
26
+ * @param logLevel The log level for the connection
27
+ * @param automaticReconnect Whether the connection should automatically attempt to reconnect
28
+ * @returns A SignalR connection
29
+ */
30
+ buildConnection(endpointName, options, logLevel = LogLevel.Information, automaticReconnect = false) {
31
+ const url = `${this.endpoints}/${endpointName}`;
32
+ const connectionBuilder = new HubConnectionBuilder()
33
+ .withUrl(url, options)
34
+ .configureLogging(logLevel);
35
+ if (automaticReconnect) {
36
+ connectionBuilder.withAutomaticReconnect();
37
+ }
38
+ return connectionBuilder.build();
39
+ }
40
+ /**
41
+ * Starts a SignalR connection.
42
+ * @param connection A SignalR connection
43
+ */
44
+ async startConnection(connection) {
45
+ if (!connection) {
46
+ throw new Error("Please provide a valid connection to start");
47
+ }
48
+ try {
49
+ await connection.start();
50
+ console.log(`The SignalR connection has been successfully established! \n url: ${connection.baseUrl} \n connectionId: ${connection.connectionId}`);
51
+ }
52
+ catch (error) {
53
+ throw error;
54
+ }
55
+ }
56
+ /**
57
+ * Stops a SignalR connection.
58
+ * @param connection A SignalR connection
59
+ */
60
+ async stopConnection(connection) {
61
+ if (!connection) {
62
+ throw new Error("Please provide a valid connection to stop");
63
+ }
64
+ try {
65
+ await connection.stop();
66
+ console.log(`The SignalR connection has been successfully stopped! \n url: ${connection.baseUrl} \n connectionId: ${connection.connectionId}`);
67
+ }
68
+ catch (error) {
69
+ throw error;
70
+ }
71
+ }
72
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: SignalRWebService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
73
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: SignalRWebService, providedIn: "root" }); }
74
+ }
75
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: SignalRWebService, decorators: [{
76
+ type: Injectable,
77
+ args: [{
78
+ providedIn: "root"
79
+ }]
80
+ }] });
81
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lnbmFsUi53ZWIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2F0b21pYy1hbmd1bGFyL3NyYy9saWIvYXNzaXN0YW50L3NpZ25hbFIud2ViLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxjQUFjLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0QsT0FBTyxFQUFFLG9CQUFvQixFQUFFLFFBQVEsRUFBZ0UsTUFBTSxvQkFBb0IsQ0FBQztBQUNsSSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7O0FBUy9DOzs7RUFHRTtBQUNGLE1BQU0sQ0FBQyxNQUFNLG1CQUFtQixHQUFHLElBQUksY0FBYyxDQUFvQixxQkFBcUIsQ0FBQyxDQUFDO0FBRWhHOzs7RUFHRTtBQUNGLE1BQU0sQ0FBQyxNQUFNLGtCQUFrQixHQUFHLElBQUksY0FBYyxDQUFXLG9CQUFvQixDQUFDLENBQUM7QUFFckY7O0dBRUc7QUFJSCxNQUFNLE9BQU8saUJBQWlCO0lBSDlCO1FBSXFCLGNBQVMsR0FBRyxHQUFHLFlBQVksQ0FBQyxVQUFVLGVBQWUsQ0FBQztLQXdEMUU7SUFyREM7Ozs7Ozs7T0FPRztJQUNILGVBQWUsQ0FBQyxZQUFvQixFQUFFLE9BQTBCLEVBQUUsUUFBUSxHQUFHLFFBQVEsQ0FBQyxXQUFXLEVBQUUsa0JBQWtCLEdBQUcsS0FBSztRQUMzSCxNQUFNLEdBQUcsR0FBRyxHQUFHLElBQUksQ0FBQyxTQUFTLElBQUksWUFBWSxFQUFFLENBQUM7UUFFaEQsTUFBTSxpQkFBaUIsR0FBRyxJQUFJLG9CQUFvQixFQUFFO2FBQ2pELE9BQU8sQ0FBQyxHQUFHLEVBQUUsT0FBTyxDQUFDO2FBQ3JCLGdCQUFnQixDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBRTlCLElBQUksa0JBQWtCLEVBQUUsQ0FBQztZQUN2QixpQkFBaUIsQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO1FBQzdDLENBQUM7UUFFRCxPQUFPLGlCQUFpQixDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ25DLENBQUM7SUFFRDs7O09BR0c7SUFDSCxLQUFLLENBQUMsZUFBZSxDQUFDLFVBQXFDO1FBQ3pELElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUNoQixNQUFNLElBQUksS0FBSyxDQUFDLDRDQUE0QyxDQUFDLENBQUM7UUFDaEUsQ0FBQztRQUNELElBQUksQ0FBQztZQUNILE1BQU0sVUFBVSxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ3pCLE9BQU8sQ0FBQyxHQUFHLENBQUMscUVBQXFFLFVBQVUsQ0FBQyxPQUFPLHFCQUFxQixVQUFVLENBQUMsWUFBWSxFQUFFLENBQUMsQ0FBQztRQUNySixDQUFDO1FBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztZQUNmLE1BQU0sS0FBSyxDQUFDO1FBQ2QsQ0FBQztJQUNILENBQUM7SUFFRDs7O09BR0c7SUFDSCxLQUFLLENBQUMsY0FBYyxDQUFDLFVBQXFDO1FBQ3hELElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUNoQixNQUFNLElBQUksS0FBSyxDQUFDLDJDQUEyQyxDQUFDLENBQUM7UUFDL0QsQ0FBQztRQUNELElBQUksQ0FBQztZQUNILE1BQU0sVUFBVSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ3hCLE9BQU8sQ0FBQyxHQUFHLENBQUMsaUVBQWlFLFVBQVUsQ0FBQyxPQUFPLHFCQUFxQixVQUFVLENBQUMsWUFBWSxFQUFFLENBQUMsQ0FBQztRQUNqSixDQUFDO1FBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztZQUNmLE1BQU0sS0FBSyxDQUFDO1FBQ2QsQ0FBQztJQUNILENBQUM7OEdBeERVLGlCQUFpQjtrSEFBakIsaUJBQWlCLGNBRmhCLE1BQU07OzJGQUVQLGlCQUFpQjtrQkFIN0IsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBJbmplY3Rpb25Ub2tlbiB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBIdWJDb25uZWN0aW9uQnVpbGRlciwgTG9nTGV2ZWwsIEh1YkNvbm5lY3Rpb24sIE1lc3NhZ2VIZWFkZXJzLCBIdHRwVHJhbnNwb3J0VHlwZSwgSVRyYW5zcG9ydCB9IGZyb20gJ0BtaWNyb3NvZnQvc2lnbmFscic7XG5pbXBvcnQgeyBnbG9iYWxDb25maWcgfSBmcm9tIFwiQHNpbmVxdWEvYXRvbWljXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29ubmVjdGlvbk9wdGlvbnMge1xuICB3aXRoQ3JlZGVudGlhbHM/OiBib29sZWFuOyAvLyBpZiB0cnVlLCB0aGUgYnJvd3NlciBhdXRvbWF0aWNhbGx5IGluY2x1ZGVzIHRoZSBhdXRoZW50aWNhdGlvbiBjb29raWUgaW4gdGhlIHJlcXVlc3QgaGVhZGVycyB3aGVuIGVzdGFibGlzaGluZyB0aGUgU2lnbmFsUiBjb25uZWN0aW9uXG4gIGhlYWRlcnM/OiBNZXNzYWdlSGVhZGVycztcbiAgdHJhbnNwb3J0PzogSHR0cFRyYW5zcG9ydFR5cGUgfCBJVHJhbnNwb3J0OyAvLyBJZiB0cmFuc3BvcnRzIGFyZSBwcm92aWRlZCwgdXNlIHRoZW07IG90aGVyd2lzZSwgbGV0IFNpZ25hbFIgbmVnb3RpYXRlXG4gIGFjY2Vzc1Rva2VuRmFjdG9yeT86ICgpID0+IHN0cmluZyB8IFByb21pc2U8c3RyaW5nPjtcbn1cblxuLyoqIEEgdG9rZW4gdGhhdCBpcyB1c2VkIHRvIGluamVjdCB0aGUgdHJhbnNwb3J0cyBhbGxvd2VkIHRvIHVzZSBieSBodWIgY29ubmVjdGlvbi5cbiAqXG4gKiBFeHBlY3RzIGEge0BsaW5rIEh0dHBUcmFuc3BvcnRUeXBlfSB2YWx1ZS5cbiovXG5leHBvcnQgY29uc3QgU0lHTkFMX1JfVFJBTlNQT1JUUyA9IG5ldyBJbmplY3Rpb25Ub2tlbjxIdHRwVHJhbnNwb3J0VHlwZT4oJ1NJR05BTF9SX1RSQU5TUE9SVFMnKTtcblxuLyoqIEEgdG9rZW4gdGhhdCBpcyB1c2VkIHRvIGluamVjdCB0aGUgbG9nIGxldmVsIGZvciB0aGUgaHViIGNvbm5lY3Rpb24uXG4gKlxuICogRXhwZWN0cyBhIHtAbGluayBMb2dMZXZlbH0gdmFsdWUuXG4qL1xuZXhwb3J0IGNvbnN0IFNJR05BTF9SX0xPR19MRVZFTCA9IG5ldyBJbmplY3Rpb25Ub2tlbjxMb2dMZXZlbD4oJ1NJR05BTF9SX0xPR19MRVZFTCcpO1xuXG4vKipcbiAqIEEgc2VydmljZSB0byBjb25uZWN0IHRoZSBTaW5lcXVhIHNlcnZlciB0byB0aGUgY2xpZW50IHZpYSBTaWduYWxSXG4gKi9cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogXCJyb290XCJcbn0pXG5leHBvcnQgY2xhc3MgU2lnbmFsUldlYlNlcnZpY2Uge1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgZW5kcG9pbnRzID0gYCR7Z2xvYmFsQ29uZmlnLmJhY2tlbmRVcmx9L2VuZHBvaW50cy92MWA7XG5cblxuICAvKipcbiAgICogQnVpbGRzIGEgU2lnbmFsUiBjb25uZWN0aW9uIHRvIHRoZSBnaXZlbiBlbmRwb2ludFxuICAgKiBAcGFyYW0gZW5kcG9pbnROYW1lIE5hbWUgb2YgdGhlIGVuZHBvaW50IHRvIGNvbm5lY3QgdG9cbiAgICogQHBhcmFtIG9wdGlvbnMgIE9wdGlvbnMgZm9yIHRoZSBjb25uZWN0aW9uLiBJdCBtdXN0IG92ZXJyaWRlcyB0aGUgZGVmYXVsdCBvcHRpb25zXG4gICAqIEBwYXJhbSBsb2dMZXZlbCAgVGhlIGxvZyBsZXZlbCBmb3IgdGhlIGNvbm5lY3Rpb25cbiAgICogQHBhcmFtIGF1dG9tYXRpY1JlY29ubmVjdCAgV2hldGhlciB0aGUgY29ubmVjdGlvbiBzaG91bGQgYXV0b21hdGljYWxseSBhdHRlbXB0IHRvIHJlY29ubmVjdFxuICAgKiBAcmV0dXJucyAgQSBTaWduYWxSIGNvbm5lY3Rpb25cbiAgICovXG4gIGJ1aWxkQ29ubmVjdGlvbihlbmRwb2ludE5hbWU6IHN0cmluZywgb3B0aW9uczogQ29ubmVjdGlvbk9wdGlvbnMsIGxvZ0xldmVsID0gTG9nTGV2ZWwuSW5mb3JtYXRpb24sIGF1dG9tYXRpY1JlY29ubmVjdCA9IGZhbHNlKTogSHViQ29ubmVjdGlvbiB7XG4gICAgY29uc3QgdXJsID0gYCR7dGhpcy5lbmRwb2ludHN9LyR7ZW5kcG9pbnROYW1lfWA7XG5cbiAgICBjb25zdCBjb25uZWN0aW9uQnVpbGRlciA9IG5ldyBIdWJDb25uZWN0aW9uQnVpbGRlcigpXG4gICAgICAud2l0aFVybCh1cmwsIG9wdGlvbnMpXG4gICAgICAuY29uZmlndXJlTG9nZ2luZyhsb2dMZXZlbCk7XG5cbiAgICBpZiAoYXV0b21hdGljUmVjb25uZWN0KSB7XG4gICAgICBjb25uZWN0aW9uQnVpbGRlci53aXRoQXV0b21hdGljUmVjb25uZWN0KCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGNvbm5lY3Rpb25CdWlsZGVyLmJ1aWxkKCk7XG4gIH1cblxuICAvKipcbiAgICogU3RhcnRzIGEgU2lnbmFsUiBjb25uZWN0aW9uLlxuICAgKiBAcGFyYW0gY29ubmVjdGlvbiAgQSBTaWduYWxSIGNvbm5lY3Rpb25cbiAgICovXG4gIGFzeW5jIHN0YXJ0Q29ubmVjdGlvbihjb25uZWN0aW9uOiBIdWJDb25uZWN0aW9uIHwgdW5kZWZpbmVkKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgaWYgKCFjb25uZWN0aW9uKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJQbGVhc2UgcHJvdmlkZSBhIHZhbGlkIGNvbm5lY3Rpb24gdG8gc3RhcnRcIik7XG4gICAgfVxuICAgIHRyeSB7XG4gICAgICBhd2FpdCBjb25uZWN0aW9uLnN0YXJ0KCk7XG4gICAgICBjb25zb2xlLmxvZyhgVGhlIFNpZ25hbFIgY29ubmVjdGlvbiBoYXMgYmVlbiBzdWNjZXNzZnVsbHkgZXN0YWJsaXNoZWQhIFxcbiB1cmw6ICR7Y29ubmVjdGlvbi5iYXNlVXJsfSBcXG4gY29ubmVjdGlvbklkOiAke2Nvbm5lY3Rpb24uY29ubmVjdGlvbklkfWApO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICB0aHJvdyBlcnJvcjtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogU3RvcHMgYSBTaWduYWxSIGNvbm5lY3Rpb24uXG4gICAqIEBwYXJhbSBjb25uZWN0aW9uIEEgU2lnbmFsUiBjb25uZWN0aW9uXG4gICAqL1xuICBhc3luYyBzdG9wQ29ubmVjdGlvbihjb25uZWN0aW9uOiBIdWJDb25uZWN0aW9uIHwgdW5kZWZpbmVkKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgaWYgKCFjb25uZWN0aW9uKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJQbGVhc2UgcHJvdmlkZSBhIHZhbGlkIGNvbm5lY3Rpb24gdG8gc3RvcFwiKTtcbiAgICB9XG4gICAgdHJ5IHtcbiAgICAgIGF3YWl0IGNvbm5lY3Rpb24uc3RvcCgpO1xuICAgICAgY29uc29sZS5sb2coYFRoZSBTaWduYWxSIGNvbm5lY3Rpb24gaGFzIGJlZW4gc3VjY2Vzc2Z1bGx5IHN0b3BwZWQhIFxcbiB1cmw6ICR7Y29ubmVjdGlvbi5iYXNlVXJsfSBcXG4gY29ubmVjdGlvbklkOiAke2Nvbm5lY3Rpb24uY29ubmVjdGlvbklkfWApO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICB0aHJvdyBlcnJvcjtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,97 @@
1
+ import { Component, input, output } from '@angular/core';
2
+ import { DropdownComponent } from './dropdown';
3
+ import { DropdownListComponent } from './dropdown-list';
4
+ import * as i0 from "@angular/core";
5
+ export class DropdownInputComponent {
6
+ constructor() {
7
+ this.label = input();
8
+ this.placeholder = input('Start typing to search...');
9
+ this.noResultLabel = input('No results to be displayed...');
10
+ this.suggestions = input([]);
11
+ this.selected = input.required();
12
+ this.onFocus = output(); // emits the input value
13
+ this.onKeyUp = output(); // emits the input value
14
+ this.removeItem = output();
15
+ this.addItem = output();
16
+ }
17
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: DropdownInputComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
18
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.5", type: DropdownInputComponent, isStandalone: true, selector: "sq-dropdown-input, DropdownInput", inputs: { label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: true, isRequired: false, transformFunction: null }, noResultLabel: { classPropertyName: "noResultLabel", publicName: "noResultLabel", isSignal: true, isRequired: false, transformFunction: null }, suggestions: { classPropertyName: "suggestions", publicName: "suggestions", isSignal: true, isRequired: false, transformFunction: null }, selected: { classPropertyName: "selected", publicName: "selected", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { onFocus: "onFocus", onKeyUp: "onKeyUp", removeItem: "removeItem", addItem: "addItem" }, ngImport: i0, template: `
19
+ @if (label()) {
20
+ <p class="font-semibold">{{ label() }}</p>
21
+ }
22
+ <Dropdown class="w-full block">
23
+ <input
24
+ #searchInput
25
+ class="w-1/2 grow focus:outline-none rounded border border-neutral-200 group-hover:bg-white p-2"
26
+ type="text"
27
+ autocomplete="off"
28
+ spellcheck="false"
29
+ [attr.aria-label]="placeholder()"
30
+ [attr.placeholder]="placeholder()"
31
+ (focus)="onFocus.emit(searchInput.value)"
32
+ (keyup)="onKeyUp.emit(searchInput.value)"
33
+ />
34
+
35
+ <DropdownList class="mb-4" [items]="selected()" (onClick)="removeItem.emit($event)" />
36
+
37
+ <div dropdown-content class="dropdown-content w-max mt-[-1.5rem]">
38
+ @if (!suggestions().length) {
39
+ {{ noResultLabel() }}
40
+ } @else {
41
+ <ul class="data-list-xs flex-grow overflow-auto max-h-44 my-2">
42
+ @for (suggestion of suggestions(); track $index) {
43
+ <li class="p-2 flex data-list-item items-baseline gap-2 cursor-pointer"
44
+ (click)="addItem.emit(suggestion)">
45
+ {{ suggestion.display || suggestion.value }}
46
+ </li>
47
+ }
48
+ </ul>
49
+ }
50
+ </div>
51
+ </Dropdown>
52
+ `, isInline: true, dependencies: [{ kind: "component", type: DropdownComponent, selector: "sq-dropdown, Dropdown", inputs: ["position", "autoClose", "disabled"] }, { kind: "component", type: DropdownListComponent, selector: "sq-dropdown-list, DropdownList", inputs: ["items"], outputs: ["onClick"] }] }); }
53
+ }
54
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: DropdownInputComponent, decorators: [{
55
+ type: Component,
56
+ args: [{
57
+ selector: 'sq-dropdown-input, DropdownInput',
58
+ standalone: true,
59
+ imports: [DropdownComponent, DropdownListComponent],
60
+ template: `
61
+ @if (label()) {
62
+ <p class="font-semibold">{{ label() }}</p>
63
+ }
64
+ <Dropdown class="w-full block">
65
+ <input
66
+ #searchInput
67
+ class="w-1/2 grow focus:outline-none rounded border border-neutral-200 group-hover:bg-white p-2"
68
+ type="text"
69
+ autocomplete="off"
70
+ spellcheck="false"
71
+ [attr.aria-label]="placeholder()"
72
+ [attr.placeholder]="placeholder()"
73
+ (focus)="onFocus.emit(searchInput.value)"
74
+ (keyup)="onKeyUp.emit(searchInput.value)"
75
+ />
76
+
77
+ <DropdownList class="mb-4" [items]="selected()" (onClick)="removeItem.emit($event)" />
78
+
79
+ <div dropdown-content class="dropdown-content w-max mt-[-1.5rem]">
80
+ @if (!suggestions().length) {
81
+ {{ noResultLabel() }}
82
+ } @else {
83
+ <ul class="data-list-xs flex-grow overflow-auto max-h-44 my-2">
84
+ @for (suggestion of suggestions(); track $index) {
85
+ <li class="p-2 flex data-list-item items-baseline gap-2 cursor-pointer"
86
+ (click)="addItem.emit(suggestion)">
87
+ {{ suggestion.display || suggestion.value }}
88
+ </li>
89
+ }
90
+ </ul>
91
+ }
92
+ </div>
93
+ </Dropdown>
94
+ `
95
+ }]
96
+ }] });
97
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcGRvd24taW5wdXQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hdG9taWMtYW5ndWxhci9zcmMvbGliL2NvbXBvbmVudHMvZHJvcGRvd24taW5wdXQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUMvQyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7QUErQ3hELE1BQU0sT0FBTyxzQkFBc0I7SUF4Q25DO1FBeUNFLFVBQUssR0FBRyxLQUFLLEVBQVUsQ0FBQztRQUN4QixnQkFBVyxHQUFHLEtBQUssQ0FBUywyQkFBMkIsQ0FBQyxDQUFDO1FBQ3pELGtCQUFhLEdBQUcsS0FBSyxDQUFTLCtCQUErQixDQUFDLENBQUM7UUFDL0QsZ0JBQVcsR0FBRyxLQUFLLENBQWlCLEVBQUUsQ0FBQyxDQUFDO1FBQ3hDLGFBQVEsR0FBRyxLQUFLLENBQUMsUUFBUSxFQUFrQixDQUFDO1FBRTVDLFlBQU8sR0FBRyxNQUFNLEVBQWlCLENBQUMsQ0FBQyx3QkFBd0I7UUFDM0QsWUFBTyxHQUFHLE1BQU0sRUFBaUIsQ0FBQyxDQUFDLHdCQUF3QjtRQUMzRCxlQUFVLEdBQUcsTUFBTSxFQUFnQixDQUFDO1FBQ3BDLFlBQU8sR0FBRyxNQUFNLEVBQWdCLENBQUM7S0FDbEM7OEdBWFksc0JBQXNCO2tHQUF0QixzQkFBc0IsdTJCQXBDdkI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FrQ1QsNERBbkNTLGlCQUFpQixpSEFBRSxxQkFBcUI7OzJGQXFDdkMsc0JBQXNCO2tCQXhDbEMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsa0NBQWtDO29CQUM1QyxVQUFVLEVBQUUsSUFBSTtvQkFDaEIsT0FBTyxFQUFFLENBQUMsaUJBQWlCLEVBQUUscUJBQXFCLENBQUM7b0JBQ25ELFFBQVEsRUFBRTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQWtDVDtpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgaW5wdXQsIG91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRHJvcGRvd25Db21wb25lbnQgfSBmcm9tICcuL2Ryb3Bkb3duJztcbmltcG9ydCB7IERyb3Bkb3duTGlzdENvbXBvbmVudCB9IGZyb20gJy4vZHJvcGRvd24tbGlzdCc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgRHJvcGRvd25JdGVtIHtcbiAgZGlzcGxheT86IHN0cmluZztcbiAgdmFsdWU6IHN0cmluZztcbn1cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3EtZHJvcGRvd24taW5wdXQsIERyb3Bkb3duSW5wdXQnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbRHJvcGRvd25Db21wb25lbnQsIERyb3Bkb3duTGlzdENvbXBvbmVudF0sXG4gIHRlbXBsYXRlOiBgXG4gICAgQGlmIChsYWJlbCgpKSB7XG4gICAgICA8cCBjbGFzcz1cImZvbnQtc2VtaWJvbGRcIj57eyBsYWJlbCgpIH19PC9wPlxuICAgIH1cbiAgICA8RHJvcGRvd24gY2xhc3M9XCJ3LWZ1bGwgYmxvY2tcIj5cbiAgICAgIDxpbnB1dFxuICAgICAgICAjc2VhcmNoSW5wdXRcbiAgICAgICAgY2xhc3M9XCJ3LTEvMiBncm93IGZvY3VzOm91dGxpbmUtbm9uZSByb3VuZGVkIGJvcmRlciBib3JkZXItbmV1dHJhbC0yMDAgZ3JvdXAtaG92ZXI6Ymctd2hpdGUgcC0yXCJcbiAgICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgICBhdXRvY29tcGxldGU9XCJvZmZcIlxuICAgICAgICBzcGVsbGNoZWNrPVwiZmFsc2VcIlxuICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cInBsYWNlaG9sZGVyKClcIlxuICAgICAgICBbYXR0ci5wbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlcigpXCJcbiAgICAgICAgKGZvY3VzKT1cIm9uRm9jdXMuZW1pdChzZWFyY2hJbnB1dC52YWx1ZSlcIlxuICAgICAgICAoa2V5dXApPVwib25LZXlVcC5lbWl0KHNlYXJjaElucHV0LnZhbHVlKVwiXG4gICAgICAgIC8+XG5cbiAgICAgIDxEcm9wZG93bkxpc3QgY2xhc3M9XCJtYi00XCIgW2l0ZW1zXT1cInNlbGVjdGVkKClcIiAob25DbGljayk9XCJyZW1vdmVJdGVtLmVtaXQoJGV2ZW50KVwiIC8+XG4gICAgICAgIFxuICAgICAgPGRpdiBkcm9wZG93bi1jb250ZW50IGNsYXNzPVwiZHJvcGRvd24tY29udGVudCB3LW1heCBtdC1bLTEuNXJlbV1cIj5cbiAgICAgICAgQGlmICghc3VnZ2VzdGlvbnMoKS5sZW5ndGgpIHtcbiAgICAgICAgICB7eyBub1Jlc3VsdExhYmVsKCkgfX1cbiAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgPHVsIGNsYXNzPVwiZGF0YS1saXN0LXhzIGZsZXgtZ3JvdyBvdmVyZmxvdy1hdXRvIG1heC1oLTQ0IG15LTJcIj5cbiAgICAgICAgICAgIEBmb3IgKHN1Z2dlc3Rpb24gb2Ygc3VnZ2VzdGlvbnMoKTsgdHJhY2sgJGluZGV4KSB7XG4gICAgICAgICAgICAgIDxsaSBjbGFzcz1cInAtMiBmbGV4IGRhdGEtbGlzdC1pdGVtIGl0ZW1zLWJhc2VsaW5lIGdhcC0yIGN1cnNvci1wb2ludGVyXCJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwiYWRkSXRlbS5lbWl0KHN1Z2dlc3Rpb24pXCI+XG4gICAgICAgICAgICAgICAge3sgc3VnZ2VzdGlvbi5kaXNwbGF5IHx8IHN1Z2dlc3Rpb24udmFsdWUgfX1cbiAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICA8L3VsPlxuICAgICAgICB9XG4gICAgICA8L2Rpdj5cbiAgICA8L0Ryb3Bkb3duPlxuICBgXG59KVxuZXhwb3J0IGNsYXNzIERyb3Bkb3duSW5wdXRDb21wb25lbnQge1xuICBsYWJlbCA9IGlucHV0PHN0cmluZz4oKTtcbiAgcGxhY2Vob2xkZXIgPSBpbnB1dDxzdHJpbmc+KCdTdGFydCB0eXBpbmcgdG8gc2VhcmNoLi4uJyk7XG4gIG5vUmVzdWx0TGFiZWwgPSBpbnB1dDxzdHJpbmc+KCdObyByZXN1bHRzIHRvIGJlIGRpc3BsYXllZC4uLicpO1xuICBzdWdnZXN0aW9ucyA9IGlucHV0PERyb3Bkb3duSXRlbVtdPihbXSk7XG4gIHNlbGVjdGVkID0gaW5wdXQucmVxdWlyZWQ8RHJvcGRvd25JdGVtW10+KCk7XG5cbiAgb25Gb2N1cyA9IG91dHB1dDxzdHJpbmcgfCBudWxsPigpOyAvLyBlbWl0cyB0aGUgaW5wdXQgdmFsdWVcbiAgb25LZXlVcCA9IG91dHB1dDxzdHJpbmcgfCBudWxsPigpOyAvLyBlbWl0cyB0aGUgaW5wdXQgdmFsdWVcbiAgcmVtb3ZlSXRlbSA9IG91dHB1dDxEcm9wZG93bkl0ZW0+KCk7XG4gIGFkZEl0ZW0gPSBvdXRwdXQ8RHJvcGRvd25JdGVtPigpO1xufVxuIl19
@@ -0,0 +1,35 @@
1
+ import { Component, input, output } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export class DropdownListComponent {
4
+ constructor() {
5
+ this.items = input.required();
6
+ this.onClick = output();
7
+ }
8
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: DropdownListComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
9
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.5", type: DropdownListComponent, isStandalone: true, selector: "sq-dropdown-list, DropdownList", inputs: { items: { classPropertyName: "items", publicName: "items", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { onClick: "onClick" }, ngImport: i0, template: `
10
+ @for (item of items(); track $index) {
11
+ <span class="pill pill-sm pill-ghost bg-primary flex place-content-center items-center font-semibold text-white float-left m-1 select-none"
12
+ role="button">
13
+ {{ item.display || item.value }}
14
+ <i class="ms-1 fa-fw far fa-circle-xmark cursor-pointer" (click)="onClick.emit(item)"></i>
15
+ </span>
16
+ }
17
+ `, isInline: true }); }
18
+ }
19
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: DropdownListComponent, decorators: [{
20
+ type: Component,
21
+ args: [{
22
+ selector: 'sq-dropdown-list, DropdownList',
23
+ standalone: true,
24
+ template: `
25
+ @for (item of items(); track $index) {
26
+ <span class="pill pill-sm pill-ghost bg-primary flex place-content-center items-center font-semibold text-white float-left m-1 select-none"
27
+ role="button">
28
+ {{ item.display || item.value }}
29
+ <i class="ms-1 fa-fw far fa-circle-xmark cursor-pointer" (click)="onClick.emit(item)"></i>
30
+ </span>
31
+ }
32
+ `
33
+ }]
34
+ }] });
35
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcGRvd24tbGlzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2F0b21pYy1hbmd1bGFyL3NyYy9saWIvY29tcG9uZW50cy9kcm9wZG93bi1saXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFnQnpELE1BQU0sT0FBTyxxQkFBcUI7SUFibEM7UUFjRSxVQUFLLEdBQUcsS0FBSyxDQUFDLFFBQVEsRUFBa0IsQ0FBQztRQUV6QyxZQUFPLEdBQUcsTUFBTSxFQUFnQixDQUFDO0tBQ2xDOzhHQUpZLHFCQUFxQjtrR0FBckIscUJBQXFCLDhQQVZ0Qjs7Ozs7Ozs7R0FRVDs7MkZBRVUscUJBQXFCO2tCQWJqQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxnQ0FBZ0M7b0JBQzFDLFVBQVUsRUFBRSxJQUFJO29CQUNoQixRQUFRLEVBQUU7Ozs7Ozs7O0dBUVQ7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIGlucHV0LCBvdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IERyb3Bkb3duSXRlbSB9IGZyb20gJy4vZHJvcGRvd24taW5wdXQnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzcS1kcm9wZG93bi1saXN0LCBEcm9wZG93bkxpc3QnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICB0ZW1wbGF0ZTogYFxuQGZvciAoaXRlbSBvZiBpdGVtcygpOyB0cmFjayAkaW5kZXgpIHtcbiAgPHNwYW4gY2xhc3M9XCJwaWxsIHBpbGwtc20gcGlsbC1naG9zdCBiZy1wcmltYXJ5IGZsZXggcGxhY2UtY29udGVudC1jZW50ZXIgaXRlbXMtY2VudGVyIGZvbnQtc2VtaWJvbGQgdGV4dC13aGl0ZSBmbG9hdC1sZWZ0IG0tMSBzZWxlY3Qtbm9uZVwiXG4gICAgcm9sZT1cImJ1dHRvblwiPlxuICAgIHt7IGl0ZW0uZGlzcGxheSB8fCBpdGVtLnZhbHVlIH19XG4gICAgPGkgY2xhc3M9XCJtcy0xIGZhLWZ3IGZhciBmYS1jaXJjbGUteG1hcmsgY3Vyc29yLXBvaW50ZXJcIiAoY2xpY2spPVwib25DbGljay5lbWl0KGl0ZW0pXCI+PC9pPlxuICA8L3NwYW4+XG59XG4gIGBcbn0pXG5leHBvcnQgY2xhc3MgRHJvcGRvd25MaXN0Q29tcG9uZW50IHtcbiAgaXRlbXMgPSBpbnB1dC5yZXF1aXJlZDxEcm9wZG93bkl0ZW1bXT4oKTtcblxuICBvbkNsaWNrID0gb3V0cHV0PERyb3Bkb3duSXRlbT4oKTtcbn1cbiJdfQ==