@sinequa/atomic-angular 0.0.140

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 +248 -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.mjs +127 -0
  5. package/esm2022/lib/components/index.mjs +5 -0
  6. package/esm2022/lib/components/menu/index.mjs +3 -0
  7. package/esm2022/lib/components/menu/menu-item.mjs +22 -0
  8. package/esm2022/lib/components/menu/menu.mjs +99 -0
  9. package/esm2022/lib/components/metadata/index.mjs +2 -0
  10. package/esm2022/lib/components/metadata/metadata.component.mjs +65 -0
  11. package/esm2022/lib/components/theme/index.mjs +3 -0
  12. package/esm2022/lib/components/theme/theme-selector.component.mjs +67 -0
  13. package/esm2022/lib/components/theme/theme-toggle.component.mjs +67 -0
  14. package/esm2022/lib/directives/index.mjs +5 -0
  15. package/esm2022/lib/directives/infinite-scroll.directive.mjs +47 -0
  16. package/esm2022/lib/directives/select-article-on-click.directive.mjs +39 -0
  17. package/esm2022/lib/directives/show-bookmark.directive.mjs +55 -0
  18. package/esm2022/lib/directives/theme-provider.directive.mjs +31 -0
  19. package/esm2022/lib/guards/auth.guard.mjs +27 -0
  20. package/esm2022/lib/guards/index.mjs +3 -0
  21. package/esm2022/lib/guards/initialization.guard.mjs +41 -0
  22. package/esm2022/lib/interceptors/audit.interceptor.mjs +23 -0
  23. package/esm2022/lib/interceptors/auth.interceptor.mjs +49 -0
  24. package/esm2022/lib/interceptors/body.interceptor.mjs +24 -0
  25. package/esm2022/lib/interceptors/error.interceptor.mjs +35 -0
  26. package/esm2022/lib/interceptors/index.mjs +7 -0
  27. package/esm2022/lib/interceptors/toast.interceptor.mjs +27 -0
  28. package/esm2022/lib/models/aggregation.mjs +2 -0
  29. package/esm2022/lib/models/article-metadata.mjs +2 -0
  30. package/esm2022/lib/models/autocomplete.mjs +2 -0
  31. package/esm2022/lib/models/custom-json.mjs +2 -0
  32. package/esm2022/lib/models/filter-dropdown.mjs +2 -0
  33. package/esm2022/lib/models/index.mjs +7 -0
  34. package/esm2022/lib/models/user-settings.mjs +2 -0
  35. package/esm2022/lib/pipes/highlight-word.pipe.mjs +33 -0
  36. package/esm2022/lib/pipes/index.mjs +3 -0
  37. package/esm2022/lib/pipes/source-icon.pipe.mjs +43 -0
  38. package/esm2022/lib/providers/eager-provider.mjs +24 -0
  39. package/esm2022/lib/providers/index.mjs +2 -0
  40. package/esm2022/lib/public-api.mjs +19 -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 +62 -0
  58. package/esm2022/lib/stores/app.store.mjs +265 -0
  59. package/esm2022/lib/stores/application.store.mjs +93 -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 +208 -0
  63. package/esm2022/lib/stores/selection.store.mjs +46 -0
  64. package/esm2022/lib/stores/theme.store.mjs +116 -0
  65. package/esm2022/lib/stores/user-settings.store.mjs +272 -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 +4204 -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.d.ts +50 -0
  93. package/lib/components/index.d.ts +4 -0
  94. package/lib/components/menu/index.d.ts +2 -0
  95. package/lib/components/menu/menu-item.d.ts +8 -0
  96. package/lib/components/menu/menu.d.ts +24 -0
  97. package/lib/components/metadata/index.d.ts +1 -0
  98. package/lib/components/metadata/metadata.component.d.ts +24 -0
  99. package/lib/components/theme/index.d.ts +2 -0
  100. package/lib/components/theme/theme-selector.component.d.ts +70 -0
  101. package/lib/components/theme/theme-toggle.component.d.ts +10 -0
  102. package/lib/directives/index.d.ts +4 -0
  103. package/lib/directives/infinite-scroll.directive.d.ts +30 -0
  104. package/lib/directives/select-article-on-click.directive.d.ts +14 -0
  105. package/lib/directives/show-bookmark.directive.d.ts +52 -0
  106. package/lib/directives/theme-provider.directive.d.ts +20 -0
  107. package/lib/guards/auth.guard.d.ts +7 -0
  108. package/lib/guards/index.d.ts +2 -0
  109. package/lib/guards/initialization.guard.d.ts +20 -0
  110. package/lib/interceptors/audit.interceptor.d.ts +13 -0
  111. package/lib/interceptors/auth.interceptor.d.ts +14 -0
  112. package/lib/interceptors/body.interceptor.d.ts +11 -0
  113. package/lib/interceptors/error.interceptor.d.ts +9 -0
  114. package/lib/interceptors/index.d.ts +5 -0
  115. package/lib/interceptors/toast.interceptor.d.ts +13 -0
  116. package/lib/models/aggregation.d.ts +12 -0
  117. package/lib/models/article-metadata.d.ts +5 -0
  118. package/lib/models/autocomplete.d.ts +5 -0
  119. package/lib/models/custom-json.d.ts +58 -0
  120. package/lib/models/filter-dropdown.d.ts +10 -0
  121. package/lib/models/index.d.ts +6 -0
  122. package/lib/models/user-settings.d.ts +32 -0
  123. package/lib/pipes/highlight-word.pipe.d.ts +22 -0
  124. package/lib/pipes/index.d.ts +2 -0
  125. package/lib/pipes/source-icon.pipe.d.ts +54 -0
  126. package/lib/providers/eager-provider.d.ts +11 -0
  127. package/lib/providers/index.d.ts +1 -0
  128. package/lib/public-api.d.ts +15 -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 +178 -0
  134. package/lib/services/autocomplete.service.d.ts +91 -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 +117 -0
  140. package/lib/services/navigation.service.d.ts +33 -0
  141. package/lib/services/saved-searches.service.d.ts +145 -0
  142. package/lib/services/search.service.d.ts +155 -0
  143. package/lib/services/selection-history.service.d.ts +50 -0
  144. package/lib/services/selection.service.d.ts +127 -0
  145. package/lib/stores/aggregations.store.d.ts +50 -0
  146. package/lib/stores/app.store.d.ts +208 -0
  147. package/lib/stores/application.store.d.ts +106 -0
  148. package/lib/stores/index.d.ts +8 -0
  149. package/lib/stores/principal.store.d.ts +53 -0
  150. package/lib/stores/query-params.store.d.ts +187 -0
  151. package/lib/stores/selection.store.d.ts +62 -0
  152. package/lib/stores/theme.store.d.ts +55 -0
  153. package/lib/stores/user-settings.store.d.ts +161 -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 +60 -0
  165. package/lib/web-services/app.service.d.ts +30 -0
  166. package/lib/web-services/audit.service.d.ts +75 -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 +295 -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,248 @@
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
+ .block {
122
+ display: block
123
+ }
124
+
125
+ .flex {
126
+ display: flex
127
+ }
128
+
129
+ .hidden {
130
+ display: none
131
+ }
132
+
133
+ .size-3 {
134
+ width: 0.75rem;
135
+ height: 0.75rem
136
+ }
137
+
138
+ .min-w-fit {
139
+ min-width: -moz-fit-content;
140
+ min-width: fit-content
141
+ }
142
+
143
+ .cursor-default {
144
+ cursor: default
145
+ }
146
+
147
+ .cursor-pointer {
148
+ cursor: pointer
149
+ }
150
+
151
+ .select-none {
152
+ -webkit-user-select: none;
153
+ -moz-user-select: none;
154
+ user-select: none
155
+ }
156
+
157
+ .flex-col {
158
+ flex-direction: column
159
+ }
160
+
161
+ .items-center {
162
+ align-items: center
163
+ }
164
+
165
+ .items-baseline {
166
+ align-items: baseline
167
+ }
168
+
169
+ .justify-start {
170
+ justify-content: flex-start
171
+ }
172
+
173
+ .gap-1 {
174
+ gap: 0.25rem
175
+ }
176
+
177
+ .gap-2 {
178
+ gap: 0.5rem
179
+ }
180
+
181
+ .divide-y > :not([hidden]) ~ :not([hidden]) {
182
+ --tw-divide-y-reverse: 0;
183
+ border-top-width: calc(1px * calc(1 - var(--tw-divide-y-reverse)));
184
+ border-bottom-width: calc(1px * var(--tw-divide-y-reverse))
185
+ }
186
+
187
+ .text-ellipsis {
188
+ text-overflow: ellipsis
189
+ }
190
+
191
+ .rounded-full {
192
+ border-radius: 9999px
193
+ }
194
+
195
+ .rounded-md {
196
+ border-radius: 0.375rem
197
+ }
198
+
199
+ .border {
200
+ border-width: 1px
201
+ }
202
+
203
+ .border-gray-300 {
204
+ --tw-border-opacity: 1;
205
+ border-color: rgb(209 213 219 / var(--tw-border-opacity))
206
+ }
207
+
208
+ .bg-white {
209
+ --tw-bg-opacity: 1;
210
+ background-color: rgb(255 255 255 / var(--tw-bg-opacity))
211
+ }
212
+
213
+ .p-2 {
214
+ padding: 0.5rem
215
+ }
216
+
217
+ .px-4 {
218
+ padding-left: 1rem;
219
+ padding-right: 1rem
220
+ }
221
+
222
+ .py-2 {
223
+ padding-top: 0.5rem;
224
+ padding-bottom: 0.5rem
225
+ }
226
+
227
+ .text-sm {
228
+ font-size: 0.875rem;
229
+ line-height: 1.25rem
230
+ }
231
+
232
+ .opacity-50 {
233
+ opacity: 0.5
234
+ }
235
+
236
+ .shadow {
237
+ --tw-shadow: 0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1);
238
+ --tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);
239
+ box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow)
240
+ }
241
+
242
+ .filter {
243
+ 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)
244
+ }
245
+
246
+ .hover\:bg-transparent:hover {
247
+ background-color: transparent
248
+ }
@@ -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,127 @@
1
+ import { Component, HostListener, afterNextRender, input, signal, viewChild } from '@angular/core';
2
+ import { autoUpdate, computePosition, flip, offset, shift } from '@floating-ui/dom';
3
+ import * as i0 from "@angular/core";
4
+ export class DropdownComponent {
5
+ mouseleave(event) {
6
+ this.close();
7
+ }
8
+ /**
9
+ * Initializes the dropdown component and sets up automatic updates for its position.
10
+ *
11
+ * The constructor uses `afterNextRender` to ensure that the DOM elements are available
12
+ * before calling `autoUpdate`. The `autoUpdate` function monitors the trigger and dropdown
13
+ * elements, and if the dropdown is open, it recalculates its position.
14
+ *
15
+ * @constructor
16
+ */
17
+ constructor() {
18
+ this.isOpen = signal(false);
19
+ this.position = input('bottom-start');
20
+ this.autoClose = input(false);
21
+ this.disabled = input();
22
+ this.dropdown = viewChild('dropdownWrapper');
23
+ this.trigger = viewChild('trigger');
24
+ this.width = signal(0);
25
+ afterNextRender(() => {
26
+ autoUpdate(this.trigger()?.nativeElement, this.dropdown()?.nativeElement, () => {
27
+ if (!this.isOpen())
28
+ return;
29
+ this.calculatePosition();
30
+ });
31
+ });
32
+ }
33
+ /**
34
+ * Toggles the dropdown's open state.
35
+ * If the dropdown is disabled, the method returns immediately without making any changes.
36
+ * Otherwise, it updates the `isOpen` state to its opposite value and recalculates the dropdown's position.
37
+ */
38
+ toggle() {
39
+ if (this.disabled())
40
+ return;
41
+ this.isOpen.update(() => !this.isOpen());
42
+ this.calculatePosition();
43
+ }
44
+ /**
45
+ * Closes the dropdown by setting the `isOpen` state to `false`.
46
+ */
47
+ close() {
48
+ this.isOpen.set(false);
49
+ }
50
+ /**
51
+ * Calculates and sets the position of the dropdown element relative to the trigger element.
52
+ * Utilizes the `computePosition` function with specified middleware for offset, flip, and shift.
53
+ * Updates the dropdown's `left` and `top` styles based on the computed position.
54
+ * Also sets the width of the dropdown to match the trigger element's width.
55
+ *
56
+ * @returns {void}
57
+ */
58
+ calculatePosition() {
59
+ computePosition(this.trigger()?.nativeElement, this.dropdown()?.nativeElement, {
60
+ placement: this.position(),
61
+ middleware: [offset(8), flip(), shift()],
62
+ }).then(({ x, y }) => {
63
+ this.dropdown().nativeElement.style.left = x + 'px';
64
+ this.dropdown().nativeElement.style.top = y + 'px';
65
+ this.width.set(this.trigger()?.nativeElement.offsetWidth);
66
+ });
67
+ }
68
+ // Onclick outside the dropdown, close it
69
+ clickout(event) {
70
+ if (
71
+ // Check if the click was outside the dropdown
72
+ // and the dropdown is open
73
+ // and the click was not on the button
74
+ // then close the dropdown
75
+ !this.dropdown()?.nativeElement.contains(event.target)
76
+ && this.isOpen
77
+ && !this.trigger()?.nativeElement.contains(event.target)) {
78
+ this.isOpen.set(false);
79
+ }
80
+ }
81
+ /**
82
+ * Handles the click event on the dropdown content.
83
+ * If the `autoClose` method returns true, it triggers the `close` method to close the dropdown.
84
+ */
85
+ contentClicked() {
86
+ if (this.autoClose())
87
+ this.close();
88
+ }
89
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: DropdownComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
90
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "18.2.5", type: DropdownComponent, isStandalone: true, selector: "sq-dropdown, Dropdown", inputs: { position: { classPropertyName: "position", publicName: "position", isSignal: true, isRequired: false, transformFunction: null }, autoClose: { classPropertyName: "autoClose", publicName: "autoClose", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null } }, host: { listeners: { "document:click": "clickout($event)" } }, viewQueries: [{ propertyName: "dropdown", first: true, predicate: ["dropdownWrapper"], descendants: true, isSignal: true }, { propertyName: "trigger", first: true, predicate: ["trigger"], descendants: true, isSignal: true }], ngImport: i0, template: `
91
+ <div #trigger class="select-none dropdown" (click)="toggle()">
92
+ <ng-content></ng-content>
93
+ </div>
94
+
95
+ <div #dropdownWrapper
96
+ class="dropdown-wrapper absolute text-sm min-w-fit"
97
+ [style.display]="isOpen() ? 'block' : 'none'"
98
+ [style.width]="width() + 'px'"
99
+ (click)="contentClicked()"
100
+ (mouseleave)="mouseleave($event)"
101
+ >
102
+ <ng-content select="[dropdown-content]"></ng-content>
103
+ </div>
104
+ `, isInline: true, styles: [".dropdown-wrapper{z-index:var(--z-dropdown, 100)}\n"] }); }
105
+ }
106
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: DropdownComponent, decorators: [{
107
+ type: Component,
108
+ args: [{ selector: 'sq-dropdown, Dropdown', standalone: true, template: `
109
+ <div #trigger class="select-none dropdown" (click)="toggle()">
110
+ <ng-content></ng-content>
111
+ </div>
112
+
113
+ <div #dropdownWrapper
114
+ class="dropdown-wrapper absolute text-sm min-w-fit"
115
+ [style.display]="isOpen() ? 'block' : 'none'"
116
+ [style.width]="width() + 'px'"
117
+ (click)="contentClicked()"
118
+ (mouseleave)="mouseleave($event)"
119
+ >
120
+ <ng-content select="[dropdown-content]"></ng-content>
121
+ </div>
122
+ `, styles: [".dropdown-wrapper{z-index:var(--z-dropdown, 100)}\n"] }]
123
+ }], ctorParameters: () => [], propDecorators: { clickout: [{
124
+ type: HostListener,
125
+ args: ['document:click', ['$event']]
126
+ }] } });
127
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcGRvd24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hdG9taWMtYW5ndWxhci9zcmMvbGliL2NvbXBvbmVudHMvZHJvcGRvd24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBYyxZQUFZLEVBQUUsZUFBZSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQy9HLE9BQU8sRUFBYSxVQUFVLEVBQUUsZUFBZSxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7O0FBMEIvRixNQUFNLE9BQU8saUJBQWlCO0lBVzVCLFVBQVUsQ0FBQyxLQUFZO1FBQ3JCLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUNmLENBQUM7SUFFRDs7Ozs7Ozs7T0FRRztJQUNIO1FBdkJBLFdBQU0sR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDdkIsYUFBUSxHQUFHLEtBQUssQ0FBWSxjQUFjLENBQUMsQ0FBQztRQUM1QyxjQUFTLEdBQUcsS0FBSyxDQUFVLEtBQUssQ0FBQyxDQUFDO1FBQ2xDLGFBQVEsR0FBRyxLQUFLLEVBQVcsQ0FBQztRQUU1QixhQUFRLEdBQUcsU0FBUyxDQUFhLGlCQUFpQixDQUFDLENBQUM7UUFDcEQsWUFBTyxHQUFHLFNBQVMsQ0FBYSxTQUFTLENBQUMsQ0FBQztRQUUzQyxVQUFLLEdBQUcsTUFBTSxDQUFTLENBQUMsQ0FBQyxDQUFDO1FBZ0J4QixlQUFlLENBQUMsR0FBRyxFQUFFO1lBQ25CLFVBQVUsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLEVBQUUsYUFBYSxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQUUsRUFBRSxhQUFhLEVBQUUsR0FBRyxFQUFFO2dCQUM3RSxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRTtvQkFBRSxPQUFPO2dCQUMzQixJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztZQUMzQixDQUFDLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUdEOzs7O09BSUc7SUFDSCxNQUFNO1FBQ0osSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQUUsT0FBTztRQUM1QixJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDO1FBQ3pDLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO0lBQzNCLENBQUM7SUFFRDs7T0FFRztJQUNILEtBQUs7UUFDSCxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN6QixDQUFDO0lBRUQ7Ozs7Ozs7T0FPRztJQUNILGlCQUFpQjtRQUNmLGVBQWUsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLEVBQUUsYUFBYSxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQUUsRUFBRSxhQUFhLEVBQUU7WUFDN0UsU0FBUyxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDMUIsVUFBVSxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEtBQUssRUFBRSxDQUFDO1NBQ3pDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQTRCLEVBQUUsRUFBRTtZQUM3QyxJQUFJLENBQUMsUUFBUSxFQUFHLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxJQUFJLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQztZQUNyRCxJQUFJLENBQUMsUUFBUSxFQUFHLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxHQUFHLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQztZQUNwRCxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLEVBQUUsYUFBYSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQzVELENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELHlDQUF5QztJQUV6QyxRQUFRLENBQUMsS0FBWTtRQUNuQjtRQUNFLDhDQUE4QztRQUM5QywyQkFBMkI7UUFDM0Isc0NBQXNDO1FBQ3RDLDBCQUEwQjtRQUMxQixDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsRUFBRSxhQUFhLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUM7ZUFDbkQsSUFBSSxDQUFDLE1BQU07ZUFDWCxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsRUFBRSxhQUFhLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsRUFDeEQsQ0FBQztZQUNELElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3pCLENBQUM7SUFDSCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsY0FBYztRQUNaLElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRTtZQUFFLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUNyQyxDQUFDOzhHQTdGVSxpQkFBaUI7a0dBQWpCLGlCQUFpQixvd0JBckJsQjs7Ozs7Ozs7Ozs7Ozs7R0FjVDs7MkZBT1UsaUJBQWlCO2tCQXhCN0IsU0FBUzsrQkFDRSx1QkFBdUIsY0FDckIsSUFBSSxZQUNOOzs7Ozs7Ozs7Ozs7OztHQWNUO3dEQWdGRCxRQUFRO3NCQURQLFlBQVk7dUJBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEVsZW1lbnRSZWYsIEhvc3RMaXN0ZW5lciwgYWZ0ZXJOZXh0UmVuZGVyLCBpbnB1dCwgc2lnbmFsLCB2aWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFBsYWNlbWVudCwgYXV0b1VwZGF0ZSwgY29tcHV0ZVBvc2l0aW9uLCBmbGlwLCBvZmZzZXQsIHNoaWZ0IH0gZnJvbSAnQGZsb2F0aW5nLXVpL2RvbSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NxLWRyb3Bkb3duLCBEcm9wZG93bicsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIHRlbXBsYXRlOiBgXG4gICAgPGRpdiAjdHJpZ2dlciBjbGFzcz1cInNlbGVjdC1ub25lIGRyb3Bkb3duXCIgKGNsaWNrKT1cInRvZ2dsZSgpXCI+XG4gICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2ICNkcm9wZG93bldyYXBwZXJcbiAgICAgIGNsYXNzPVwiZHJvcGRvd24td3JhcHBlciBhYnNvbHV0ZSB0ZXh0LXNtIG1pbi13LWZpdFwiXG4gICAgICBbc3R5bGUuZGlzcGxheV09XCJpc09wZW4oKSA/ICdibG9jaycgOiAnbm9uZSdcIlxuICAgICAgW3N0eWxlLndpZHRoXT1cIndpZHRoKCkgKyAncHgnXCJcbiAgICAgIChjbGljayk9XCJjb250ZW50Q2xpY2tlZCgpXCJcbiAgICAgIChtb3VzZWxlYXZlKT1cIm1vdXNlbGVhdmUoJGV2ZW50KVwiXG4gICAgPlxuICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW2Ryb3Bkb3duLWNvbnRlbnRdXCI+PC9uZy1jb250ZW50PlxuICAgIDwvZGl2PlxuICBgLFxuICBzdHlsZXM6IGBcbiAgICAuZHJvcGRvd24td3JhcHBlciB7XG4gICAgICB6LWluZGV4OiB2YXIoLS16LWRyb3Bkb3duLCAxMDApO1xuICAgIH1cbiAgYFxufSlcbmV4cG9ydCBjbGFzcyBEcm9wZG93bkNvbXBvbmVudCB7XG4gIGlzT3BlbiA9IHNpZ25hbChmYWxzZSk7XG4gIHBvc2l0aW9uID0gaW5wdXQ8UGxhY2VtZW50PignYm90dG9tLXN0YXJ0Jyk7XG4gIGF1dG9DbG9zZSA9IGlucHV0PGJvb2xlYW4+KGZhbHNlKTtcbiAgZGlzYWJsZWQgPSBpbnB1dDxib29sZWFuPigpO1xuXG4gIGRyb3Bkb3duID0gdmlld0NoaWxkPEVsZW1lbnRSZWY+KCdkcm9wZG93bldyYXBwZXInKTtcbiAgdHJpZ2dlciA9IHZpZXdDaGlsZDxFbGVtZW50UmVmPigndHJpZ2dlcicpO1xuXG4gIHdpZHRoID0gc2lnbmFsPG51bWJlcj4oMCk7XG5cbiAgbW91c2VsZWF2ZShldmVudDogRXZlbnQpIHtcbiAgICB0aGlzLmNsb3NlKCk7XG4gIH1cblxuICAvKipcbiAgICogSW5pdGlhbGl6ZXMgdGhlIGRyb3Bkb3duIGNvbXBvbmVudCBhbmQgc2V0cyB1cCBhdXRvbWF0aWMgdXBkYXRlcyBmb3IgaXRzIHBvc2l0aW9uLlxuICAgKlxuICAgKiBUaGUgY29uc3RydWN0b3IgdXNlcyBgYWZ0ZXJOZXh0UmVuZGVyYCB0byBlbnN1cmUgdGhhdCB0aGUgRE9NIGVsZW1lbnRzIGFyZSBhdmFpbGFibGVcbiAgICogYmVmb3JlIGNhbGxpbmcgYGF1dG9VcGRhdGVgLiBUaGUgYGF1dG9VcGRhdGVgIGZ1bmN0aW9uIG1vbml0b3JzIHRoZSB0cmlnZ2VyIGFuZCBkcm9wZG93blxuICAgKiBlbGVtZW50cywgYW5kIGlmIHRoZSBkcm9wZG93biBpcyBvcGVuLCBpdCByZWNhbGN1bGF0ZXMgaXRzIHBvc2l0aW9uLlxuICAgKlxuICAgKiBAY29uc3RydWN0b3JcbiAgICovXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIGFmdGVyTmV4dFJlbmRlcigoKSA9PiB7XG4gICAgICBhdXRvVXBkYXRlKHRoaXMudHJpZ2dlcigpPy5uYXRpdmVFbGVtZW50LCB0aGlzLmRyb3Bkb3duKCk/Lm5hdGl2ZUVsZW1lbnQsICgpID0+IHtcbiAgICAgICAgaWYgKCF0aGlzLmlzT3BlbigpKSByZXR1cm47XG4gICAgICAgIHRoaXMuY2FsY3VsYXRlUG9zaXRpb24oKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cblxuICAvKipcbiAgICogVG9nZ2xlcyB0aGUgZHJvcGRvd24ncyBvcGVuIHN0YXRlLlxuICAgKiBJZiB0aGUgZHJvcGRvd24gaXMgZGlzYWJsZWQsIHRoZSBtZXRob2QgcmV0dXJucyBpbW1lZGlhdGVseSB3aXRob3V0IG1ha2luZyBhbnkgY2hhbmdlcy5cbiAgICogT3RoZXJ3aXNlLCBpdCB1cGRhdGVzIHRoZSBgaXNPcGVuYCBzdGF0ZSB0byBpdHMgb3Bwb3NpdGUgdmFsdWUgYW5kIHJlY2FsY3VsYXRlcyB0aGUgZHJvcGRvd24ncyBwb3NpdGlvbi5cbiAgICovXG4gIHRvZ2dsZSgpIHtcbiAgICBpZiAodGhpcy5kaXNhYmxlZCgpKSByZXR1cm47XG4gICAgdGhpcy5pc09wZW4udXBkYXRlKCgpID0+ICF0aGlzLmlzT3BlbigpKTtcbiAgICB0aGlzLmNhbGN1bGF0ZVBvc2l0aW9uKCk7XG4gIH1cblxuICAvKipcbiAgICogQ2xvc2VzIHRoZSBkcm9wZG93biBieSBzZXR0aW5nIHRoZSBgaXNPcGVuYCBzdGF0ZSB0byBgZmFsc2VgLlxuICAgKi9cbiAgY2xvc2UoKSB7XG4gICAgdGhpcy5pc09wZW4uc2V0KGZhbHNlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDYWxjdWxhdGVzIGFuZCBzZXRzIHRoZSBwb3NpdGlvbiBvZiB0aGUgZHJvcGRvd24gZWxlbWVudCByZWxhdGl2ZSB0byB0aGUgdHJpZ2dlciBlbGVtZW50LlxuICAgKiBVdGlsaXplcyB0aGUgYGNvbXB1dGVQb3NpdGlvbmAgZnVuY3Rpb24gd2l0aCBzcGVjaWZpZWQgbWlkZGxld2FyZSBmb3Igb2Zmc2V0LCBmbGlwLCBhbmQgc2hpZnQuXG4gICAqIFVwZGF0ZXMgdGhlIGRyb3Bkb3duJ3MgYGxlZnRgIGFuZCBgdG9wYCBzdHlsZXMgYmFzZWQgb24gdGhlIGNvbXB1dGVkIHBvc2l0aW9uLlxuICAgKiBBbHNvIHNldHMgdGhlIHdpZHRoIG9mIHRoZSBkcm9wZG93biB0byBtYXRjaCB0aGUgdHJpZ2dlciBlbGVtZW50J3Mgd2lkdGguXG4gICAqXG4gICAqIEByZXR1cm5zIHt2b2lkfVxuICAgKi9cbiAgY2FsY3VsYXRlUG9zaXRpb24oKSB7XG4gICAgY29tcHV0ZVBvc2l0aW9uKHRoaXMudHJpZ2dlcigpPy5uYXRpdmVFbGVtZW50LCB0aGlzLmRyb3Bkb3duKCk/Lm5hdGl2ZUVsZW1lbnQsIHtcbiAgICAgIHBsYWNlbWVudDogdGhpcy5wb3NpdGlvbigpLFxuICAgICAgbWlkZGxld2FyZTogW29mZnNldCg4KSwgZmxpcCgpLCBzaGlmdCgpXSxcbiAgICB9KS50aGVuKCh7IHgsIHkgfTogeyB4OiBudW1iZXI7IHk6IG51bWJlciB9KSA9PiB7XG4gICAgICB0aGlzLmRyb3Bkb3duKCkhLm5hdGl2ZUVsZW1lbnQuc3R5bGUubGVmdCA9IHggKyAncHgnO1xuICAgICAgdGhpcy5kcm9wZG93bigpIS5uYXRpdmVFbGVtZW50LnN0eWxlLnRvcCA9IHkgKyAncHgnO1xuICAgICAgdGhpcy53aWR0aC5zZXQodGhpcy50cmlnZ2VyKCk/Lm5hdGl2ZUVsZW1lbnQub2Zmc2V0V2lkdGgpO1xuICAgIH0pO1xuICB9XG5cbiAgLy8gT25jbGljayBvdXRzaWRlIHRoZSBkcm9wZG93biwgY2xvc2UgaXRcbiAgQEhvc3RMaXN0ZW5lcignZG9jdW1lbnQ6Y2xpY2snLCBbJyRldmVudCddKVxuICBjbGlja291dChldmVudDogRXZlbnQpIHtcbiAgICBpZiAoXG4gICAgICAvLyBDaGVjayBpZiB0aGUgY2xpY2sgd2FzIG91dHNpZGUgdGhlIGRyb3Bkb3duXG4gICAgICAvLyBhbmQgdGhlIGRyb3Bkb3duIGlzIG9wZW5cbiAgICAgIC8vIGFuZCB0aGUgY2xpY2sgd2FzIG5vdCBvbiB0aGUgYnV0dG9uXG4gICAgICAvLyB0aGVuIGNsb3NlIHRoZSBkcm9wZG93blxuICAgICAgIXRoaXMuZHJvcGRvd24oKT8ubmF0aXZlRWxlbWVudC5jb250YWlucyhldmVudC50YXJnZXQpXG4gICAgICAmJiB0aGlzLmlzT3BlblxuICAgICAgJiYgIXRoaXMudHJpZ2dlcigpPy5uYXRpdmVFbGVtZW50LmNvbnRhaW5zKGV2ZW50LnRhcmdldClcbiAgICApIHtcbiAgICAgIHRoaXMuaXNPcGVuLnNldChmYWxzZSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEhhbmRsZXMgdGhlIGNsaWNrIGV2ZW50IG9uIHRoZSBkcm9wZG93biBjb250ZW50LlxuICAgKiBJZiB0aGUgYGF1dG9DbG9zZWAgbWV0aG9kIHJldHVybnMgdHJ1ZSwgaXQgdHJpZ2dlcnMgdGhlIGBjbG9zZWAgbWV0aG9kIHRvIGNsb3NlIHRoZSBkcm9wZG93bi5cbiAgICovXG4gIGNvbnRlbnRDbGlja2VkKCkge1xuICAgIGlmICh0aGlzLmF1dG9DbG9zZSgpKSB0aGlzLmNsb3NlKCk7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,5 @@
1
+ export * from "./dropdown";
2
+ export * from "./menu";
3
+ export * from "./metadata";
4
+ export * from "./theme";
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hdG9taWMtYW5ndWxhci9zcmMvbGliL2NvbXBvbmVudHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxZQUFZLENBQUM7QUFDM0IsY0FBYyxRQUFRLENBQUM7QUFDdkIsY0FBYyxZQUFZLENBQUM7QUFDM0IsY0FBYyxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tIFwiLi9kcm9wZG93blwiO1xyXG5leHBvcnQgKiBmcm9tIFwiLi9tZW51XCI7XHJcbmV4cG9ydCAqIGZyb20gXCIuL21ldGFkYXRhXCI7XHJcbmV4cG9ydCAqIGZyb20gXCIuL3RoZW1lXCI7XHJcblxyXG4iXX0=
@@ -0,0 +1,3 @@
1
+ export * from './menu-item';
2
+ export * from './menu';
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hdG9taWMtYW5ndWxhci9zcmMvbGliL2NvbXBvbmVudHMvbWVudS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGFBQWEsQ0FBQztBQUM1QixjQUFjLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vbWVudS1pdGVtJztcbmV4cG9ydCAqIGZyb20gJy4vbWVudSc7XG4iXX0=
@@ -0,0 +1,22 @@
1
+ import { NgClass } from "@angular/common";
2
+ import { Component } from "@angular/core";
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "./menu";
5
+ export class MenuItemComponent {
6
+ constructor(menu) {
7
+ this.menu = menu;
8
+ }
9
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: MenuItemComponent, deps: [{ token: i1.MenuComponent }], target: i0.ɵɵFactoryTarget.Component }); }
10
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.5", type: MenuItemComponent, isStandalone: true, selector: "sq-menu-item, menu-item, MenuItem", host: { classAttribute: "data-list-item flex gap-2 items-center justify-start py-2 px-4 text-sm cursor-pointer" }, ngImport: i0, template: `
11
+ <ng-content></ng-content>
12
+ `, isInline: true, styles: [":host[disabled]{cursor:default}\n"] }); }
13
+ }
14
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: MenuItemComponent, decorators: [{
15
+ type: Component,
16
+ args: [{ selector: "sq-menu-item, menu-item, MenuItem", standalone: true, imports: [NgClass], template: `
17
+ <ng-content></ng-content>
18
+ `, host: {
19
+ class: 'data-list-item flex gap-2 items-center justify-start py-2 px-4 text-sm cursor-pointer'
20
+ }, styles: [":host[disabled]{cursor:default}\n"] }]
21
+ }], ctorParameters: () => [{ type: i1.MenuComponent }] });
22
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVudS1pdGVtLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYXRvbWljLWFuZ3VsYXIvc3JjL2xpYi9jb21wb25lbnRzL21lbnUvbWVudS1pdGVtLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMxQyxPQUFPLEVBQUUsU0FBUyxFQUFnQyxNQUFNLGVBQWUsQ0FBQzs7O0FBbUJ4RSxNQUFNLE9BQU8saUJBQWlCO0lBQzVCLFlBQTRCLElBQW1CO1FBQW5CLFNBQUksR0FBSixJQUFJLENBQWU7SUFBRyxDQUFDOzhHQUR4QyxpQkFBaUI7a0dBQWpCLGlCQUFpQixnTkFabEI7O0NBRVg7OzJGQVVZLGlCQUFpQjtrQkFoQjdCLFNBQVM7K0JBQ0UsbUNBQW1DLGNBQ2pDLElBQUksV0FDUCxDQUFDLE9BQU8sQ0FBQyxZQUNSOztDQUVYLFFBQ087d0JBQ0osS0FBSyxFQUFFLHVGQUF1RjtxQkFDL0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ0NsYXNzIH0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vblwiO1xyXG5pbXBvcnQgeyBDb21wb25lbnQsIGNvbXB1dGVkLCBIb3N0QmluZGluZywgaW5wdXQgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBNZW51Q29tcG9uZW50IH0gZnJvbSBcIi4vbWVudVwiO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6IFwic3EtbWVudS1pdGVtLCBtZW51LWl0ZW0sIE1lbnVJdGVtXCIsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbTmdDbGFzc10sXHJcbiAgdGVtcGxhdGU6IGBcclxuICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XHJcbmAsXHJcbiAgaG9zdDoge1xyXG4gICAgY2xhc3M6ICdkYXRhLWxpc3QtaXRlbSBmbGV4IGdhcC0yIGl0ZW1zLWNlbnRlciBqdXN0aWZ5LXN0YXJ0IHB5LTIgcHgtNCB0ZXh0LXNtIGN1cnNvci1wb2ludGVyJ1xyXG4gIH0sXHJcbiAgc3R5bGVzOiBbYFxyXG4gICAgOmhvc3RbZGlzYWJsZWRdIHtcclxuICAgICAgY3Vyc29yOiBkZWZhdWx0O1xyXG4gICAgfVxyXG4gIGBdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBNZW51SXRlbUNvbXBvbmVudCB7XHJcbiAgY29uc3RydWN0b3IocHVibGljIHJlYWRvbmx5IG1lbnU6IE1lbnVDb21wb25lbnQpIHt9XHJcbn0iXX0=
@@ -0,0 +1,99 @@
1
+ import { NgClass } from '@angular/common';
2
+ import { Component, HostListener, ViewEncapsulation, input, signal, viewChild } from '@angular/core';
3
+ import { autoUpdate, computePosition, flip, offset, shift } from '@floating-ui/dom';
4
+ import { cn } from '../../utils/tailwind-utils';
5
+ import * as i0 from "@angular/core";
6
+ export class MenuComponent {
7
+ constructor() {
8
+ this.cn = cn;
9
+ this.default = "z-10 bg-white rounded-md border border-gray-300 shadow absolute text-sm";
10
+ this.isOpen = signal(false);
11
+ this.position = input('bottom-start');
12
+ this.className = input();
13
+ this.disabled = input();
14
+ this.autoClose = input(false);
15
+ this.dropdown = viewChild('dropdown');
16
+ this.trigger = viewChild('trigger');
17
+ this.width = signal(0);
18
+ }
19
+ ngAfterViewInit() {
20
+ autoUpdate(this.trigger()?.nativeElement, this.dropdown()?.nativeElement, () => {
21
+ if (!this.isOpen())
22
+ return;
23
+ this.calculatePosition();
24
+ });
25
+ }
26
+ toggle(e) {
27
+ e.stopPropagation();
28
+ if (this.disabled())
29
+ return;
30
+ this.isOpen.update(() => !this.isOpen());
31
+ this.calculatePosition();
32
+ }
33
+ close() {
34
+ this.isOpen.set(false);
35
+ }
36
+ calculatePosition() {
37
+ computePosition(this.trigger()?.nativeElement, this.dropdown()?.nativeElement, {
38
+ placement: this.position(),
39
+ middleware: [offset(8), flip(), shift()],
40
+ }).then(({ x, y }) => {
41
+ this.dropdown().nativeElement.style.left = x + 'px';
42
+ this.dropdown().nativeElement.style.top = y + 'px';
43
+ this.width.set(this.trigger()?.nativeElement.offsetWidth);
44
+ });
45
+ }
46
+ contentClicked(e) {
47
+ e.stopPropagation();
48
+ if (this.autoClose())
49
+ this.close();
50
+ }
51
+ // Onclick outside the dropdown, close it
52
+ clickout(event) {
53
+ if (!this.dropdown()?.nativeElement.contains(event.target) &&
54
+ this.isOpen &&
55
+ !this.trigger()?.nativeElement.contains(event.target)) {
56
+ this.isOpen.set(false);
57
+ }
58
+ }
59
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: MenuComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
60
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "18.2.5", type: MenuComponent, isStandalone: true, selector: "sq-menu, Menu", inputs: { position: { classPropertyName: "position", publicName: "position", isSignal: true, isRequired: false, transformFunction: null }, className: { classPropertyName: "className", publicName: "className", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, autoClose: { classPropertyName: "autoClose", publicName: "autoClose", isSignal: true, isRequired: false, transformFunction: null } }, host: { listeners: { "document:click": "clickout($event)" } }, viewQueries: [{ propertyName: "dropdown", first: true, predicate: ["dropdown"], descendants: true, isSignal: true }, { propertyName: "trigger", first: true, predicate: ["trigger"], descendants: true, isSignal: true }], ngImport: i0, template: `
61
+ <div #trigger class="select-none" (click)="toggle($event)">
62
+ <ng-content></ng-content>
63
+ </div>
64
+ <div #dropdown
65
+ [ngClass]= "cn(default, className(), disabled() && 'disabled cursor-default opacity-50 hover:bg-transparent')"
66
+ [style.display]="isOpen() ? 'block' : 'none'"
67
+ [style.width]="width() + 'px'"
68
+ (click)="contentClicked($event)"
69
+ >
70
+ <ng-content select="[menu-content]"></ng-content>
71
+ </div>
72
+ `, isInline: true, dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], encapsulation: i0.ViewEncapsulation.None }); }
73
+ }
74
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: MenuComponent, decorators: [{
75
+ type: Component,
76
+ args: [{
77
+ selector: 'sq-menu, Menu',
78
+ standalone: true,
79
+ imports: [NgClass],
80
+ encapsulation: ViewEncapsulation.None,
81
+ template: `
82
+ <div #trigger class="select-none" (click)="toggle($event)">
83
+ <ng-content></ng-content>
84
+ </div>
85
+ <div #dropdown
86
+ [ngClass]= "cn(default, className(), disabled() && 'disabled cursor-default opacity-50 hover:bg-transparent')"
87
+ [style.display]="isOpen() ? 'block' : 'none'"
88
+ [style.width]="width() + 'px'"
89
+ (click)="contentClicked($event)"
90
+ >
91
+ <ng-content select="[menu-content]"></ng-content>
92
+ </div>
93
+ `
94
+ }]
95
+ }], propDecorators: { clickout: [{
96
+ type: HostListener,
97
+ args: ['document:click', ['$event']]
98
+ }] } });
99
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVudS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2F0b21pYy1hbmd1bGFyL3NyYy9saWIvY29tcG9uZW50cy9tZW51L21lbnUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzFDLE9BQU8sRUFBaUIsU0FBUyxFQUFjLFlBQVksRUFBRSxpQkFBaUIsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNoSSxPQUFPLEVBQWEsVUFBVSxFQUFFLGVBQWUsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRS9GLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQzs7QUFxQmhELE1BQU0sT0FBTyxhQUFhO0lBbkIxQjtRQW9CRSxPQUFFLEdBQUcsRUFBRSxDQUFDO1FBRVIsWUFBTyxHQUFHLHlFQUF5RSxDQUFBO1FBRW5GLFdBQU0sR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDdkIsYUFBUSxHQUFHLEtBQUssQ0FBWSxjQUFjLENBQUMsQ0FBQztRQUM1QyxjQUFTLEdBQUcsS0FBSyxFQUFVLENBQUM7UUFDNUIsYUFBUSxHQUFHLEtBQUssRUFBVyxDQUFDO1FBQzVCLGNBQVMsR0FBRyxLQUFLLENBQVUsS0FBSyxDQUFDLENBQUM7UUFFbEMsYUFBUSxHQUFHLFNBQVMsQ0FBYSxVQUFVLENBQUMsQ0FBQztRQUM3QyxZQUFPLEdBQUcsU0FBUyxDQUFhLFNBQVMsQ0FBQyxDQUFDO1FBRTNDLFVBQUssR0FBRyxNQUFNLENBQVMsQ0FBQyxDQUFDLENBQUM7S0ErQzNCO0lBN0NDLGVBQWU7UUFDYixVQUFVLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxFQUFFLGFBQWEsRUFBRSxJQUFJLENBQUMsUUFBUSxFQUFFLEVBQUUsYUFBYSxFQUFFLEdBQUcsRUFBRTtZQUM3RSxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRTtnQkFBRSxPQUFPO1lBQzNCLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1FBQzNCLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELE1BQU0sQ0FBQyxDQUFRO1FBQ2IsQ0FBQyxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQ3BCLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUFFLE9BQU87UUFDNUIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQztRQUN6QyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztJQUMzQixDQUFDO0lBRUQsS0FBSztRQUNILElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3pCLENBQUM7SUFFRCxpQkFBaUI7UUFDZixlQUFlLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxFQUFFLGFBQWEsRUFBRSxJQUFJLENBQUMsUUFBUSxFQUFFLEVBQUUsYUFBYSxFQUFFO1lBQzdFLFNBQVMsRUFBRSxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQzFCLFVBQVUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxLQUFLLEVBQUUsQ0FBQztTQUN6QyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUE0QixFQUFFLEVBQUU7WUFDN0MsSUFBSSxDQUFDLFFBQVEsRUFBRyxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsSUFBSSxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUM7WUFDckQsSUFBSSxDQUFDLFFBQVEsRUFBRyxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsR0FBRyxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUM7WUFDcEQsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxFQUFFLGFBQWEsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUM1RCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxjQUFjLENBQUMsQ0FBUTtRQUNyQixDQUFDLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDcEIsSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFO1lBQUUsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ3JDLENBQUM7SUFFRCx5Q0FBeUM7SUFFekMsUUFBUSxDQUFDLEtBQVk7UUFDbkIsSUFDRSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsRUFBRSxhQUFhLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUM7WUFDdEQsSUFBSSxDQUFDLE1BQU07WUFDWCxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsRUFBRSxhQUFhLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsRUFDckQsQ0FBQztZQUNELElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3pCLENBQUM7SUFDSCxDQUFDOzhHQTVEVSxhQUFhO2tHQUFiLGFBQWEseTNCQWRkOzs7Ozs7Ozs7Ozs7R0FZVCw0REFkUyxPQUFPOzsyRkFnQk4sYUFBYTtrQkFuQnpCLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGVBQWU7b0JBQ3pCLFVBQVUsRUFBRSxJQUFJO29CQUNoQixPQUFPLEVBQUUsQ0FBQyxPQUFPLENBQUM7b0JBQ2xCLGFBQWEsRUFBRSxpQkFBaUIsQ0FBQyxJQUFJO29CQUNyQyxRQUFRLEVBQUU7Ozs7Ozs7Ozs7OztHQVlUO2lCQUNGOzhCQXFEQyxRQUFRO3NCQURQLFlBQVk7dUJBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ0NsYXNzIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEFmdGVyVmlld0luaXQsIENvbXBvbmVudCwgRWxlbWVudFJlZiwgSG9zdExpc3RlbmVyLCBWaWV3RW5jYXBzdWxhdGlvbiwgaW5wdXQsIHNpZ25hbCwgdmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBQbGFjZW1lbnQsIGF1dG9VcGRhdGUsIGNvbXB1dGVQb3NpdGlvbiwgZmxpcCwgb2Zmc2V0LCBzaGlmdCB9IGZyb20gJ0BmbG9hdGluZy11aS9kb20nO1xuXG5pbXBvcnQgeyBjbiB9IGZyb20gJy4uLy4uL3V0aWxzL3RhaWx3aW5kLXV0aWxzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3EtbWVudSwgTWVudScsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtOZ0NsYXNzXSxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgdGVtcGxhdGU6IGBcbiAgICA8ZGl2ICN0cmlnZ2VyIGNsYXNzPVwic2VsZWN0LW5vbmVcIiAoY2xpY2spPVwidG9nZ2xlKCRldmVudClcIj5cbiAgICAgICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICAgIDwvZGl2PlxuICAgIDxkaXYgI2Ryb3Bkb3duXG4gICAgICBbbmdDbGFzc109IFwiY24oZGVmYXVsdCwgY2xhc3NOYW1lKCksIGRpc2FibGVkKCkgJiYgJ2Rpc2FibGVkIGN1cnNvci1kZWZhdWx0IG9wYWNpdHktNTAgaG92ZXI6YmctdHJhbnNwYXJlbnQnKVwiXG4gICAgICBbc3R5bGUuZGlzcGxheV09XCJpc09wZW4oKSA/ICdibG9jaycgOiAnbm9uZSdcIlxuICAgICAgW3N0eWxlLndpZHRoXT1cIndpZHRoKCkgKyAncHgnXCJcbiAgICAgIChjbGljayk9XCJjb250ZW50Q2xpY2tlZCgkZXZlbnQpXCJcbiAgICA+XG4gICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbbWVudS1jb250ZW50XVwiPjwvbmctY29udGVudD5cbiAgICA8L2Rpdj5cbiAgYFxufSlcbmV4cG9ydCBjbGFzcyBNZW51Q29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCB7XG4gIGNuID0gY247XG5cbiAgZGVmYXVsdCA9IFwiei0xMCBiZy13aGl0ZSByb3VuZGVkLW1kIGJvcmRlciBib3JkZXItZ3JheS0zMDAgc2hhZG93IGFic29sdXRlIHRleHQtc21cIlxuXG4gIGlzT3BlbiA9IHNpZ25hbChmYWxzZSk7XG4gIHBvc2l0aW9uID0gaW5wdXQ8UGxhY2VtZW50PignYm90dG9tLXN0YXJ0Jyk7XG4gIGNsYXNzTmFtZSA9IGlucHV0PHN0cmluZz4oKTtcbiAgZGlzYWJsZWQgPSBpbnB1dDxib29sZWFuPigpO1xuICBhdXRvQ2xvc2UgPSBpbnB1dDxib29sZWFuPihmYWxzZSk7XG5cbiAgZHJvcGRvd24gPSB2aWV3Q2hpbGQ8RWxlbWVudFJlZj4oJ2Ryb3Bkb3duJyk7XG4gIHRyaWdnZXIgPSB2aWV3Q2hpbGQ8RWxlbWVudFJlZj4oJ3RyaWdnZXInKTtcblxuICB3aWR0aCA9IHNpZ25hbDxudW1iZXI+KDApO1xuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICBhdXRvVXBkYXRlKHRoaXMudHJpZ2dlcigpPy5uYXRpdmVFbGVtZW50LCB0aGlzLmRyb3Bkb3duKCk/Lm5hdGl2ZUVsZW1lbnQsICgpID0+IHtcbiAgICAgIGlmICghdGhpcy5pc09wZW4oKSkgcmV0dXJuO1xuICAgICAgdGhpcy5jYWxjdWxhdGVQb3NpdGlvbigpO1xuICAgIH0pO1xuICB9XG5cbiAgdG9nZ2xlKGU6IEV2ZW50KSB7XG4gICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICBpZiAodGhpcy5kaXNhYmxlZCgpKSByZXR1cm47XG4gICAgdGhpcy5pc09wZW4udXBkYXRlKCgpID0+ICF0aGlzLmlzT3BlbigpKTtcbiAgICB0aGlzLmNhbGN1bGF0ZVBvc2l0aW9uKCk7XG4gIH1cblxuICBjbG9zZSgpIHtcbiAgICB0aGlzLmlzT3Blbi5zZXQoZmFsc2UpO1xuICB9XG5cbiAgY2FsY3VsYXRlUG9zaXRpb24oKSB7XG4gICAgY29tcHV0ZVBvc2l0aW9uKHRoaXMudHJpZ2dlcigpPy5uYXRpdmVFbGVtZW50LCB0aGlzLmRyb3Bkb3duKCk/Lm5hdGl2ZUVsZW1lbnQsIHtcbiAgICAgIHBsYWNlbWVudDogdGhpcy5wb3NpdGlvbigpLFxuICAgICAgbWlkZGxld2FyZTogW29mZnNldCg4KSwgZmxpcCgpLCBzaGlmdCgpXSxcbiAgICB9KS50aGVuKCh7IHgsIHkgfTogeyB4OiBudW1iZXI7IHk6IG51bWJlciB9KSA9PiB7XG4gICAgICB0aGlzLmRyb3Bkb3duKCkhLm5hdGl2ZUVsZW1lbnQuc3R5bGUubGVmdCA9IHggKyAncHgnO1xuICAgICAgdGhpcy5kcm9wZG93bigpIS5uYXRpdmVFbGVtZW50LnN0eWxlLnRvcCA9IHkgKyAncHgnO1xuICAgICAgdGhpcy53aWR0aC5zZXQodGhpcy50cmlnZ2VyKCk/Lm5hdGl2ZUVsZW1lbnQub2Zmc2V0V2lkdGgpO1xuICAgIH0pO1xuICB9XG5cbiAgY29udGVudENsaWNrZWQoZTogRXZlbnQpIHtcbiAgICBlLnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIGlmICh0aGlzLmF1dG9DbG9zZSgpKSB0aGlzLmNsb3NlKCk7XG4gIH1cblxuICAvLyBPbmNsaWNrIG91dHNpZGUgdGhlIGRyb3Bkb3duLCBjbG9zZSBpdFxuICBASG9zdExpc3RlbmVyKCdkb2N1bWVudDpjbGljaycsIFsnJGV2ZW50J10pXG4gIGNsaWNrb3V0KGV2ZW50OiBFdmVudCkge1xuICAgIGlmIChcbiAgICAgICF0aGlzLmRyb3Bkb3duKCk/Lm5hdGl2ZUVsZW1lbnQuY29udGFpbnMoZXZlbnQudGFyZ2V0KSAmJlxuICAgICAgdGhpcy5pc09wZW4gJiZcbiAgICAgICF0aGlzLnRyaWdnZXIoKT8ubmF0aXZlRWxlbWVudC5jb250YWlucyhldmVudC50YXJnZXQpXG4gICAgKSB7XG4gICAgICB0aGlzLmlzT3Blbi5zZXQoZmFsc2UpO1xuICAgIH1cbiAgfVxufVxuIl19
@@ -0,0 +1,2 @@
1
+ export * from './metadata.component';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hdG9taWMtYW5ndWxhci9zcmMvbGliL2NvbXBvbmVudHMvbWV0YWRhdGEvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxzQkFBc0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vbWV0YWRhdGEuY29tcG9uZW50JztcbiJdfQ==