@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.
- package/assets/tailwind.css +248 -0
- package/esm2022/lib/assistant/index.mjs +2 -0
- package/esm2022/lib/assistant/signalR.web.service.mjs +81 -0
- package/esm2022/lib/components/dropdown.mjs +127 -0
- package/esm2022/lib/components/index.mjs +5 -0
- package/esm2022/lib/components/menu/index.mjs +3 -0
- package/esm2022/lib/components/menu/menu-item.mjs +22 -0
- package/esm2022/lib/components/menu/menu.mjs +99 -0
- package/esm2022/lib/components/metadata/index.mjs +2 -0
- package/esm2022/lib/components/metadata/metadata.component.mjs +65 -0
- package/esm2022/lib/components/theme/index.mjs +3 -0
- package/esm2022/lib/components/theme/theme-selector.component.mjs +67 -0
- package/esm2022/lib/components/theme/theme-toggle.component.mjs +67 -0
- package/esm2022/lib/directives/index.mjs +5 -0
- package/esm2022/lib/directives/infinite-scroll.directive.mjs +47 -0
- package/esm2022/lib/directives/select-article-on-click.directive.mjs +39 -0
- package/esm2022/lib/directives/show-bookmark.directive.mjs +55 -0
- package/esm2022/lib/directives/theme-provider.directive.mjs +31 -0
- package/esm2022/lib/guards/auth.guard.mjs +27 -0
- package/esm2022/lib/guards/index.mjs +3 -0
- package/esm2022/lib/guards/initialization.guard.mjs +41 -0
- package/esm2022/lib/interceptors/audit.interceptor.mjs +23 -0
- package/esm2022/lib/interceptors/auth.interceptor.mjs +49 -0
- package/esm2022/lib/interceptors/body.interceptor.mjs +24 -0
- package/esm2022/lib/interceptors/error.interceptor.mjs +35 -0
- package/esm2022/lib/interceptors/index.mjs +7 -0
- package/esm2022/lib/interceptors/toast.interceptor.mjs +27 -0
- package/esm2022/lib/models/aggregation.mjs +2 -0
- package/esm2022/lib/models/article-metadata.mjs +2 -0
- package/esm2022/lib/models/autocomplete.mjs +2 -0
- package/esm2022/lib/models/custom-json.mjs +2 -0
- package/esm2022/lib/models/filter-dropdown.mjs +2 -0
- package/esm2022/lib/models/index.mjs +7 -0
- package/esm2022/lib/models/user-settings.mjs +2 -0
- package/esm2022/lib/pipes/highlight-word.pipe.mjs +33 -0
- package/esm2022/lib/pipes/index.mjs +3 -0
- package/esm2022/lib/pipes/source-icon.pipe.mjs +43 -0
- package/esm2022/lib/providers/eager-provider.mjs +24 -0
- package/esm2022/lib/providers/index.mjs +2 -0
- package/esm2022/lib/public-api.mjs +19 -0
- package/esm2022/lib/resolvers/index.mjs +2 -0
- package/esm2022/lib/resolvers/query-name-resolver.mjs +14 -0
- package/esm2022/lib/resources/index.mjs +2 -0
- package/esm2022/lib/resources/themes.mjs +53 -0
- package/esm2022/lib/services/application.service.mjs +245 -0
- package/esm2022/lib/services/autocomplete.service.mjs +85 -0
- package/esm2022/lib/services/drawer/backdrop.service.mjs +23 -0
- package/esm2022/lib/services/drawer/drawer-stack.service.mjs +152 -0
- package/esm2022/lib/services/drawer/drawer.service.mjs +38 -0
- package/esm2022/lib/services/index.mjs +12 -0
- package/esm2022/lib/services/label.service.mjs +161 -0
- package/esm2022/lib/services/navigation.service.mjs +59 -0
- package/esm2022/lib/services/saved-searches.service.mjs +75 -0
- package/esm2022/lib/services/search.service.mjs +89 -0
- package/esm2022/lib/services/selection-history.service.mjs +92 -0
- package/esm2022/lib/services/selection.service.mjs +87 -0
- package/esm2022/lib/stores/aggregations.store.mjs +62 -0
- package/esm2022/lib/stores/app.store.mjs +265 -0
- package/esm2022/lib/stores/application.store.mjs +93 -0
- package/esm2022/lib/stores/index.mjs +9 -0
- package/esm2022/lib/stores/principal.store.mjs +47 -0
- package/esm2022/lib/stores/query-params.store.mjs +208 -0
- package/esm2022/lib/stores/selection.store.mjs +46 -0
- package/esm2022/lib/stores/theme.store.mjs +116 -0
- package/esm2022/lib/stores/user-settings.store.mjs +272 -0
- package/esm2022/lib/tokens/highlights.mjs +32 -0
- package/esm2022/lib/tokens/index.mjs +2 -0
- package/esm2022/lib/utils/debounced-signal.mjs +38 -0
- package/esm2022/lib/utils/index.mjs +8 -0
- package/esm2022/lib/utils/inline-worker.mjs +40 -0
- package/esm2022/lib/utils/query.mjs +58 -0
- package/esm2022/lib/utils/routes.mjs +28 -0
- package/esm2022/lib/utils/tailwind-utils.mjs +6 -0
- package/esm2022/lib/utils/theme-body-hook.mjs +18 -0
- package/esm2022/lib/utils/theme-registry.mjs +6 -0
- package/esm2022/lib/web-services/aggregations.service.mjs +104 -0
- package/esm2022/lib/web-services/app.service.mjs +48 -0
- package/esm2022/lib/web-services/audit.service.mjs +122 -0
- package/esm2022/lib/web-services/index.mjs +10 -0
- package/esm2022/lib/web-services/json-method-plugin.service.mjs +54 -0
- package/esm2022/lib/web-services/preview.service.mjs +327 -0
- package/esm2022/lib/web-services/principal.service.mjs +46 -0
- package/esm2022/lib/web-services/query.service.mjs +123 -0
- package/esm2022/lib/web-services/text-chunck.service.mjs +46 -0
- package/esm2022/public-api.mjs +5 -0
- package/esm2022/sinequa-atomic-angular.mjs +5 -0
- package/fesm2022/sinequa-atomic-angular.mjs +4204 -0
- package/fesm2022/sinequa-atomic-angular.mjs.map +1 -0
- package/index.d.ts +5 -0
- package/lib/assistant/index.d.ts +1 -0
- package/lib/assistant/signalR.web.service.d.ts +46 -0
- package/lib/components/dropdown.d.ts +50 -0
- package/lib/components/index.d.ts +4 -0
- package/lib/components/menu/index.d.ts +2 -0
- package/lib/components/menu/menu-item.d.ts +8 -0
- package/lib/components/menu/menu.d.ts +24 -0
- package/lib/components/metadata/index.d.ts +1 -0
- package/lib/components/metadata/metadata.component.d.ts +24 -0
- package/lib/components/theme/index.d.ts +2 -0
- package/lib/components/theme/theme-selector.component.d.ts +70 -0
- package/lib/components/theme/theme-toggle.component.d.ts +10 -0
- package/lib/directives/index.d.ts +4 -0
- package/lib/directives/infinite-scroll.directive.d.ts +30 -0
- package/lib/directives/select-article-on-click.directive.d.ts +14 -0
- package/lib/directives/show-bookmark.directive.d.ts +52 -0
- package/lib/directives/theme-provider.directive.d.ts +20 -0
- package/lib/guards/auth.guard.d.ts +7 -0
- package/lib/guards/index.d.ts +2 -0
- package/lib/guards/initialization.guard.d.ts +20 -0
- package/lib/interceptors/audit.interceptor.d.ts +13 -0
- package/lib/interceptors/auth.interceptor.d.ts +14 -0
- package/lib/interceptors/body.interceptor.d.ts +11 -0
- package/lib/interceptors/error.interceptor.d.ts +9 -0
- package/lib/interceptors/index.d.ts +5 -0
- package/lib/interceptors/toast.interceptor.d.ts +13 -0
- package/lib/models/aggregation.d.ts +12 -0
- package/lib/models/article-metadata.d.ts +5 -0
- package/lib/models/autocomplete.d.ts +5 -0
- package/lib/models/custom-json.d.ts +58 -0
- package/lib/models/filter-dropdown.d.ts +10 -0
- package/lib/models/index.d.ts +6 -0
- package/lib/models/user-settings.d.ts +32 -0
- package/lib/pipes/highlight-word.pipe.d.ts +22 -0
- package/lib/pipes/index.d.ts +2 -0
- package/lib/pipes/source-icon.pipe.d.ts +54 -0
- package/lib/providers/eager-provider.d.ts +11 -0
- package/lib/providers/index.d.ts +1 -0
- package/lib/public-api.d.ts +15 -0
- package/lib/resolvers/index.d.ts +1 -0
- package/lib/resolvers/query-name-resolver.d.ts +9 -0
- package/lib/resources/index.d.ts +1 -0
- package/lib/resources/themes.d.ts +51 -0
- package/lib/services/application.service.d.ts +178 -0
- package/lib/services/autocomplete.service.d.ts +91 -0
- package/lib/services/drawer/backdrop.service.d.ts +9 -0
- package/lib/services/drawer/drawer-stack.service.d.ts +70 -0
- package/lib/services/drawer/drawer.service.d.ts +15 -0
- package/lib/services/index.d.ts +11 -0
- package/lib/services/label.service.d.ts +117 -0
- package/lib/services/navigation.service.d.ts +33 -0
- package/lib/services/saved-searches.service.d.ts +145 -0
- package/lib/services/search.service.d.ts +155 -0
- package/lib/services/selection-history.service.d.ts +50 -0
- package/lib/services/selection.service.d.ts +127 -0
- package/lib/stores/aggregations.store.d.ts +50 -0
- package/lib/stores/app.store.d.ts +208 -0
- package/lib/stores/application.store.d.ts +106 -0
- package/lib/stores/index.d.ts +8 -0
- package/lib/stores/principal.store.d.ts +53 -0
- package/lib/stores/query-params.store.d.ts +187 -0
- package/lib/stores/selection.store.d.ts +62 -0
- package/lib/stores/theme.store.d.ts +55 -0
- package/lib/stores/user-settings.store.d.ts +161 -0
- package/lib/tokens/highlights.d.ts +8 -0
- package/lib/tokens/index.d.ts +1 -0
- package/lib/utils/debounced-signal.d.ts +25 -0
- package/lib/utils/index.d.ts +7 -0
- package/lib/utils/inline-worker.d.ts +11 -0
- package/lib/utils/query.d.ts +26 -0
- package/lib/utils/routes.d.ts +16 -0
- package/lib/utils/tailwind-utils.d.ts +2 -0
- package/lib/utils/theme-body-hook.d.ts +6 -0
- package/lib/utils/theme-registry.d.ts +3 -0
- package/lib/web-services/aggregations.service.d.ts +60 -0
- package/lib/web-services/app.service.d.ts +30 -0
- package/lib/web-services/audit.service.d.ts +75 -0
- package/lib/web-services/index.d.ts +9 -0
- package/lib/web-services/json-method-plugin.service.d.ts +41 -0
- package/lib/web-services/preview.service.d.ts +295 -0
- package/lib/web-services/principal.service.d.ts +28 -0
- package/lib/web-services/query.service.d.ts +29 -0
- package/lib/web-services/text-chunck.service.d.ts +22 -0
- package/package.json +28 -0
- 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==
|