@sourceloop/search-client 5.0.2 → 5.2.2
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/README.md +99 -2
- package/esm2020/lib/lib-configuration.mjs +1 -1
- package/esm2020/lib/search/promise-api-adapter.service.mjs +26 -0
- package/esm2020/lib/search/search.component.mjs +55 -27
- package/esm2020/lib/search-lib.module.mjs +6 -6
- package/esm2020/lib/types.mjs +6 -2
- package/esm2020/public-api.mjs +2 -2
- package/fesm2015/sourceloop-search-client.mjs +85 -34
- package/fesm2015/sourceloop-search-client.mjs.map +1 -1
- package/fesm2020/sourceloop-search-client.mjs +88 -34
- package/fesm2020/sourceloop-search-client.mjs.map +1 -1
- package/lib/lib-configuration.d.ts +2 -1
- package/lib/search/promise-api-adapter.service.d.ts +7 -0
- package/lib/search/search.component.d.ts +9 -5
- package/lib/types.d.ts +5 -0
- package/package.json +5 -5
package/README.md
CHANGED
|
@@ -2,13 +2,15 @@
|
|
|
2
2
|
|
|
3
3
|
An Angular module that exports a component that can enable users to search over configured models using the search microservice provided in the sourceloop microservice catalog.
|
|
4
4
|
|
|
5
|
-
##
|
|
5
|
+
## Angular Module
|
|
6
|
+
|
|
7
|
+
### Installation
|
|
6
8
|
|
|
7
9
|
```sh
|
|
8
10
|
npm i @sourceloop/search-client
|
|
9
11
|
```
|
|
10
12
|
|
|
11
|
-
|
|
13
|
+
### Usage
|
|
12
14
|
|
|
13
15
|
Create a new Application using Angular CLI and import the SearchLibModule and add it to the imports array of the module. Also create a new service that implements the ISearchService interface exported by the search library. This service will be used by the exported component to make API calls whenever needed. You will have to update the providers section of your module with { provide: SEARCH_SERVICE_TOKEN, useExisting: Your_Service_Name }
|
|
14
16
|
Your module will then look something like this
|
|
@@ -152,3 +154,98 @@ To use the default icons you will have to import the following in your styles.sc
|
|
|
152
154
|
```
|
|
153
155
|
|
|
154
156
|
You can also choose to use your own icons by providing classes for icons in the configuration.
|
|
157
|
+
|
|
158
|
+
## Web Component
|
|
159
|
+
|
|
160
|
+
This library is also available as a [Web Component](https://developer.mozilla.org/en-US/docs/Web/Web_Components) so users of frameworks like React and Vue can also integrate this search element in their application with minimal effort.
|
|
161
|
+
|
|
162
|
+
### Installation
|
|
163
|
+
|
|
164
|
+
```sh
|
|
165
|
+
npm i @sourceloop/search-client
|
|
166
|
+
```
|
|
167
|
+
|
|
168
|
+
In the node modules you can find two files relevant to the element - `element/search-element.js` and `element/style.css`. How you serve and include these files in your non Angular project depend on the framework that you are using. For example, for Vanilla JS and HTML you can simply import the js and styles in your HTML ->
|
|
169
|
+
|
|
170
|
+
```html
|
|
171
|
+
<script type="text/javascript" src="search-element.js"></script>
|
|
172
|
+
```
|
|
173
|
+
|
|
174
|
+
### Usage
|
|
175
|
+
|
|
176
|
+
The web component accepts all the same inputs and services as the regular Angular Module, but instead of passing them through bindings and DI, you pass them as properties of the element as shown below.
|
|
177
|
+
|
|
178
|
+
```html
|
|
179
|
+
<!DOCTYPE html>
|
|
180
|
+
<html>
|
|
181
|
+
<head>
|
|
182
|
+
...
|
|
183
|
+
<link rel="stylesheet" href="assets/icomoon/style.css" />
|
|
184
|
+
<link rel="stylesheet" href="styles.css" />
|
|
185
|
+
...
|
|
186
|
+
</head>
|
|
187
|
+
<body>
|
|
188
|
+
<sourceloop-search-element></sourceloop-search-element>
|
|
189
|
+
<script type="text/javascript" src="search-element.js"></script>
|
|
190
|
+
<script>
|
|
191
|
+
document.addEventListener('DOMContentLoaded', () => {
|
|
192
|
+
const element = document.querySelector('sourceloop-search-element');
|
|
193
|
+
// Code to set inputs of the component
|
|
194
|
+
element.searchProvider = {
|
|
195
|
+
searchApiRequestWithPromise: () =>
|
|
196
|
+
Promise.resolve([
|
|
197
|
+
{
|
|
198
|
+
name: 'Test',
|
|
199
|
+
description: 'Test',
|
|
200
|
+
rank: 0.4,
|
|
201
|
+
source: 'ToDo',
|
|
202
|
+
},
|
|
203
|
+
{
|
|
204
|
+
name: 'Akshat',
|
|
205
|
+
description: 'Dubey',
|
|
206
|
+
rank: 0.4,
|
|
207
|
+
source: 'User',
|
|
208
|
+
},
|
|
209
|
+
]),
|
|
210
|
+
recentSearchApiRequestWithPromise: () => Promise.resolve([]),
|
|
211
|
+
};
|
|
212
|
+
element.config = new SearchConfiguration({
|
|
213
|
+
displayPropertyName: 'name',
|
|
214
|
+
models: [
|
|
215
|
+
{
|
|
216
|
+
name: 'ToDo',
|
|
217
|
+
displayName: 'List',
|
|
218
|
+
imageUrl: 'https://picsum.photos/id/1000/50',
|
|
219
|
+
},
|
|
220
|
+
{
|
|
221
|
+
name: 'User',
|
|
222
|
+
displayName: 'Users',
|
|
223
|
+
imageUrl: 'https://picsum.photos/id/1/50',
|
|
224
|
+
},
|
|
225
|
+
],
|
|
226
|
+
order: [`name ASC`, `description DESC`],
|
|
227
|
+
hideCategorizeButton: false,
|
|
228
|
+
placeholder: 'Search Programs, Projects or Dashboards',
|
|
229
|
+
categorizeResults: true,
|
|
230
|
+
saveInRecents: true,
|
|
231
|
+
limit: 4,
|
|
232
|
+
});
|
|
233
|
+
});
|
|
234
|
+
</script>
|
|
235
|
+
</body>
|
|
236
|
+
</html>
|
|
237
|
+
```
|
|
238
|
+
|
|
239
|
+
Note that the instance of `SearchService` passed to the element is following a different interface -
|
|
240
|
+
|
|
241
|
+
```ts
|
|
242
|
+
export interface ISearchServiceWithPromises<T extends IReturnType> {
|
|
243
|
+
searchApiRequestWithPromise(
|
|
244
|
+
requestParameters: ISearchQuery,
|
|
245
|
+
saveInRecents: boolean,
|
|
246
|
+
): Promise<T[]>;
|
|
247
|
+
recentSearchApiRequestWithPromise?(): Promise<ISearchQuery[]>;
|
|
248
|
+
}
|
|
249
|
+
```
|
|
250
|
+
|
|
251
|
+
This facilitates the use of the `Web Component` without relying on [rxjs](https://rxjs.dev/). You can still use the `Observable` based service if you want by importing the rxjs library manually.
|
|
@@ -60,4 +60,4 @@ function setIconClasses(d) {
|
|
|
60
60
|
recentSearchIconClass: d.recentSearchIconClass ?? 'icomoon Search',
|
|
61
61
|
};
|
|
62
62
|
}
|
|
63
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
63
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGliLWNvbmZpZ3VyYXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL2xpYi1jb25maWd1cmF0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUtBLE1BQU0sT0FBTyxhQUFhO0lBb0N4QixZQUFZLENBQW1CO1FBQzdCLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNqQixJQUFJLENBQUMsbUJBQW1CLEdBQUcsQ0FBQyxDQUFDLG1CQUFtQixDQUFDO1FBQ2pELElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQztRQUV2QjtvRUFDNEQ7UUFDNUQsSUFBSSxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDO1FBQ3JCLElBQUksQ0FBQyxXQUFXLEdBQUcsQ0FBQyxDQUFDLFdBQVcsQ0FBQztRQUNqQyxJQUFJLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUM7UUFDckIsSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxhQUFhLEdBQUcsQ0FBQyxDQUFDLGFBQWEsQ0FBQztRQUVyQyxNQUFNLFlBQVksR0FBRyxjQUFjLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDdkMsSUFBSSxDQUFDLGVBQWUsR0FBRyxZQUFZLENBQUMsZUFBZSxDQUFDO1FBQ3BELElBQUksQ0FBQyxXQUFXLEdBQUcsWUFBWSxDQUFDLFdBQVcsQ0FBQztRQUM1QyxJQUFJLENBQUMsbUJBQW1CLEdBQUcsWUFBWSxDQUFDLG1CQUFtQixDQUFDO1FBRTVELE1BQU0sWUFBWSxHQUFHLGVBQWUsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN4QyxJQUFJLENBQUMsaUJBQWlCLEdBQUcsWUFBWSxDQUFDLGlCQUFpQixDQUFDO1FBQ3hELElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxZQUFZLENBQUMsZ0JBQWdCLENBQUM7UUFDdEQsSUFBSSxDQUFDLG9CQUFvQixHQUFHLFlBQVksQ0FBQyxvQkFBb0IsQ0FBQztRQUM5RCxJQUFJLENBQUMsd0JBQXdCLEdBQUcsWUFBWSxDQUFDLHdCQUF3QixDQUFDO1FBQ3RFLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxZQUFZLENBQUMsaUJBQWlCLENBQUM7UUFFeEQsTUFBTSxPQUFPLEdBQUcsY0FBYyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ2xDLElBQUksQ0FBQyxlQUFlLEdBQUcsT0FBTyxDQUFDLGVBQWUsQ0FBQztRQUMvQyxJQUFJLENBQUMsY0FBYyxHQUFHLE9BQU8sQ0FBQyxjQUFjLENBQUM7UUFDN0MsSUFBSSxDQUFDLHVCQUF1QixHQUFHLE9BQU8sQ0FBQyx1QkFBdUIsQ0FBQztRQUMvRCxJQUFJLENBQUMscUJBQXFCLEdBQUcsT0FBTyxDQUFDLHFCQUFxQixDQUFDO0lBQzdELENBQUM7Q0FDRjtBQUNELFNBQVMsYUFBYSxDQUFJLENBQW1CO0lBQzNDLElBQ0UsQ0FBQyxDQUFDLGlCQUFpQixLQUFLLEtBQUs7UUFDN0IsQ0FBQyxDQUFDLENBQUMsb0JBQW9CLEtBQUssS0FBSyxJQUFJLENBQUMsQ0FBQyxvQkFBb0IsS0FBSyxTQUFTLENBQUMsRUFDMUU7UUFDQSxNQUFNLElBQUksS0FBSyxDQUNiLDBFQUEwRSxDQUMzRSxDQUFDO0tBQ0g7SUFDRCxJQUFJLENBQUMsQ0FBQyxhQUFhLEtBQUssS0FBSyxJQUFJLENBQUMsQ0FBQyx3QkFBd0IsS0FBSyxJQUFJLEVBQUU7UUFDcEUsTUFBTSxJQUFJLEtBQUssQ0FDYix1RUFBdUUsQ0FDeEUsQ0FBQztLQUNIO0FBQ0gsQ0FBQztBQUNELFNBQVMsY0FBYyxDQUFJLENBQW1CO0lBQzVDLE9BQU87UUFDTCxXQUFXLEVBQUUsQ0FBQyxDQUFDLFdBQVcsSUFBSSxRQUFRO1FBQ3RDLGVBQWUsRUFBRSxDQUFDLENBQUMsZUFBZSxJQUFJLGlCQUFpQjtRQUN2RCxtQkFBbUIsRUFBRSxDQUFDLENBQUMsbUJBQW1CO0tBQzNDLENBQUM7QUFDSixDQUFDO0FBQ0QsU0FBUyxlQUFlLENBQUksQ0FBbUI7SUFDN0MsT0FBTztRQUNMLGlCQUFpQixFQUFFLENBQUMsQ0FBQyxpQkFBaUIsSUFBSSxJQUFJO1FBQzlDLGdCQUFnQixFQUFFLENBQUMsQ0FBQyxnQkFBZ0IsSUFBSSxLQUFLO1FBQzdDLG9CQUFvQixFQUFFLENBQUMsQ0FBQyxvQkFBb0IsSUFBSSxLQUFLO1FBQ3JELHdCQUF3QixFQUFFLENBQUMsQ0FBQyx3QkFBd0IsSUFBSSxLQUFLO1FBQzdELGlCQUFpQixFQUFFLENBQUMsQ0FBQyxpQkFBaUIsSUFBSSxLQUFLO0tBQ2hELENBQUM7QUFDSixDQUFDO0FBQ0QsU0FBUyxjQUFjLENBQUksQ0FBbUI7SUFDNUMsT0FBTztRQUNMLGVBQWUsRUFBRSxDQUFDLENBQUMsZUFBZSxJQUFJLGdCQUFnQjtRQUN0RCxjQUFjLEVBQUUsQ0FBQyxDQUFDLGNBQWMsSUFBSSxlQUFlO1FBQ25ELHVCQUF1QixFQUFFLENBQUMsQ0FBQyx1QkFBdUIsSUFBSSxvQkFBb0I7UUFDMUUscUJBQXFCLEVBQUUsQ0FBQyxDQUFDLHFCQUFxQixJQUFJLGdCQUFnQjtLQUNuRSxDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCAoYykgMjAyMyBTb3VyY2VmdXNlIFRlY2hub2xvZ2llc1xuLy9cbi8vIFRoaXMgc29mdHdhcmUgaXMgcmVsZWFzZWQgdW5kZXIgdGhlIE1JVCBMaWNlbnNlLlxuLy8gaHR0cHM6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVRcbmltcG9ydCB7SURlZmF1bHRSZXR1cm5UeXBlLCBJTW9kZWx9IGZyb20gJy4vdHlwZXMnO1xuZXhwb3J0IGNsYXNzIENvbmZpZ3VyYXRpb248VCA9IElEZWZhdWx0UmV0dXJuVHlwZT4ge1xuICAvKiogcHJvcGVydHkgdG8gYmUgZGlzcGxheWVkIGluIHRoZSByZXN1bHRzICovXG4gIGRpc3BsYXlQcm9wZXJ0eU5hbWU6IGtleW9mIFQ7XG4gIC8qKiBsaXN0IG9mIG1vZGVsIGNvbmZpZ3VyYXRpb24gdG8gYmUgcmVuZGVyIGFuZCBjYXRlZ29yaXplIHNlYXJjaCByZXN1bHRzICovXG4gIG1vZGVsczogSU1vZGVsW107XG4gIC8qKiBtYXggbnVtYmVyIG9mIHJlc3VsdHMgKGJhc2VkIG9uIGxpbWl0QnlUeXBlIG9wdGlvbikgKi9cbiAgbGltaXQ/OiBudW1iZXI7XG4gIC8qKiBhcHBseSBsaW1pdCBvbiBpbmRpdmlkdWFsIG1vZGVscywgb3Igb24gb3ZlcmFsbCByZXN1bHRzICovXG4gIGxpbWl0QnlUeXBlPzogYm9vbGVhbjtcbiAgLyoqIGFwcGx5IGEgcGFydGljdWxhciBvcmRlcmluZyBvbiByZXN1bHRzICovXG4gIG9yZGVyPzogc3RyaW5nW107XG4gIC8qKiBvZmZzZXQgZm9yIHJlc3VsdHMgaW4gY2FzZSBsaW1pdCBpcyB1c2VkICovXG4gIG9mZnNldD86IG51bWJlcjtcbiAgLyoqIHNhdmUgdGhlIHNlYXJjaCBxdWVyeSBpbiByZWNlbnQgaGlzdG9yeSAqL1xuICBzYXZlSW5SZWNlbnRzPzogYm9vbGVhbjtcbiAgLyoqIGEgcGxhY2Vob2xkZXIgdG8gZGlzcGxheSBpbiB0aGUgc2VhcmNoIGJveCAqL1xuICBwbGFjZWhvbGRlcj86IHN0cmluZztcbiAgLyoqIGEgZnVuY3Rpb24gdG8gZ2VuZXJhdGUgcGxhY2Vob2xkZXIsIG92ZXJyaWRlcyB0aGUgcGxhY2Vob2xkZXIgcHJvcGVydHkgKi9cbiAgcGxhY2Vob2xkZXJGdW5jdGlvbj86IChpbnB1dDogc3RyaW5nLCBjYXRlZ29yeTogc3RyaW5nKSA9PiBzdHJpbmc7XG4gIC8qKiBjYXRlZ29yaXplIHJlc3VsdHMgb24gdGhlIGJhc2lzIG9mIG1vZGVscyBwcm92aWRlZCAqL1xuICBjYXRlZ29yaXplUmVzdWx0cz86IGJvb2xlYW47XG4gIC8qKiBoaWRlcyB0aGUgcmVjZW50IHNlYXJjaCBsaXN0ICovXG4gIGhpZGVSZWNlbnRTZWFyY2g/OiBib29sZWFuO1xuICAvKiogaGlkZSB0aGUgY2F0ZWdvcnkgc2VsZWN0aW9uIGJ1dHRvbiAqL1xuICBoaWRlQ2F0ZWdvcml6ZUJ1dHRvbj86IGJvb2xlYW47XG4gIC8qKiBzYXZlIHZhbHVlIGluIHJlY2VudCBzZWFyY2ggb25seSBvbiBlbnRlciBvciBjaGFuZ2UgaW4gY2F0ZWdvcnksXG4gICAqICBpZiBmYWxzZSwgYWxzbyBzYXZlZCBvbiB0eXBpbmcgKi9cbiAgc2F2ZUluUmVjZW50c09ubHlPbkVudGVyPzogYm9vbGVhbjtcbiAgLyoqIHNlYXJjaCBvbmx5IG9uIGVudGVyIGtleSBvciB3aGVuIGNhdGVnb3J5IGlzIGNoYW5nZWQgKi9cbiAgc2VhcmNoT25seU9uRW50ZXI/OiBib29sZWFuO1xuICBub1Jlc3VsdE1lc3NhZ2U/OiBzdHJpbmc7XG4gIHNlYXJjaEljb25DbGFzcz86IHN0cmluZztcbiAgY3Jvc3NJY29uQ2xhc3M/OiBzdHJpbmc7XG4gIGRyb3BEb3duQnV0dG9uSWNvbkNsYXNzPzogc3RyaW5nO1xuICByZWNlbnRTZWFyY2hJY29uQ2xhc3M/OiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3IoZDogQ29uZmlndXJhdGlvbjxUPikge1xuICAgIGNoZWNrRm9yRXJyb3IoZCk7XG4gICAgdGhpcy5kaXNwbGF5UHJvcGVydHlOYW1lID0gZC5kaXNwbGF5UHJvcGVydHlOYW1lO1xuICAgIHRoaXMubW9kZWxzID0gZC5tb2RlbHM7XG5cbiAgICAvKiBJUmVxdWVzdFBhcmFtZXRlcnMgLSB3aWxsIGJlIGdpdmVuIGRlZmF1bHQgdmFsdWVzIGJlZm9yZSBjYWxsIGlzIG1hZGUgaW4gY2FzZSB1bmRlZmluZWQvbnVsbCxcbiAgICBvdGhlcndpc2UgdGhlcmUgISBpcyB1c2VkIG9uIHdoaWNoIHNvbmFyIGdpdmVzIGNvZGUgc21lbGwgKi9cbiAgICB0aGlzLmxpbWl0ID0gZC5saW1pdDtcbiAgICB0aGlzLmxpbWl0QnlUeXBlID0gZC5saW1pdEJ5VHlwZTtcbiAgICB0aGlzLm9yZGVyID0gZC5vcmRlcjtcbiAgICB0aGlzLm9mZnNldCA9IGQub2Zmc2V0O1xuICAgIHRoaXMuc2F2ZUluUmVjZW50cyA9IGQuc2F2ZUluUmVjZW50cztcblxuICAgIGNvbnN0IGRpc3BsYXlUZXh0cyA9IHNldERpc3BsYXlUZXh0KGQpO1xuICAgIHRoaXMubm9SZXN1bHRNZXNzYWdlID0gZGlzcGxheVRleHRzLm5vUmVzdWx0TWVzc2FnZTtcbiAgICB0aGlzLnBsYWNlaG9sZGVyID0gZGlzcGxheVRleHRzLnBsYWNlaG9sZGVyO1xuICAgIHRoaXMucGxhY2Vob2xkZXJGdW5jdGlvbiA9IGRpc3BsYXlUZXh0cy5wbGFjZWhvbGRlckZ1bmN0aW9uO1xuXG4gICAgY29uc3Qgc2VhcmNoQ29uZmlnID0gc2V0U2VhcmNoQ29uZmlnKGQpO1xuICAgIHRoaXMuY2F0ZWdvcml6ZVJlc3VsdHMgPSBzZWFyY2hDb25maWcuY2F0ZWdvcml6ZVJlc3VsdHM7XG4gICAgdGhpcy5oaWRlUmVjZW50U2VhcmNoID0gc2VhcmNoQ29uZmlnLmhpZGVSZWNlbnRTZWFyY2g7XG4gICAgdGhpcy5oaWRlQ2F0ZWdvcml6ZUJ1dHRvbiA9IHNlYXJjaENvbmZpZy5oaWRlQ2F0ZWdvcml6ZUJ1dHRvbjtcbiAgICB0aGlzLnNhdmVJblJlY2VudHNPbmx5T25FbnRlciA9IHNlYXJjaENvbmZpZy5zYXZlSW5SZWNlbnRzT25seU9uRW50ZXI7XG4gICAgdGhpcy5zZWFyY2hPbmx5T25FbnRlciA9IHNlYXJjaENvbmZpZy5zZWFyY2hPbmx5T25FbnRlcjtcblxuICAgIGNvbnN0IGNsYXNzZXMgPSBzZXRJY29uQ2xhc3NlcyhkKTtcbiAgICB0aGlzLnNlYXJjaEljb25DbGFzcyA9IGNsYXNzZXMuc2VhcmNoSWNvbkNsYXNzO1xuICAgIHRoaXMuY3Jvc3NJY29uQ2xhc3MgPSBjbGFzc2VzLmNyb3NzSWNvbkNsYXNzO1xuICAgIHRoaXMuZHJvcERvd25CdXR0b25JY29uQ2xhc3MgPSBjbGFzc2VzLmRyb3BEb3duQnV0dG9uSWNvbkNsYXNzO1xuICAgIHRoaXMucmVjZW50U2VhcmNoSWNvbkNsYXNzID0gY2xhc3Nlcy5yZWNlbnRTZWFyY2hJY29uQ2xhc3M7XG4gIH1cbn1cbmZ1bmN0aW9uIGNoZWNrRm9yRXJyb3I8VD4oZDogQ29uZmlndXJhdGlvbjxUPikge1xuICBpZiAoXG4gICAgZC5jYXRlZ29yaXplUmVzdWx0cyA9PT0gZmFsc2UgJiZcbiAgICAoZC5oaWRlQ2F0ZWdvcml6ZUJ1dHRvbiA9PT0gZmFsc2UgfHwgZC5oaWRlQ2F0ZWdvcml6ZUJ1dHRvbiA9PT0gdW5kZWZpbmVkKVxuICApIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAnWW91IG11c3QgcHJvdmlkZSBoaWRlQ2F0ZWdvcml6ZUJ1dHRvbjp0cnVlIGFzIGNhdGVnb3JpemVSZXN1bHRzIGlzIGZhbHNlJyxcbiAgICApO1xuICB9XG4gIGlmIChkLnNhdmVJblJlY2VudHMgPT09IGZhbHNlICYmIGQuc2F2ZUluUmVjZW50c09ubHlPbkVudGVyID09PSB0cnVlKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgJ1lvdSBtdXN0IHByb3ZpZGUgc2F2ZUluUmVjZW50czp0cnVlIGZvciBzYXZlSW5SZWNlbnRzT25seU9uRW50ZXI6dHJ1ZScsXG4gICAgKTtcbiAgfVxufVxuZnVuY3Rpb24gc2V0RGlzcGxheVRleHQ8VD4oZDogQ29uZmlndXJhdGlvbjxUPikge1xuICByZXR1cm4ge1xuICAgIHBsYWNlaG9sZGVyOiBkLnBsYWNlaG9sZGVyID8/ICdTZWFyY2gnLFxuICAgIG5vUmVzdWx0TWVzc2FnZTogZC5ub1Jlc3VsdE1lc3NhZ2UgPz8gJ05vIHJlc3VsdCBmb3VuZCcsXG4gICAgcGxhY2Vob2xkZXJGdW5jdGlvbjogZC5wbGFjZWhvbGRlckZ1bmN0aW9uLFxuICB9O1xufVxuZnVuY3Rpb24gc2V0U2VhcmNoQ29uZmlnPFQ+KGQ6IENvbmZpZ3VyYXRpb248VD4pIHtcbiAgcmV0dXJuIHtcbiAgICBjYXRlZ29yaXplUmVzdWx0czogZC5jYXRlZ29yaXplUmVzdWx0cyA/PyB0cnVlLFxuICAgIGhpZGVSZWNlbnRTZWFyY2g6IGQuaGlkZVJlY2VudFNlYXJjaCA/PyBmYWxzZSxcbiAgICBoaWRlQ2F0ZWdvcml6ZUJ1dHRvbjogZC5oaWRlQ2F0ZWdvcml6ZUJ1dHRvbiA/PyBmYWxzZSxcbiAgICBzYXZlSW5SZWNlbnRzT25seU9uRW50ZXI6IGQuc2F2ZUluUmVjZW50c09ubHlPbkVudGVyID8/IGZhbHNlLFxuICAgIHNlYXJjaE9ubHlPbkVudGVyOiBkLnNlYXJjaE9ubHlPbkVudGVyID8/IGZhbHNlLFxuICB9O1xufVxuZnVuY3Rpb24gc2V0SWNvbkNsYXNzZXM8VD4oZDogQ29uZmlndXJhdGlvbjxUPikge1xuICByZXR1cm4ge1xuICAgIHNlYXJjaEljb25DbGFzczogZC5zZWFyY2hJY29uQ2xhc3MgPz8gJ2ljb21vb24gU2VhcmNoJyxcbiAgICBjcm9zc0ljb25DbGFzczogZC5jcm9zc0ljb25DbGFzcyA/PyAnaWNvbW9vbiBjbG9zZScsXG4gICAgZHJvcERvd25CdXR0b25JY29uQ2xhc3M6IGQuZHJvcERvd25CdXR0b25JY29uQ2xhc3MgPz8gJ2ljb21vb24gYXJyb3dfZG93bicsXG4gICAgcmVjZW50U2VhcmNoSWNvbkNsYXNzOiBkLnJlY2VudFNlYXJjaEljb25DbGFzcyA/PyAnaWNvbW9vbiBTZWFyY2gnLFxuICB9O1xufVxuIl19
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
2
|
+
import { from } from 'rxjs';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
export class PromiseApiAdapterService {
|
|
5
|
+
adapt(instance) {
|
|
6
|
+
// this is a workaround for the fact that the recentSearchApiRequestWithPromise
|
|
7
|
+
// method is optional in the ISearchServiceWithPromises interface
|
|
8
|
+
// and type system is not able maintain the type information of a property
|
|
9
|
+
const recentSearchMethod = instance.recentSearchApiRequestWithPromise;
|
|
10
|
+
return {
|
|
11
|
+
searchApiRequest: (requestParameters, saveInRecents) => from(instance.searchApiRequestWithPromise(requestParameters, saveInRecents)),
|
|
12
|
+
...(recentSearchMethod && {
|
|
13
|
+
recentSearchApiRequest: () => from(recentSearchMethod()),
|
|
14
|
+
}),
|
|
15
|
+
};
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
PromiseApiAdapterService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: PromiseApiAdapterService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
19
|
+
PromiseApiAdapterService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: PromiseApiAdapterService, providedIn: 'root' });
|
|
20
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: PromiseApiAdapterService, decorators: [{
|
|
21
|
+
type: Injectable,
|
|
22
|
+
args: [{
|
|
23
|
+
providedIn: 'root',
|
|
24
|
+
}]
|
|
25
|
+
}] });
|
|
26
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvbWlzZS1hcGktYWRhcHRlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2xpYi9zZWFyY2gvcHJvbWlzZS1hcGktYWRhcHRlci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFDLElBQUksRUFBQyxNQUFNLE1BQU0sQ0FBQzs7QUFVMUIsTUFBTSxPQUFPLHdCQUF3QjtJQUNuQyxLQUFLLENBQUMsUUFBdUM7UUFDM0MsK0VBQStFO1FBQy9FLGlFQUFpRTtRQUNqRSwwRUFBMEU7UUFDMUUsTUFBTSxrQkFBa0IsR0FBRyxRQUFRLENBQUMsaUNBQWlDLENBQUM7UUFDdEUsT0FBTztZQUNMLGdCQUFnQixFQUFFLENBQUMsaUJBQWlCLEVBQUUsYUFBYSxFQUFFLEVBQUUsQ0FDckQsSUFBSSxDQUNGLFFBQVEsQ0FBQywyQkFBMkIsQ0FDbEMsaUJBQWlCLEVBQ2pCLGFBQWEsQ0FDZCxDQUNGO1lBQ0gsR0FBRyxDQUFDLGtCQUFrQixJQUFJO2dCQUN4QixzQkFBc0IsRUFBRSxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQzthQUN6RCxDQUFDO1NBQ0gsQ0FBQztJQUNKLENBQUM7O3NIQWxCVSx3QkFBd0I7MEhBQXhCLHdCQUF3QixjQUZ2QixNQUFNOzRGQUVQLHdCQUF3QjtrQkFIcEMsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0luamVjdGFibGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtmcm9tfSBmcm9tICdyeGpzJztcbmltcG9ydCB7XG4gIElSZXR1cm5UeXBlLFxuICBJU2VhcmNoU2VydmljZSxcbiAgSVNlYXJjaFNlcnZpY2VXaXRoUHJvbWlzZXMsXG59IGZyb20gJy4uL3R5cGVzJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIFByb21pc2VBcGlBZGFwdGVyU2VydmljZTxUIGV4dGVuZHMgSVJldHVyblR5cGU+IHtcbiAgYWRhcHQoaW5zdGFuY2U6IElTZWFyY2hTZXJ2aWNlV2l0aFByb21pc2VzPFQ+KTogSVNlYXJjaFNlcnZpY2U8VD4ge1xuICAgIC8vIHRoaXMgaXMgYSB3b3JrYXJvdW5kIGZvciB0aGUgZmFjdCB0aGF0IHRoZSByZWNlbnRTZWFyY2hBcGlSZXF1ZXN0V2l0aFByb21pc2VcbiAgICAvLyBtZXRob2QgaXMgb3B0aW9uYWwgaW4gdGhlIElTZWFyY2hTZXJ2aWNlV2l0aFByb21pc2VzIGludGVyZmFjZVxuICAgIC8vIGFuZCB0eXBlIHN5c3RlbSBpcyBub3QgYWJsZSBtYWludGFpbiB0aGUgdHlwZSBpbmZvcm1hdGlvbiBvZiBhIHByb3BlcnR5XG4gICAgY29uc3QgcmVjZW50U2VhcmNoTWV0aG9kID0gaW5zdGFuY2UucmVjZW50U2VhcmNoQXBpUmVxdWVzdFdpdGhQcm9taXNlO1xuICAgIHJldHVybiB7XG4gICAgICBzZWFyY2hBcGlSZXF1ZXN0OiAocmVxdWVzdFBhcmFtZXRlcnMsIHNhdmVJblJlY2VudHMpID0+XG4gICAgICAgIGZyb20oXG4gICAgICAgICAgaW5zdGFuY2Uuc2VhcmNoQXBpUmVxdWVzdFdpdGhQcm9taXNlKFxuICAgICAgICAgICAgcmVxdWVzdFBhcmFtZXRlcnMsXG4gICAgICAgICAgICBzYXZlSW5SZWNlbnRzLFxuICAgICAgICAgICksXG4gICAgICAgICksXG4gICAgICAuLi4ocmVjZW50U2VhcmNoTWV0aG9kICYmIHtcbiAgICAgICAgcmVjZW50U2VhcmNoQXBpUmVxdWVzdDogKCkgPT4gZnJvbShyZWNlbnRTZWFyY2hNZXRob2QoKSksXG4gICAgICB9KSxcbiAgICB9O1xuICB9XG59XG4iXX0=
|