ngx-techlify-core 14.2.0 → 14.3.0

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.
@@ -1,8 +1,6 @@
1
1
  /**
2
2
  * Interface used to ensure we have a consistent structure across our listing pages
3
3
  *
4
- * @todo This should be moved to ngx-techlify-core
5
- *
6
4
  * Advantages of this abstract class
7
5
  * - Less code, less maintenance, less bugs
8
6
  * - more consistent code
@@ -12,53 +10,56 @@
12
10
  export class TechlifyServiceBaseClass {
13
11
  constructor(http, baseUrl) {
14
12
  this.http = http;
15
- this.baseUrl = "you-forgot-to-set-a-base-url";
13
+ this.baseUrl = 'you-forgot-to-set-a-base-url';
16
14
  this.baseUrl = baseUrl;
17
15
  }
18
16
  /**
19
17
  * Loads a set of the model this service is for
20
18
  *
21
- * @param filters Restrictors to filter the set of models
22
- * @returns
19
+ * @param params Query parameters
20
+ * @return Observable<any>
23
21
  */
24
- index(filters) {
25
- return this.http.get(`api/${this.baseUrl}`, { params: { ...filters } }).toPromise();
22
+ index(params) {
23
+ return this.http.get(`api/${this.baseUrl}`, { params });
26
24
  }
27
25
  /**
28
26
  * Add a new record to the database
29
27
  *
30
28
  * @param model The data of the model to add
31
- * @returns
29
+ * @param params Query parameters
30
+ * @return Observable<any>
32
31
  */
33
- store(model) {
34
- return this.http.post(`api/${this.baseUrl}`, model).toPromise();
32
+ store(model, params) {
33
+ return this.http.post(`api/${this.baseUrl}`, model, { params });
35
34
  }
36
35
  /**
37
36
  * Load a single model record, often with all relations and related data
38
37
  *
39
38
  * @param modelId ID of the model to load
40
- * @returns
39
+ * @param params Query parameters
40
+ * @return Observable<any>
41
41
  */
42
- show(modelId) {
43
- return this.http.get(`api/${this.baseUrl}/${modelId}`).toPromise();
42
+ show(modelId, params) {
43
+ return this.http.get(`api/${this.baseUrl}/${modelId}`, { params });
44
44
  }
45
45
  /**
46
46
  * Update fields of a single existing model
47
47
  *
48
48
  * @param model Model to update
49
- * @returns
49
+ * @param params Query parameters
50
+ * @return Observable<any>
50
51
  */
51
- update(model) {
52
- return this.http.put(`api/${this.baseUrl}/${model.id}`, model).toPromise();
52
+ update(model, params) {
53
+ return this.http.put(`api/${this.baseUrl}/${model.id}`, model, { params });
53
54
  }
54
55
  /**
55
56
  * Delete a single model
56
57
  *
57
58
  * @param model Model to delete
58
- * @returns
59
+ * @return Observable<any>
59
60
  */
60
61
  delete(model) {
61
- return this.http.delete(`api/${this.baseUrl}/${model.id}`).toPromise();
62
+ return this.http.delete(`api/${this.baseUrl}/${model.id}`);
62
63
  }
63
64
  }
64
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVjaGxpZnktc2VydmljZS5jbGFzcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC10ZWNobGlmeS1jb3JlL3NyYy9saWIvYmFzZS1tb2RlbC90ZWNobGlmeS1zZXJ2aWNlLmNsYXNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBOzs7Ozs7Ozs7O0dBVUc7QUFDSCxNQUFNLE9BQU8sd0JBQXdCO0lBSW5DLFlBQXNCLElBQWlCLEVBQUUsT0FBZTtRQUFsQyxTQUFJLEdBQUosSUFBSSxDQUFhO1FBRjdCLFlBQU8sR0FBRyw4QkFBOEIsQ0FBQztRQUdqRCxJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQztJQUN6QixDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxLQUFLLENBQUMsT0FBWTtRQUNoQixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sSUFBSSxDQUFDLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxFQUFFLEVBQUUsR0FBRyxPQUFPLEVBQUUsRUFBRSxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDdEYsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsS0FBSyxDQUFDLEtBQVU7UUFDZCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sSUFBSSxDQUFDLE9BQU8sRUFBRSxFQUFFLEtBQUssQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDO0lBQ2xFLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILElBQUksQ0FBQyxPQUFZO1FBQ2YsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUFPLElBQUksQ0FBQyxPQUFPLElBQUksT0FBTyxFQUFFLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQztJQUNyRSxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxNQUFNLENBQUMsS0FBVTtRQUNmLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsT0FBTyxJQUFJLENBQUMsT0FBTyxJQUFJLEtBQUssQ0FBQyxFQUFFLEVBQUUsRUFBRSxLQUFLLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQztJQUM3RSxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxNQUFNLENBQUMsS0FBVTtRQUNmLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxJQUFJLENBQUMsT0FBTyxJQUFJLEtBQUssQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDO0lBQ3pFLENBQUM7Q0FHRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBTZXJ2aWNlIH0gZnJvbSAnLi4vY29yZS9odHRwLnNlcnZpY2UnO1xyXG5cclxuLyoqXHJcbiAqIEludGVyZmFjZSB1c2VkIHRvIGVuc3VyZSB3ZSBoYXZlIGEgY29uc2lzdGVudCBzdHJ1Y3R1cmUgYWNyb3NzIG91ciBsaXN0aW5nIHBhZ2VzXHJcbiAqXHJcbiAqIEB0b2RvIFRoaXMgc2hvdWxkIGJlIG1vdmVkIHRvIG5neC10ZWNobGlmeS1jb3JlXHJcbiAqXHJcbiAqIEFkdmFudGFnZXMgb2YgdGhpcyBhYnN0cmFjdCBjbGFzc1xyXG4gKiAtIExlc3MgY29kZSwgbGVzcyBtYWludGVuYW5jZSwgbGVzcyBidWdzXHJcbiAqIC0gbW9yZSBjb25zaXN0ZW50IGNvZGVcclxuICogLSBjb21tZW50cyBvbiBtb3JlIGNvZGVcclxuICogLSBzYXZlIHRpbWUsIHNhdmUgZW5lcmd5XHJcbiAqL1xyXG5leHBvcnQgY2xhc3MgVGVjaGxpZnlTZXJ2aWNlQmFzZUNsYXNzIHtcclxuXHJcbiAgcHJvdGVjdGVkIGJhc2VVcmwgPSBcInlvdS1mb3Jnb3QtdG8tc2V0LWEtYmFzZS11cmxcIjtcclxuXHJcbiAgY29uc3RydWN0b3IocHJvdGVjdGVkIGh0dHA6IEh0dHBTZXJ2aWNlLCBiYXNlVXJsOiBzdHJpbmcpIHtcclxuICAgIHRoaXMuYmFzZVVybCA9IGJhc2VVcmw7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBMb2FkcyBhIHNldCBvZiB0aGUgbW9kZWwgdGhpcyBzZXJ2aWNlIGlzIGZvclxyXG4gICAqXHJcbiAgICogQHBhcmFtIGZpbHRlcnMgUmVzdHJpY3RvcnMgdG8gZmlsdGVyIHRoZSBzZXQgb2YgbW9kZWxzXHJcbiAgICogQHJldHVybnNcclxuICAgKi9cclxuICBpbmRleChmaWx0ZXJzOiBhbnkpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KGBhcGkvJHt0aGlzLmJhc2VVcmx9YCwgeyBwYXJhbXM6IHsgLi4uZmlsdGVycyB9IH0pLnRvUHJvbWlzZSgpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQWRkIGEgbmV3IHJlY29yZCB0byB0aGUgZGF0YWJhc2VcclxuICAgKlxyXG4gICAqIEBwYXJhbSBtb2RlbCBUaGUgZGF0YSBvZiB0aGUgbW9kZWwgdG8gYWRkXHJcbiAgICogQHJldHVybnNcclxuICAgKi9cclxuICBzdG9yZShtb2RlbDogYW55KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYGFwaS8ke3RoaXMuYmFzZVVybH1gLCBtb2RlbCkudG9Qcm9taXNlKCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBMb2FkIGEgc2luZ2xlIG1vZGVsIHJlY29yZCwgb2Z0ZW4gd2l0aCBhbGwgcmVsYXRpb25zIGFuZCByZWxhdGVkIGRhdGFcclxuICAgKlxyXG4gICAqIEBwYXJhbSBtb2RlbElkIElEIG9mIHRoZSBtb2RlbCB0byBsb2FkXHJcbiAgICogQHJldHVybnNcclxuICAgKi9cclxuICBzaG93KG1vZGVsSWQ6IGFueSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoYGFwaS8ke3RoaXMuYmFzZVVybH0vJHttb2RlbElkfWApLnRvUHJvbWlzZSgpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogVXBkYXRlIGZpZWxkcyBvZiBhIHNpbmdsZSBleGlzdGluZyBtb2RlbFxyXG4gICAqXHJcbiAgICogQHBhcmFtIG1vZGVsIE1vZGVsIHRvIHVwZGF0ZVxyXG4gICAqIEByZXR1cm5zXHJcbiAgICovXHJcbiAgdXBkYXRlKG1vZGVsOiBhbnkpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucHV0KGBhcGkvJHt0aGlzLmJhc2VVcmx9LyR7bW9kZWwuaWR9YCwgbW9kZWwpLnRvUHJvbWlzZSgpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogRGVsZXRlIGEgc2luZ2xlIG1vZGVsXHJcbiAgICpcclxuICAgKiBAcGFyYW0gbW9kZWwgTW9kZWwgdG8gZGVsZXRlXHJcbiAgICogQHJldHVybnNcclxuICAgKi9cclxuICBkZWxldGUobW9kZWw6IGFueSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5kZWxldGUoYGFwaS8ke3RoaXMuYmFzZVVybH0vJHttb2RlbC5pZH1gKS50b1Byb21pc2UoKTtcclxuICB9XHJcblxyXG5cclxufVxyXG4iXX0=
65
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVjaGxpZnktc2VydmljZS5jbGFzcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC10ZWNobGlmeS1jb3JlL3NyYy9saWIvYmFzZS1tb2RlbC90ZWNobGlmeS1zZXJ2aWNlLmNsYXNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBOzs7Ozs7OztHQVFHO0FBQ0gsTUFBTSxPQUFPLHdCQUF3QjtJQUluQyxZQUFzQixJQUFpQixFQUFFLE9BQWU7UUFBbEMsU0FBSSxHQUFKLElBQUksQ0FBYTtRQUY3QixZQUFPLEdBQUcsOEJBQThCLENBQUM7UUFHakQsSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUM7SUFDekIsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsS0FBSyxDQUFDLE1BQVk7UUFDaEIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUFPLElBQUksQ0FBQyxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUM7SUFDMUQsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNILEtBQUssQ0FBQyxLQUFVLEVBQUUsTUFBWTtRQUM1QixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sSUFBSSxDQUFDLE9BQU8sRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUM7SUFDbEUsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNILElBQUksQ0FBQyxPQUFZLEVBQUUsTUFBWTtRQUM3QixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sSUFBSSxDQUFDLE9BQU8sSUFBSSxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUM7SUFDckUsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNILE1BQU0sQ0FBQyxLQUFVLEVBQUUsTUFBWTtRQUM3QixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sSUFBSSxDQUFDLE9BQU8sSUFBSSxLQUFLLENBQUMsRUFBRSxFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQztJQUM3RSxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxNQUFNLENBQUMsS0FBVTtRQUNmLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxJQUFJLENBQUMsT0FBTyxJQUFJLEtBQUssQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQzdELENBQUM7Q0FHRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBTZXJ2aWNlIH0gZnJvbSAnLi4vY29yZSc7XHJcbmltcG9ydCB7T2JzZXJ2YWJsZX0gZnJvbSAncnhqcyc7XHJcblxyXG4vKipcclxuICogSW50ZXJmYWNlIHVzZWQgdG8gZW5zdXJlIHdlIGhhdmUgYSBjb25zaXN0ZW50IHN0cnVjdHVyZSBhY3Jvc3Mgb3VyIGxpc3RpbmcgcGFnZXNcclxuICpcclxuICogQWR2YW50YWdlcyBvZiB0aGlzIGFic3RyYWN0IGNsYXNzXHJcbiAqIC0gTGVzcyBjb2RlLCBsZXNzIG1haW50ZW5hbmNlLCBsZXNzIGJ1Z3NcclxuICogLSBtb3JlIGNvbnNpc3RlbnQgY29kZVxyXG4gKiAtIGNvbW1lbnRzIG9uIG1vcmUgY29kZVxyXG4gKiAtIHNhdmUgdGltZSwgc2F2ZSBlbmVyZ3lcclxuICovXHJcbmV4cG9ydCBjbGFzcyBUZWNobGlmeVNlcnZpY2VCYXNlQ2xhc3Mge1xyXG5cclxuICBwcm90ZWN0ZWQgYmFzZVVybCA9ICd5b3UtZm9yZ290LXRvLXNldC1hLWJhc2UtdXJsJztcclxuXHJcbiAgY29uc3RydWN0b3IocHJvdGVjdGVkIGh0dHA6IEh0dHBTZXJ2aWNlLCBiYXNlVXJsOiBzdHJpbmcpIHtcclxuICAgIHRoaXMuYmFzZVVybCA9IGJhc2VVcmw7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBMb2FkcyBhIHNldCBvZiB0aGUgbW9kZWwgdGhpcyBzZXJ2aWNlIGlzIGZvclxyXG4gICAqXHJcbiAgICogQHBhcmFtIHBhcmFtcyBRdWVyeSBwYXJhbWV0ZXJzXHJcbiAgICogQHJldHVybiBPYnNlcnZhYmxlPGFueT5cclxuICAgKi9cclxuICBpbmRleChwYXJhbXM/OiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoYGFwaS8ke3RoaXMuYmFzZVVybH1gLCB7IHBhcmFtcyB9KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEFkZCBhIG5ldyByZWNvcmQgdG8gdGhlIGRhdGFiYXNlXHJcbiAgICpcclxuICAgKiBAcGFyYW0gbW9kZWwgVGhlIGRhdGEgb2YgdGhlIG1vZGVsIHRvIGFkZFxyXG4gICAqIEBwYXJhbSBwYXJhbXMgUXVlcnkgcGFyYW1ldGVyc1xyXG4gICAqIEByZXR1cm4gT2JzZXJ2YWJsZTxhbnk+XHJcbiAgICovXHJcbiAgc3RvcmUobW9kZWw6IGFueSwgcGFyYW1zPzogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgYXBpLyR7dGhpcy5iYXNlVXJsfWAsIG1vZGVsLCB7IHBhcmFtcyB9KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIExvYWQgYSBzaW5nbGUgbW9kZWwgcmVjb3JkLCBvZnRlbiB3aXRoIGFsbCByZWxhdGlvbnMgYW5kIHJlbGF0ZWQgZGF0YVxyXG4gICAqXHJcbiAgICogQHBhcmFtIG1vZGVsSWQgSUQgb2YgdGhlIG1vZGVsIHRvIGxvYWRcclxuICAgKiBAcGFyYW0gcGFyYW1zIFF1ZXJ5IHBhcmFtZXRlcnNcclxuICAgKiBAcmV0dXJuIE9ic2VydmFibGU8YW55PlxyXG4gICAqL1xyXG4gIHNob3cobW9kZWxJZDogYW55LCBwYXJhbXM/OiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoYGFwaS8ke3RoaXMuYmFzZVVybH0vJHttb2RlbElkfWAsIHsgcGFyYW1zIH0pO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogVXBkYXRlIGZpZWxkcyBvZiBhIHNpbmdsZSBleGlzdGluZyBtb2RlbFxyXG4gICAqXHJcbiAgICogQHBhcmFtIG1vZGVsIE1vZGVsIHRvIHVwZGF0ZVxyXG4gICAqIEBwYXJhbSBwYXJhbXMgUXVlcnkgcGFyYW1ldGVyc1xyXG4gICAqIEByZXR1cm4gT2JzZXJ2YWJsZTxhbnk+XHJcbiAgICovXHJcbiAgdXBkYXRlKG1vZGVsOiBhbnksIHBhcmFtcz86IGFueSk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnB1dChgYXBpLyR7dGhpcy5iYXNlVXJsfS8ke21vZGVsLmlkfWAsIG1vZGVsLCB7IHBhcmFtcyB9KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIERlbGV0ZSBhIHNpbmdsZSBtb2RlbFxyXG4gICAqXHJcbiAgICogQHBhcmFtIG1vZGVsIE1vZGVsIHRvIGRlbGV0ZVxyXG4gICAqIEByZXR1cm4gT2JzZXJ2YWJsZTxhbnk+XHJcbiAgICovXHJcbiAgZGVsZXRlKG1vZGVsOiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5kZWxldGUoYGFwaS8ke3RoaXMuYmFzZVVybH0vJHttb2RlbC5pZH1gKTtcclxuICB9XHJcblxyXG5cclxufVxyXG4iXX0=
@@ -1,9 +1,8 @@
1
1
  /* tslint:disable:radix */
2
2
  import { Injectable } from '@angular/core';
3
- import * as moment from 'moment/moment';
3
+ import moment from 'moment';
4
4
  import * as i0 from "@angular/core";
5
5
  import * as i1 from "@angular/router";
6
- // import {isNumeric} from 'rxjs/internal-compatibility';
7
6
  export class RequestHelperService {
8
7
  constructor(router, activatedRoute) {
9
8
  this.router = router;
@@ -103,4 +102,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.7", ngImpor
103
102
  providedIn: 'root'
104
103
  }]
105
104
  }], ctorParameters: function () { return [{ type: i1.Router }, { type: i1.ActivatedRoute }]; } });
106
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVxdWVzdC1oZWxwZXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC10ZWNobGlmeS1jb3JlL3NyYy9saWIvcmVxdWVzdC1oZWxwZXIvcmVxdWVzdC1oZWxwZXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwwQkFBMEI7QUFDMUIsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUzQyxPQUFPLEtBQUssTUFBTSxNQUFNLGVBQWUsQ0FBQzs7O0FBRXhDLHlEQUF5RDtBQU16RCxNQUFNLE9BQU8sb0JBQW9CO0lBRS9CLFlBQ1UsTUFBYyxFQUNkLGNBQThCO1FBRDlCLFdBQU0sR0FBTixNQUFNLENBQVE7UUFDZCxtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7SUFDcEMsQ0FBQztJQUVMOzs7O09BSUc7SUFDSCx5QkFBeUIsQ0FBQyxTQUEyQixFQUFFLFVBQWU7UUFDcEUsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDO1FBQzdELEtBQUssTUFBTSxHQUFHLElBQUksU0FBUyxDQUFDLFFBQVEsRUFBRTtZQUNwQyxJQUFJLE1BQU0sQ0FBQyxTQUFTLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxFQUFFLEdBQUcsQ0FBQztnQkFDL0QsTUFBTSxDQUFDLFNBQVMsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxHQUFHLENBQUMsRUFBRTtnQkFDeEQsU0FBUyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLEVBQUUsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQzthQUMxRztTQUNGO0lBQ0gsQ0FBQztJ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O2lIQS9GUSxvQkFBb0I7cUhBQXBCLG9CQUFvQixjQUZuQixNQUFNOzJGQUVQLG9CQUFvQjtrQkFIaEMsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyIvKiB0c2xpbnQ6ZGlzYWJsZTpyYWRpeCAqL1xyXG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7QWN0aXZhdGVkUm91dGUsIFJvdXRlcn0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0ICogYXMgbW9tZW50IGZyb20gJ21vbWVudC9tb21lbnQnO1xyXG5pbXBvcnQge1VudHlwZWRGb3JtR3JvdXB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuLy8gaW1wb3J0IHtpc051bWVyaWN9IGZyb20gJ3J4anMvaW50ZXJuYWwtY29tcGF0aWJpbGl0eSc7XHJcblxyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgUmVxdWVzdEhlbHBlclNlcnZpY2Uge1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsXHJcbiAgICBwcml2YXRlIGFjdGl2YXRlZFJvdXRlOiBBY3RpdmF0ZWRSb3V0ZVxyXG4gICkgeyB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFVwZGF0ZSB0aGUgZm9ybSB2YWx1ZXMgZnJvbSB0aGUgVVJMIHF1ZXJ5IHBhcmFtcy5cclxuICAgKiBAcGFyYW0gZm9ybUdyb3VwIEZvcm1Hcm91cFxyXG4gICAqIEBwYXJhbSBmb3JtQ29uZmlnIEZvcm1Db25maWdcclxuICAgKi9cclxuICB1cGRhdGVGb3JtV2l0aFF1ZXJ5UGFyYW1zKGZvcm1Hcm91cDogVW50eXBlZEZvcm1Hcm91cCwgZm9ybUNvbmZpZzogYW55KTogdm9pZCB7XHJcbiAgICBjb25zdCBxdWVyeVBhcmFtcyA9IHRoaXMuYWN0aXZhdGVkUm91dGUuc25hcHNob3QucXVlcnlQYXJhbXM7XHJcbiAgICBmb3IgKGNvbnN0IGtleSBpbiBmb3JtR3JvdXAuY29udHJvbHMpIHtcclxuICAgICAgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChmb3JtR3JvdXAuY29udHJvbHMsIGtleSkgJiZcclxuICAgICAgICBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwocXVlcnlQYXJhbXMsIGtleSkpIHtcclxuICAgICAgICBmb3JtR3JvdXAuZ2V0KGtleSkucGF0Y2hWYWx1ZSh0aGlzLmZvcm1hdFZhbHVlKHF1ZXJ5UGFyYW1zW2tleV0sIGZvcm1Db25maWdba2V5XSksIHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQ29udmVydCB0aGUgb2JqZWN0IHRvIGZvcm0gZGF0YSBmb3IgdGhlIHJlcXVlc3QuXHJcbiAgICogQHBhcmFtIGRhdGEgRGF0YSBPYmplY3RcclxuICAgKiBAcmV0dXJuIE9iamVjdFxyXG4gICAqL1xyXG4gIGNvbnZlcnRUb0Zvcm1EYXRhKGRhdGE6IGFueSk6IGFueSB7XHJcbiAgICBjb25zdCBuZXdEYXRhID0ge307XHJcbiAgICBmb3IgKGNvbnN0IHByb3AgaW4gZGF0YSkge1xyXG4gICAgICBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGRhdGEsIHByb3ApKSB7XHJcbiAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkoZGF0YVtwcm9wXSkpIHtcclxuICAgICAgICAgIC8vIGNvbnZlcnQgYXJyYXkgdG8gY29tbWEgc2VwYXJhdGVkIHN0cmluZ1xyXG4gICAgICAgICAgbmV3RGF0YVtwcm9wXSA9IChkYXRhW3Byb3BdIGFzIFtdKS5qb2luKCcsJyk7XHJcbiAgICAgICAgfSBlbHNlIGlmICghTnVtYmVyLmlzSW50ZWdlcihOdW1iZXIucGFyc2VJbnQoZGF0YVtwcm9wXSkpICYmICFpc05hTihEYXRlLnBhcnNlKGRhdGFbcHJvcF0pKSkge1xyXG4gICAgICAgICAgLy8gY2hlY2sgaWYgdmFsdWUgaXMgZGF0ZSBhbmQgbm90IGEgbnVtYmVyXHJcbiAgICAgICAgICBjb25zdCBkYXRlICA9IG1vbWVudChkYXRhW3Byb3BdKS50b0lTT1N0cmluZygpO1xyXG4gICAgICAgICAgbmV3RGF0YVtwcm9wXSA9IG1vbWVudChkYXRlKS5mb3JtYXQoJ1ktTU0tREQnKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgbmV3RGF0YVtwcm9wXSA9IGRhdGFbcHJvcF07XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gbmV3RGF0YTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFVwZGF0ZSBVUkwgd2l0aCB0aGUgZmlsdGVycy5cclxuICAgKiBAcGFyYW0gcXVlcnlQYXJhbXMgUXVlcnkgUGFyYW1zXHJcbiAgICogQHJldHVybiBQcm9taXNlXHJcbiAgICovXHJcbiAgdXBkYXRlUXVlcnlQYXJhbXMocXVlcnlQYXJhbXM6IGFueSk6IFByb21pc2U8Ym9vbGVhbj4ge1xyXG4gICAgcmV0dXJuIHRoaXMucm91dGVyLm5hdmlnYXRlKFxyXG4gICAgICBbXSxcclxuICAgICAge1xyXG4gICAgICAgIHJlbGF0aXZlVG86IHRoaXMuYWN0aXZhdGVkUm91dGUsXHJcbiAgICAgICAgcXVlcnlQYXJhbXMsXHJcbiAgICAgICAgcXVlcnlQYXJhbXNIYW5kbGluZzogJ21lcmdlJ1xyXG4gICAgICB9XHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogRm9ybWF0IHZhbHVlLlxyXG4gICAqIEBkZXNjcmlwdGlvbiBDb252ZXJ0IHRoZSBjb21tYSBzZXBhcmF0ZWQgdmFsdWVzIHRvIGFycmF5IGlmIGl0IGlzIG11bHRpcGxlIHNlbGVjdGFibGUuXHJcbiAgICogQHBhcmFtIHZhbHVlIFZhbHVlIHRvIGJlIGNvbnZlcnRlZFxyXG4gICAqIEBwYXJhbSBmb3JtR3JvdXBFbGVtZW50IEZvcm0gZ3JvdXAgZWxlbWVudFxyXG4gICAqL1xyXG4gIGZvcm1hdFZhbHVlKHZhbHVlOiBzdHJpbmcsIGZvcm1Hcm91cEVsZW1lbnQ6IGFueSk6IHN0cmluZyB8IG51bWJlcltdIHwgbnVtYmVyIHwgYm9vbGVhbiB7XHJcbiAgICBpZiAodmFsdWUgJiYgZm9ybUdyb3VwRWxlbWVudD8ubXVsdGlwbGUgJiYgZm9ybUdyb3VwRWxlbWVudD8ubXVsdGlwbGUgPT09IHRydWUgKSB7XHJcbiAgICAgIGNvbnN0IGFycmF5ID0gdmFsdWU/LnNwbGl0KCcsJyk7XHJcbiAgICAgIHJldHVybiBhcnJheS5tYXAoKHZhbDogYW55KSA9PiB0aGlzLmlzTnVtZXJpYyh2YWwpID8gTnVtYmVyLnBhcnNlSW50KHZhbCkgOiB2YWwpO1xyXG4gICAgfSBlbHNlIGlmICh2YWx1ZSAmJiBmb3JtR3JvdXBFbGVtZW50Py5udW1iZXIgJiYgZm9ybUdyb3VwRWxlbWVudD8ubnVtYmVyID09PSB0cnVlKSB7XHJcbiAgICAgIHJldHVybiBOdW1iZXIucGFyc2VJbnQodmFsdWUpO1xyXG4gICAgfSBlbHNlIGlmICh2YWx1ZSAmJiBmb3JtR3JvdXBFbGVtZW50Py5ib29sZWFuKSB7XHJcbiAgICAgIHJldHVybiB2YWx1ZSA9PT0gJ3RydWUnO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuIHZhbHVlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQGRlc2NyaXB0aW9uIENoZWNrcyB2YWx1ZSB0byBkZXJ0bWluZSBpZiB0aGUgZ2l2ZW4gdmFsdWUgaXMgYSBudW1iZXJcclxuICAgKiBAcGFyYW0gdmFsdWUgVmFsdWUgdG8gYmUgQ2hlY2tlZFxyXG4gICAqL1xyXG4gIGlzTnVtZXJpYyhzdHI6c3RyaW5nKTpib29sZWFuIHtcclxuICAgIGlmICh0eXBlb2Ygc3RyICE9PSAnc3RyaW5nJykge1xyXG4gICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcbiAgXHJcbiAgICBpZiAoc3RyLnRyaW0oKSA9PT0gJycpIHtcclxuICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG4gIFxyXG4gICAgcmV0dXJuICFOdW1iZXIuaXNOYU4oTnVtYmVyKHN0cikpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiJdfQ==
105
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVxdWVzdC1oZWxwZXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC10ZWNobGlmeS1jb3JlL3NyYy9saWIvcmVxdWVzdC1oZWxwZXIvcmVxdWVzdC1oZWxwZXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwwQkFBMEI7QUFDMUIsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUzQyxPQUFPLE1BQU0sTUFBTSxRQUFRLENBQUM7OztBQU81QixNQUFNLE9BQU8sb0JBQW9CO0lBRS9CLFlBQ1UsTUFBYyxFQUNkLGNBQThCO1FBRDlCLFdBQU0sR0FBTixNQUFNLENBQVE7UUFDZCxtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7SUFDcEMsQ0FBQztJQUVMOzs7O09BSUc7SUFDSCx5QkFBeUIsQ0FBQyxTQUEyQixFQUFFLFVBQWU7UUFDcEUsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDO1FBQzdELEtBQUssTUFBTSxHQUFHLElBQUksU0FBUyxDQUFDLFFBQVEsRUFBRTtZQUNwQyxJQUFJLE1BQU0sQ0FBQyxTQUFTLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxFQUFFLEdBQUcsQ0FBQztnQkFDL0QsTUFBTSxDQUFDLFNBQVMsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxHQUFHLENBQUMsRUFBRTtnQkFDeEQsU0FBUyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLEVBQUUsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQzthQUMxRztTQUNGO0lBQ0gsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxp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QXBCLG9CQUFvQixjQUZuQixNQUFNOzJGQUVQLG9CQUFvQjtrQkFIaEMsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyIvKiB0c2xpbnQ6ZGlzYWJsZTpyYWRpeCAqL1xyXG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7QWN0aXZhdGVkUm91dGUsIFJvdXRlcn0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IG1vbWVudCBmcm9tICdtb21lbnQnO1xyXG5pbXBvcnQge1VudHlwZWRGb3JtR3JvdXB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuXHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBSZXF1ZXN0SGVscGVyU2VydmljZSB7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlcixcclxuICAgIHByaXZhdGUgYWN0aXZhdGVkUm91dGU6IEFjdGl2YXRlZFJvdXRlXHJcbiAgKSB7IH1cclxuXHJcbiAgLyoqXHJcbiAgICogVXBkYXRlIHRoZSBmb3JtIHZhbHVlcyBmcm9tIHRoZSBVUkwgcXVlcnkgcGFyYW1zLlxyXG4gICAqIEBwYXJhbSBmb3JtR3JvdXAgRm9ybUdyb3VwXHJcbiAgICogQHBhcmFtIGZvcm1Db25maWcgRm9ybUNvbmZpZ1xyXG4gICAqL1xyXG4gIHVwZGF0ZUZvcm1XaXRoUXVlcnlQYXJhbXMoZm9ybUdyb3VwOiBVbnR5cGVkRm9ybUdyb3VwLCBmb3JtQ29uZmlnOiBhbnkpOiB2b2lkIHtcclxuICAgIGNvbnN0IHF1ZXJ5UGFyYW1zID0gdGhpcy5hY3RpdmF0ZWRSb3V0ZS5zbmFwc2hvdC5xdWVyeVBhcmFtcztcclxuICAgIGZvciAoY29uc3Qga2V5IGluIGZvcm1Hcm91cC5jb250cm9scykge1xyXG4gICAgICBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGZvcm1Hcm91cC5jb250cm9scywga2V5KSAmJlxyXG4gICAgICAgIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChxdWVyeVBhcmFtcywga2V5KSkge1xyXG4gICAgICAgIGZvcm1Hcm91cC5nZXQoa2V5KS5wYXRjaFZhbHVlKHRoaXMuZm9ybWF0VmFsdWUocXVlcnlQYXJhbXNba2V5XSwgZm9ybUNvbmZpZ1trZXldKSwgeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBDb252ZXJ0IHRoZSBvYmplY3QgdG8gZm9ybSBkYXRhIGZvciB0aGUgcmVxdWVzdC5cclxuICAgKiBAcGFyYW0gZGF0YSBEYXRhIE9iamVjdFxyXG4gICAqIEByZXR1cm4gT2JqZWN0XHJcbiAgICovXHJcbiAgY29udmVydFRvRm9ybURhdGEoZGF0YTogYW55KTogYW55IHtcclxuICAgIGNvbnN0IG5ld0RhdGEgPSB7fTtcclxuICAgIGZvciAoY29uc3QgcHJvcCBpbiBkYXRhKSB7XHJcbiAgICAgIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZGF0YSwgcHJvcCkpIHtcclxuICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShkYXRhW3Byb3BdKSkge1xyXG4gICAgICAgICAgLy8gY29udmVydCBhcnJheSB0byBjb21tYSBzZXBhcmF0ZWQgc3RyaW5nXHJcbiAgICAgICAgICBuZXdEYXRhW3Byb3BdID0gKGRhdGFbcHJvcF0gYXMgW10pLmpvaW4oJywnKTtcclxuICAgICAgICB9IGVsc2UgaWYgKCFOdW1iZXIuaXNJbnRlZ2VyKE51bWJlci5wYXJzZUludChkYXRhW3Byb3BdKSkgJiYgIWlzTmFOKERhdGUucGFyc2UoZGF0YVtwcm9wXSkpKSB7XHJcbiAgICAgICAgICAvLyBjaGVjayBpZiB2YWx1ZSBpcyBkYXRlIGFuZCBub3QgYSBudW1iZXJcclxuICAgICAgICAgIGNvbnN0IGRhdGUgID0gbW9tZW50KGRhdGFbcHJvcF0pLnRvSVNPU3RyaW5nKCk7XHJcbiAgICAgICAgICBuZXdEYXRhW3Byb3BdID0gbW9tZW50KGRhdGUpLmZvcm1hdCgnWS1NTS1ERCcpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBuZXdEYXRhW3Byb3BdID0gZGF0YVtwcm9wXTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiBuZXdEYXRhO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogVXBkYXRlIFVSTCB3aXRoIHRoZSBmaWx0ZXJzLlxyXG4gICAqIEBwYXJhbSBxdWVyeVBhcmFtcyBRdWVyeSBQYXJhbXNcclxuICAgKiBAcmV0dXJuIFByb21pc2VcclxuICAgKi9cclxuICB1cGRhdGVRdWVyeVBhcmFtcyhxdWVyeVBhcmFtczogYW55KTogUHJvbWlzZTxib29sZWFuPiB7XHJcbiAgICByZXR1cm4gdGhpcy5yb3V0ZXIubmF2aWdhdGUoXHJcbiAgICAgIFtdLFxyXG4gICAgICB7XHJcbiAgICAgICAgcmVsYXRpdmVUbzogdGhpcy5hY3RpdmF0ZWRSb3V0ZSxcclxuICAgICAgICBxdWVyeVBhcmFtcyxcclxuICAgICAgICBxdWVyeVBhcmFtc0hhbmRsaW5nOiAnbWVyZ2UnXHJcbiAgICAgIH1cclxuICAgICk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBGb3JtYXQgdmFsdWUuXHJcbiAgICogQGRlc2NyaXB0aW9uIENvbnZlcnQgdGhlIGNvbW1hIHNlcGFyYXRlZCB2YWx1ZXMgdG8gYXJyYXkgaWYgaXQgaXMgbXVsdGlwbGUgc2VsZWN0YWJsZS5cclxuICAgKiBAcGFyYW0gdmFsdWUgVmFsdWUgdG8gYmUgY29udmVydGVkXHJcbiAgICogQHBhcmFtIGZvcm1Hcm91cEVsZW1lbnQgRm9ybSBncm91cCBlbGVtZW50XHJcbiAgICovXHJcbiAgZm9ybWF0VmFsdWUodmFsdWU6IHN0cmluZywgZm9ybUdyb3VwRWxlbWVudDogYW55KTogc3RyaW5nIHwgbnVtYmVyW10gfCBudW1iZXIgfCBib29sZWFuIHtcclxuICAgIGlmICh2YWx1ZSAmJiBmb3JtR3JvdXBFbGVtZW50Py5tdWx0aXBsZSAmJiBmb3JtR3JvdXBFbGVtZW50Py5tdWx0aXBsZSA9PT0gdHJ1ZSApIHtcclxuICAgICAgY29uc3QgYXJyYXkgPSB2YWx1ZT8uc3BsaXQoJywnKTtcclxuICAgICAgcmV0dXJuIGFycmF5Lm1hcCgodmFsOiBhbnkpID0+IHRoaXMuaXNOdW1lcmljKHZhbCkgPyBOdW1iZXIucGFyc2VJbnQodmFsKSA6IHZhbCk7XHJcbiAgICB9IGVsc2UgaWYgKHZhbHVlICYmIGZvcm1Hcm91cEVsZW1lbnQ/Lm51bWJlciAmJiBmb3JtR3JvdXBFbGVtZW50Py5udW1iZXIgPT09IHRydWUpIHtcclxuICAgICAgcmV0dXJuIE51bWJlci5wYXJzZUludCh2YWx1ZSk7XHJcbiAgICB9IGVsc2UgaWYgKHZhbHVlICYmIGZvcm1Hcm91cEVsZW1lbnQ/LmJvb2xlYW4pIHtcclxuICAgICAgcmV0dXJuIHZhbHVlID09PSAndHJ1ZSc7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXR1cm4gdmFsdWU7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBAZGVzY3JpcHRpb24gQ2hlY2tzIHZhbHVlIHRvIGRlcnRtaW5lIGlmIHRoZSBnaXZlbiB2YWx1ZSBpcyBhIG51bWJlclxyXG4gICAqIEBwYXJhbSB2YWx1ZSBWYWx1ZSB0byBiZSBDaGVja2VkXHJcbiAgICovXHJcbiAgaXNOdW1lcmljKHN0cjpzdHJpbmcpOmJvb2xlYW4ge1xyXG4gICAgaWYgKHR5cGVvZiBzdHIgIT09ICdzdHJpbmcnKSB7XHJcbiAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoc3RyLnRyaW0oKSA9PT0gJycpIHtcclxuICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiAhTnVtYmVyLmlzTmFOKE51bWJlcihzdHIpKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4iXX0=
@@ -55,7 +55,7 @@ import * as i11 from '@angular/material/progress-spinner';
55
55
  import { MatProgressSpinnerModule } from '@angular/material/progress-spinner';
56
56
  import * as i1$5 from '@angular/material/select';
57
57
  import { MatSelectModule } from '@angular/material/select';
58
- import moment$1 from 'moment';
58
+ import moment from 'moment';
59
59
  import * as i9$1 from '@angular/material/datepicker';
60
60
  import { MatDatepickerModule } from '@angular/material/datepicker';
61
61
  import * as i1$6 from '@angular/router';
@@ -74,7 +74,6 @@ import * as i3$2 from '@angular/platform-browser';
74
74
  import * as jsondiffpatch from 'jsondiffpatch';
75
75
  import * as i2$1 from '@angular/material/slide-toggle';
76
76
  import { MatSlideToggleModule } from '@angular/material/slide-toggle';
77
- import * as moment from 'moment/moment';
78
77
 
79
78
  class ActionPopup {
80
79
  }
@@ -203,8 +202,6 @@ class TechlifyListingControllerInterface {
203
202
  /**
204
203
  * Interface used to ensure we have a consistent structure across our listing pages
205
204
  *
206
- * @todo This should be moved to ngx-techlify-core
207
- *
208
205
  * Advantages of this abstract class
209
206
  * - Less code, less maintenance, less bugs
210
207
  * - more consistent code
@@ -214,53 +211,56 @@ class TechlifyListingControllerInterface {
214
211
  class TechlifyServiceBaseClass {
215
212
  constructor(http, baseUrl) {
216
213
  this.http = http;
217
- this.baseUrl = "you-forgot-to-set-a-base-url";
214
+ this.baseUrl = 'you-forgot-to-set-a-base-url';
218
215
  this.baseUrl = baseUrl;
219
216
  }
220
217
  /**
221
218
  * Loads a set of the model this service is for
222
219
  *
223
- * @param filters Restrictors to filter the set of models
224
- * @returns
220
+ * @param params Query parameters
221
+ * @return Observable<any>
225
222
  */
226
- index(filters) {
227
- return this.http.get(`api/${this.baseUrl}`, { params: Object.assign({}, filters) }).toPromise();
223
+ index(params) {
224
+ return this.http.get(`api/${this.baseUrl}`, { params });
228
225
  }
229
226
  /**
230
227
  * Add a new record to the database
231
228
  *
232
229
  * @param model The data of the model to add
233
- * @returns
230
+ * @param params Query parameters
231
+ * @return Observable<any>
234
232
  */
235
- store(model) {
236
- return this.http.post(`api/${this.baseUrl}`, model).toPromise();
233
+ store(model, params) {
234
+ return this.http.post(`api/${this.baseUrl}`, model, { params });
237
235
  }
238
236
  /**
239
237
  * Load a single model record, often with all relations and related data
240
238
  *
241
239
  * @param modelId ID of the model to load
242
- * @returns
240
+ * @param params Query parameters
241
+ * @return Observable<any>
243
242
  */
244
- show(modelId) {
245
- return this.http.get(`api/${this.baseUrl}/${modelId}`).toPromise();
243
+ show(modelId, params) {
244
+ return this.http.get(`api/${this.baseUrl}/${modelId}`, { params });
246
245
  }
247
246
  /**
248
247
  * Update fields of a single existing model
249
248
  *
250
249
  * @param model Model to update
251
- * @returns
250
+ * @param params Query parameters
251
+ * @return Observable<any>
252
252
  */
253
- update(model) {
254
- return this.http.put(`api/${this.baseUrl}/${model.id}`, model).toPromise();
253
+ update(model, params) {
254
+ return this.http.put(`api/${this.baseUrl}/${model.id}`, model, { params });
255
255
  }
256
256
  /**
257
257
  * Delete a single model
258
258
  *
259
259
  * @param model Model to delete
260
- * @returns
260
+ * @return Observable<any>
261
261
  */
262
262
  delete(model) {
263
- return this.http.delete(`api/${this.baseUrl}/${model.id}`).toPromise();
263
+ return this.http.delete(`api/${this.baseUrl}/${model.id}`);
264
264
  }
265
265
  }
266
266
 
@@ -3019,79 +3019,79 @@ function calculateTimeline(value) {
3019
3019
  break;
3020
3020
  }
3021
3021
  case Timeline.TODAY: { // Today
3022
- const now = moment$1();
3022
+ const now = moment();
3023
3023
  data.date_from = now.startOf('day').toISOString();
3024
3024
  data.date_to = now.endOf('day').toISOString();
3025
3025
  break;
3026
3026
  }
3027
3027
  case Timeline.YESTERDAY: { // Yesterday
3028
- const now = moment$1().subtract(1, 'day');
3028
+ const now = moment().subtract(1, 'day');
3029
3029
  data.date_from = now.startOf('day').toISOString();
3030
3030
  data.date_to = now.endOf('day').toISOString();
3031
3031
  break;
3032
3032
  }
3033
3033
  case Timeline.THIS_WEEK: { // This Week
3034
- const now = moment$1();
3034
+ const now = moment();
3035
3035
  data.date_from = now.startOf('isoWeek').toISOString();
3036
3036
  data.date_to = now.endOf('isoWeek').toISOString();
3037
3037
  break;
3038
3038
  }
3039
3039
  case Timeline.LAST_WEEK: { // Last Week
3040
- const now = moment$1().subtract(1, 'week');
3040
+ const now = moment().subtract(1, 'week');
3041
3041
  data.date_from = now.startOf('isoWeek').toISOString();
3042
3042
  data.date_to = now.endOf('isoWeek').toISOString();
3043
3043
  break;
3044
3044
  }
3045
3045
  case Timeline.THIS_MONTH: { // This Month
3046
- const now = moment$1();
3046
+ const now = moment();
3047
3047
  data.date_from = now.startOf('month').toISOString();
3048
3048
  data.date_to = now.endOf('month').toISOString();
3049
3049
  break;
3050
3050
  }
3051
3051
  case Timeline.LAST_MONTH: { // Last Month
3052
- const now = moment$1().subtract(1, 'month');
3052
+ const now = moment().subtract(1, 'month');
3053
3053
  data.date_from = now.startOf('month').toISOString();
3054
3054
  data.date_to = now.endOf('month').toISOString();
3055
3055
  break;
3056
3056
  }
3057
3057
  case Timeline.THIS_QUARTER: { // This Quarter
3058
- const now = moment$1();
3058
+ const now = moment();
3059
3059
  data.date_from = now.startOf('quarter').toISOString();
3060
3060
  data.date_to = now.endOf('quarter').toISOString();
3061
3061
  break;
3062
3062
  }
3063
3063
  case Timeline.LAST_QUARTER: { // Last Quarter
3064
- const now = moment$1().subtract(1, 'quarter');
3064
+ const now = moment().subtract(1, 'quarter');
3065
3065
  data.date_from = now.startOf('quarter').toISOString();
3066
3066
  data.date_to = now.endOf('quarter').toISOString();
3067
3067
  break;
3068
3068
  }
3069
3069
  case Timeline.THIS_YEAR: { // This Year
3070
- const now = moment$1();
3070
+ const now = moment();
3071
3071
  data.date_from = now.startOf('year').toISOString();
3072
3072
  data.date_to = now.endOf('year').toISOString();
3073
3073
  break;
3074
3074
  }
3075
3075
  case Timeline.LAST_YEAR: { // Last Year
3076
- const now = moment$1().subtract(1, 'year');
3076
+ const now = moment().subtract(1, 'year');
3077
3077
  data.date_from = now.startOf('year').toISOString();
3078
3078
  data.date_to = now.endOf('year').toISOString();
3079
3079
  break;
3080
3080
  }
3081
3081
  case Timeline.TOMMOROW: {
3082
- const now = moment$1().add(1, 'day');
3082
+ const now = moment().add(1, 'day');
3083
3083
  data.date_from = now.startOf('day').toISOString();
3084
3084
  data.date_to = now.endOf('day').toISOString();
3085
3085
  break;
3086
3086
  }
3087
3087
  case Timeline.NEXT_WEEK: {
3088
- const now = moment$1().add(1, 'week');
3088
+ const now = moment().add(1, 'week');
3089
3089
  data.date_from = now.startOf('isoWeek').toISOString();
3090
3090
  data.date_to = now.endOf('isoWeek').toISOString();
3091
3091
  break;
3092
3092
  }
3093
3093
  case Timeline.NEXT_MONTH: {
3094
- const now = moment$1().add(1, 'month');
3094
+ const now = moment().add(1, 'month');
3095
3095
  data.date_from = now.startOf('month').toISOString();
3096
3096
  data.date_to = now.endOf('month').toISOString();
3097
3097
  break;
@@ -7777,7 +7777,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.7", ngImpor
7777
7777
  }] });
7778
7778
 
7779
7779
  /* tslint:disable:radix */
7780
- // import {isNumeric} from 'rxjs/internal-compatibility';
7781
7780
  class RequestHelperService {
7782
7781
  constructor(router, activatedRoute) {
7783
7782
  this.router = router;