Socket
Socket
Sign inDemoInstall

spinque-angular-ui

Package Overview
Dependencies
Maintainers
1
Versions
22
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

spinque-angular-ui - npm Package Compare versions

Comparing version 12.1.0 to 13.0.0

1

bundles/spinque-angular-ui-auth.umd.js

@@ -505,2 +505,3 @@ (function (global, factory) {

this.location = location;
console.log('HELLO');
// Check API version to determine if we're using Auth0 or not

@@ -507,0 +508,0 @@ var usingAuth0 = parseInt(this.apiConfig.version.split('.')[0], 10) >= 3;

@@ -41,3 +41,9 @@ (function (global, factory) {

if (changes.queryStack && changes.queryStack.currentValue) {
this.rest.getStatistics(changes.queryStack.currentValue).subscribe(function (res) { return (_this.statistics = res); }, function (error) { return console.log(error); });
this.statistics = undefined;
this.rest.getStatistics(changes.queryStack.currentValue).subscribe(function (res) {
_this.statistics = res;
}, function (error) {
_this.statistics = undefined;
console.log(error);
});
}

@@ -44,0 +50,0 @@ };

7

bundles/spinque-angular-ui-snippet.umd.js

@@ -50,3 +50,3 @@ (function (global, factory) {

// regex out of the needle
var regex = new RegExp(needle.split(' ').join('|'), 'ig');
var regex = new RegExp(needle.trim().split(' ').join('|'), 'ig');
// all sentences in the text

@@ -81,3 +81,2 @@ var sentences = text.split(/\.|\!|\?|\;|:/);

var n = bestSentencesMatches.filter(function (m) { return m.index > start && m.index < start + size; }).length;
console.log(n);
if (n > acc.n) {

@@ -93,3 +92,3 @@ return { start: start, n: n };

}
return lodash.truncate(text.substr(start), { length: size + 3 });
return lodash.truncate(text.substr(start), { length: size + 3 }).trim();
};

@@ -103,3 +102,3 @@ /**

}
var regex = needle.split(' ').join('|');
var regex = needle.trim().split(' ').join('|');
return text.replace(new RegExp(regex, 'ig'), function (match) { return '<mark class="highlight">' + match + '</mark>'; });

@@ -106,0 +105,0 @@ };

@@ -647,3 +647,3 @@ (function (global, factory) {

/**
* Get a SpinqueQuery from a stacked query by endpoint name
* Get a SpinqueQuery from a stacked query. Can be either an endpoint or a commit/snapshot.
*/

@@ -662,3 +662,3 @@ SpinqueQueryService.prototype.getQuery = function (queryStack, endpointOrCommit) {

/**
* Add a query with optional parameter to the query.
* Add an endpoint query with optional parameters to the query stack.
*/

@@ -684,3 +684,3 @@ SpinqueQueryService.prototype.addQuery = function (queryStack, endpoint, parameters) {

else {
draftStack.push(Object.assign(Object.assign({}, queryStack[index]), { parameters: parameters }));
draftStack.push({ endpoint: endpointOrCommit, parameters: parameters });
}

@@ -703,10 +703,2 @@ });

/**
* Replace the whole set of query endpoints in a query at once.
*/
SpinqueQueryService.prototype.updateQueryStack = function (queryStack, stack) {
return immer.produce(queryStack, function (draftStack) {
draftStack = stack;
});
};
/**
* Remove the last endpoint from the query.

@@ -713,0 +705,0 @@ */

@@ -23,2 +23,3 @@ import { Inject, NgModule } from '@angular/core';

this.location = location;
console.log('HELLO');
// Check API version to determine if we're using Auth0 or not

@@ -80,2 +81,2 @@ const usingAuth0 = parseInt(this.apiConfig.version.split('.')[0], 10) >= 3;

}] }, { type: i1.SpinqueAuthService }, { type: i2.SpinqueRestService }, { type: i3.Location }]; } });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BpbnF1ZS1hdXRoLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NwaW5xdWUtYW5ndWxhci11aS9hdXRoL3NyYy9zcGlucXVlLWF1dGgubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxNQUFNLEVBQXVCLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN0RSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3JDLE9BQU8sRUFBb0IscUJBQXFCLEVBQXNCLE1BQU0sb0JBQW9CLENBQUM7QUFDakcsT0FBTyxFQUFxQixzQkFBc0IsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRWxGLE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxNQUFNLG9DQUFvQyxDQUFDOzs7Ozs7QUFFbkY7O0dBRUc7QUFhSCxNQUFNLE9BQU8saUJBQWlCO0lBRTFCLFlBQzBDLFVBQTZCLEVBQzlCLFNBQTJCLEVBQzFELFdBQStCLEVBQy9CLElBQXdCLEVBQ3hCLFFBQWtCOztRQUpjLGVBQVUsR0FBVixVQUFVLENBQW1CO1FBQzlCLGNBQVMsR0FBVCxTQUFTLENBQWtCO1FBQzFELGdCQUFXLEdBQVgsV0FBVyxDQUFvQjtRQUMvQixTQUFJLEdBQUosSUFBSSxDQUFvQjtRQUN4QixhQUFRLEdBQVIsUUFBUSxDQUFVO1FBRTFCLDZEQUE2RDtRQUM3RCxNQUFNLFVBQVUsR0FBRyxRQUFRLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUUzRSxJQUFJLFVBQVUsS0FBSSxNQUFBLElBQUksQ0FBQyxVQUFVLDBDQUFFLGVBQWUsQ0FBQSxFQUFFO1lBQ2xELElBQUksQ0FBQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsR0FBRyxFQUFFO2dCQUNsQyxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxFQUFFLENBQUMsSUFBSSxDQUNyQyxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsT0FBTyxFQUFFLEVBQUUsYUFBYSxFQUFFLFVBQVUsS0FBSyxFQUFFLEVBQUUsRUFBRSxlQUFlLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUN6RixDQUFDO1lBQ0osQ0FBQyxDQUFDLENBQUM7U0FDSjtRQUVELDRGQUE0RjtRQUM1RixJQUFJLFVBQVUsS0FBSSxNQUFBLElBQUksQ0FBQyxVQUFVLDBDQUFFLGVBQWUsQ0FBQSxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFBLE1BQUEsSUFBSSxDQUFDLFVBQVUsMENBQUUsa0JBQWtCLENBQUEsRUFBRTtZQUN6SSxlQUFlO1lBQ2YsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLEVBQUUsQ0FBQztTQUMxQjtJQUNILENBQUM7SUFFRCxNQUFNLENBQUMsT0FBTyxDQUFDLE1BQXlCO1FBQ3RDLE9BQU87WUFDTCxRQUFRLEVBQUUsaUJBQWlCO1lBQzNCLFNBQVMsRUFBRTtnQkFDVDtvQkFDRSxPQUFPLEVBQUUsc0JBQXNCO29CQUMvQixRQUFRLEVBQUUsTUFBTTtpQkFDakI7YUFDRjtTQUNGLENBQUM7SUFDSixDQUFDOzs4R0FyQ1EsaUJBQWlCLGtCQUdoQixzQkFBc0IsYUFDdEIscUJBQXFCOytHQUp0QixpQkFBaUIsaUJBWGIsNkJBQTZCLHlDQVNsQyw2QkFBNkI7K0dBRTVCLGlCQUFpQixZQVZuQjtZQUNQLFlBQVksQ0FBQyxRQUFRLENBQUM7Z0JBQ3BCO29CQUNFLElBQUksRUFBRSxVQUFVO29CQUNoQixTQUFTLEVBQUUsNkJBQTZCO2lCQUN6QzthQUNGLENBQUM7U0FDSDsyRkFHVSxpQkFBaUI7a0JBWjdCLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFLENBQUMsNkJBQTZCLENBQUM7b0JBQzdDLE9BQU8sRUFBRTt3QkFDUCxZQUFZLENBQUMsUUFBUSxDQUFDOzRCQUNwQjtnQ0FDRSxJQUFJLEVBQUUsVUFBVTtnQ0FDaEIsU0FBUyxFQUFFLDZCQUE2Qjs2QkFDekM7eUJBQ0YsQ0FBQztxQkFDSDtvQkFDRCxPQUFPLEVBQUUsQ0FBQyw2QkFBNkIsQ0FBQztpQkFDekM7OzBCQUlNLE1BQU07MkJBQUMsc0JBQXNCOzswQkFDN0IsTUFBTTsyQkFBQyxxQkFBcUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBMb2NhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBJbmplY3QsIE1vZHVsZVdpdGhQcm92aWRlcnMsIE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBSb3V0ZXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgU3BpbnF1ZUFwaUNvbmZpZywgU3BpbnF1ZUFwaUNvbmZpZ1ZhbHVlLCBTcGlucXVlUmVzdFNlcnZpY2UgfSBmcm9tICdzcGlucXVlLWFuZ3VsYXItdWknO1xuaW1wb3J0IHsgU3BpbnF1ZUF1dGhDb25maWcsIFNwaW5xdWVBdXRoQ29uZmlnVmFsdWUgfSBmcm9tICcuL3NwaW5xdWUtYXV0aC5jb25maWcnO1xuaW1wb3J0IHsgU3BpbnF1ZUF1dGhTZXJ2aWNlIH0gZnJvbSAnLi9zcGlucXVlLWF1dGguc2VydmljZSc7XG5pbXBvcnQgeyBTcGlucXVlTG9naW5DYWxsYmFja0NvbXBvbmVudCB9IGZyb20gJy4vc3BpbnF1ZS1sb2dpbi1jYWxsYmFjay5jb21wb25lbnQnO1xuXG4vKipcbiAqIFNwaW5xdWVDb3JlTW9kdWxlIGluaXRpYWxpc2VzIGBzcGlucXVlLWFuZ3VsYXItdWlgIGFuZCBzaG91bGQgYWx3YXlzIGJlIGltcG9ydGVkIHdpdGggZm9yUm9vdC5cbiAqL1xuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbU3BpbnF1ZUxvZ2luQ2FsbGJhY2tDb21wb25lbnRdLFxuICBpbXBvcnRzOiBbXG4gICAgUm91dGVyTW9kdWxlLmZvckNoaWxkKFtcbiAgICAgIHtcbiAgICAgICAgcGF0aDogJ2NhbGxiYWNrJyxcbiAgICAgICAgY29tcG9uZW50OiBTcGlucXVlTG9naW5DYWxsYmFja0NvbXBvbmVudCxcbiAgICAgIH0sXG4gICAgXSksXG4gIF0sXG4gIGV4cG9ydHM6IFtTcGlucXVlTG9naW5DYWxsYmFja0NvbXBvbmVudF1cbn0pXG5leHBvcnQgY2xhc3MgU3BpbnF1ZUF1dGhNb2R1bGUge1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICBASW5qZWN0KFNwaW5xdWVBdXRoQ29uZmlnVmFsdWUpIHByaXZhdGUgYXV0aENvbmZpZzogU3BpbnF1ZUF1dGhDb25maWcsXG4gICAgICBASW5qZWN0KFNwaW5xdWVBcGlDb25maWdWYWx1ZSkgcHJpdmF0ZSBhcGlDb25maWc6IFNwaW5xdWVBcGlDb25maWcsXG4gICAgICBwcml2YXRlIGF1dGhTZXJ2aWNlOiBTcGlucXVlQXV0aFNlcnZpY2UsXG4gICAgICBwcml2YXRlIHJlc3Q6IFNwaW5xdWVSZXN0U2VydmljZSxcbiAgICAgIHByaXZhdGUgbG9jYXRpb246IExvY2F0aW9uXG4gICAgKSB7XG4gICAgICAvLyBDaGVjayBBUEkgdmVyc2lvbiB0byBkZXRlcm1pbmUgaWYgd2UncmUgdXNpbmcgQXV0aDAgb3Igbm90XG4gICAgICBjb25zdCB1c2luZ0F1dGgwID0gcGFyc2VJbnQodGhpcy5hcGlDb25maWcudmVyc2lvbi5zcGxpdCgnLicpWzBdLCAxMCkgPj0gMztcblxuICAgICAgaWYgKHVzaW5nQXV0aDAgJiYgdGhpcy5hdXRoQ29uZmlnPy5sb2dpbl9jbGllbnRfaWQpIHtcbiAgICAgICAgdGhpcy5yZXN0LmFkZEVucmljaFJlcXVlc3RIb29rKCgpID0+IHtcbiAgICAgICAgICByZXR1cm4gdGhpcy5hdXRoU2VydmljZS5nZXRUb2tlbigpLnBpcGUoXG4gICAgICAgICAgICBtYXAodG9rZW4gPT4gKHsgaGVhZGVyczogeyBBdXRob3JpemF0aW9uOiBgQmVhcmVyICR7dG9rZW59YCB9LCB3aXRoQ3JlZGVudGlhbHM6IHRydWUgfSkpXG4gICAgICAgICAgKTtcbiAgICAgICAgfSk7XG4gICAgICB9XG5cbiAgICAgIC8vIElmIGxvZ2luIGlzIGNvbmZpZ3VyZWQsIHdlJ3JlIHVzaW5nIEF1dGgwIGFuZCB3ZSdyZSBub3QgY3VycmVudGx5IG9uIHRoZSBjYWxsYmFjayBwYWdlLi4uXG4gICAgICBpZiAodXNpbmdBdXRoMCAmJiB0aGlzLmF1dGhDb25maWc/LmxvZ2luX2NsaWVudF9pZCAmJiAhdGhpcy5sb2NhdGlvbi5wYXRoKCkuaW5jbHVkZXMoYC9jYWxsYmFja2ApICYmICF0aGlzLmF1dGhDb25maWc/LmFsbG93X3VuYXV0aG9yaXplZCkge1xuICAgICAgICAvLyAuLmNhbGwgbG9naW5cbiAgICAgICAgdGhpcy5hdXRoU2VydmljZS5sb2dpbigpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHN0YXRpYyBmb3JSb290KGNvbmZpZzogU3BpbnF1ZUF1dGhDb25maWcpOiBNb2R1bGVXaXRoUHJvdmlkZXJzPFNwaW5xdWVBdXRoTW9kdWxlPiB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBuZ01vZHVsZTogU3BpbnF1ZUF1dGhNb2R1bGUsXG4gICAgICAgIHByb3ZpZGVyczogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IFNwaW5xdWVBdXRoQ29uZmlnVmFsdWUsXG4gICAgICAgICAgICB1c2VWYWx1ZTogY29uZmlnLFxuICAgICAgICAgIH0sXG4gICAgICAgIF0sXG4gICAgICB9O1xuICAgIH1cbiAgICBcbn1cbiJdfQ==
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BpbnF1ZS1hdXRoLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NwaW5xdWUtYW5ndWxhci11aS9hdXRoL3NyYy9zcGlucXVlLWF1dGgubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxNQUFNLEVBQXVCLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN0RSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3JDLE9BQU8sRUFBb0IscUJBQXFCLEVBQXNCLE1BQU0sb0JBQW9CLENBQUM7QUFDakcsT0FBTyxFQUFxQixzQkFBc0IsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRWxGLE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxNQUFNLG9DQUFvQyxDQUFDOzs7Ozs7QUFFbkY7O0dBRUc7QUFhSCxNQUFNLE9BQU8saUJBQWlCO0lBRTFCLFlBQzBDLFVBQTZCLEVBQzlCLFNBQTJCLEVBQzFELFdBQStCLEVBQy9CLElBQXdCLEVBQ3hCLFFBQWtCOztRQUpjLGVBQVUsR0FBVixVQUFVLENBQW1CO1FBQzlCLGNBQVMsR0FBVCxTQUFTLENBQWtCO1FBQzFELGdCQUFXLEdBQVgsV0FBVyxDQUFvQjtRQUMvQixTQUFJLEdBQUosSUFBSSxDQUFvQjtRQUN4QixhQUFRLEdBQVIsUUFBUSxDQUFVO1FBRTFCLE9BQU8sQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDckIsNkRBQTZEO1FBQzdELE1BQU0sVUFBVSxHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRTNFLElBQUksVUFBVSxLQUFJLE1BQUEsSUFBSSxDQUFDLFVBQVUsMENBQUUsZUFBZSxDQUFBLEVBQUU7WUFDbEQsSUFBSSxDQUFDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxHQUFHLEVBQUU7Z0JBQ2xDLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxJQUFJLENBQ3JDLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxPQUFPLEVBQUUsRUFBRSxhQUFhLEVBQUUsVUFBVSxLQUFLLEVBQUUsRUFBRSxFQUFFLGVBQWUsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQ3pGLENBQUM7WUFDSixDQUFDLENBQUMsQ0FBQztTQUNKO1FBRUQsNEZBQTRGO1FBQzVGLElBQUksVUFBVSxLQUFJLE1BQUEsSUFBSSxDQUFDLFVBQVUsMENBQUUsZUFBZSxDQUFBLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUEsTUFBQSxJQUFJLENBQUMsVUFBVSwwQ0FBRSxrQkFBa0IsQ0FBQSxFQUFFO1lBQ3pJLGVBQWU7WUFDZixJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssRUFBRSxDQUFDO1NBQzFCO0lBQ0gsQ0FBQztJQUVELE1BQU0sQ0FBQyxPQUFPLENBQUMsTUFBeUI7UUFDdEMsT0FBTztZQUNMLFFBQVEsRUFBRSxpQkFBaUI7WUFDM0IsU0FBUyxFQUFFO2dCQUNUO29CQUNFLE9BQU8sRUFBRSxzQkFBc0I7b0JBQy9CLFFBQVEsRUFBRSxNQUFNO2lCQUNqQjthQUNGO1NBQ0YsQ0FBQztJQUNKLENBQUM7OzhHQXRDUSxpQkFBaUIsa0JBR2hCLHNCQUFzQixhQUN0QixxQkFBcUI7K0dBSnRCLGlCQUFpQixpQkFYYiw2QkFBNkIseUNBU2xDLDZCQUE2QjsrR0FFNUIsaUJBQWlCLFlBVm5CO1lBQ1AsWUFBWSxDQUFDLFFBQVEsQ0FBQztnQkFDcEI7b0JBQ0UsSUFBSSxFQUFFLFVBQVU7b0JBQ2hCLFNBQVMsRUFBRSw2QkFBNkI7aUJBQ3pDO2FBQ0YsQ0FBQztTQUNIOzJGQUdVLGlCQUFpQjtrQkFaN0IsUUFBUTttQkFBQztvQkFDUixZQUFZLEVBQUUsQ0FBQyw2QkFBNkIsQ0FBQztvQkFDN0MsT0FBTyxFQUFFO3dCQUNQLFlBQVksQ0FBQyxRQUFRLENBQUM7NEJBQ3BCO2dDQUNFLElBQUksRUFBRSxVQUFVO2dDQUNoQixTQUFTLEVBQUUsNkJBQTZCOzZCQUN6Qzt5QkFDRixDQUFDO3FCQUNIO29CQUNELE9BQU8sRUFBRSxDQUFDLDZCQUE2QixDQUFDO2lCQUN6Qzs7MEJBSU0sTUFBTTsyQkFBQyxzQkFBc0I7OzBCQUM3QixNQUFNOzJCQUFDLHFCQUFxQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IExvY2F0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEluamVjdCwgTW9kdWxlV2l0aFByb3ZpZGVycywgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJvdXRlck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBTcGlucXVlQXBpQ29uZmlnLCBTcGlucXVlQXBpQ29uZmlnVmFsdWUsIFNwaW5xdWVSZXN0U2VydmljZSB9IGZyb20gJ3NwaW5xdWUtYW5ndWxhci11aSc7XG5pbXBvcnQgeyBTcGlucXVlQXV0aENvbmZpZywgU3BpbnF1ZUF1dGhDb25maWdWYWx1ZSB9IGZyb20gJy4vc3BpbnF1ZS1hdXRoLmNvbmZpZyc7XG5pbXBvcnQgeyBTcGlucXVlQXV0aFNlcnZpY2UgfSBmcm9tICcuL3NwaW5xdWUtYXV0aC5zZXJ2aWNlJztcbmltcG9ydCB7IFNwaW5xdWVMb2dpbkNhbGxiYWNrQ29tcG9uZW50IH0gZnJvbSAnLi9zcGlucXVlLWxvZ2luLWNhbGxiYWNrLmNvbXBvbmVudCc7XG5cbi8qKlxuICogU3BpbnF1ZUNvcmVNb2R1bGUgaW5pdGlhbGlzZXMgYHNwaW5xdWUtYW5ndWxhci11aWAgYW5kIHNob3VsZCBhbHdheXMgYmUgaW1wb3J0ZWQgd2l0aCBmb3JSb290LlxuICovXG5ATmdNb2R1bGUoe1xuICBkZWNsYXJhdGlvbnM6IFtTcGlucXVlTG9naW5DYWxsYmFja0NvbXBvbmVudF0sXG4gIGltcG9ydHM6IFtcbiAgICBSb3V0ZXJNb2R1bGUuZm9yQ2hpbGQoW1xuICAgICAge1xuICAgICAgICBwYXRoOiAnY2FsbGJhY2snLFxuICAgICAgICBjb21wb25lbnQ6IFNwaW5xdWVMb2dpbkNhbGxiYWNrQ29tcG9uZW50LFxuICAgICAgfSxcbiAgICBdKSxcbiAgXSxcbiAgZXhwb3J0czogW1NwaW5xdWVMb2dpbkNhbGxiYWNrQ29tcG9uZW50XVxufSlcbmV4cG9ydCBjbGFzcyBTcGlucXVlQXV0aE1vZHVsZSB7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgIEBJbmplY3QoU3BpbnF1ZUF1dGhDb25maWdWYWx1ZSkgcHJpdmF0ZSBhdXRoQ29uZmlnOiBTcGlucXVlQXV0aENvbmZpZyxcbiAgICAgIEBJbmplY3QoU3BpbnF1ZUFwaUNvbmZpZ1ZhbHVlKSBwcml2YXRlIGFwaUNvbmZpZzogU3BpbnF1ZUFwaUNvbmZpZyxcbiAgICAgIHByaXZhdGUgYXV0aFNlcnZpY2U6IFNwaW5xdWVBdXRoU2VydmljZSxcbiAgICAgIHByaXZhdGUgcmVzdDogU3BpbnF1ZVJlc3RTZXJ2aWNlLFxuICAgICAgcHJpdmF0ZSBsb2NhdGlvbjogTG9jYXRpb25cbiAgICApIHtcbiAgICAgIGNvbnNvbGUubG9nKCdIRUxMTycpO1xuICAgICAgLy8gQ2hlY2sgQVBJIHZlcnNpb24gdG8gZGV0ZXJtaW5lIGlmIHdlJ3JlIHVzaW5nIEF1dGgwIG9yIG5vdFxuICAgICAgY29uc3QgdXNpbmdBdXRoMCA9IHBhcnNlSW50KHRoaXMuYXBpQ29uZmlnLnZlcnNpb24uc3BsaXQoJy4nKVswXSwgMTApID49IDM7XG5cbiAgICAgIGlmICh1c2luZ0F1dGgwICYmIHRoaXMuYXV0aENvbmZpZz8ubG9naW5fY2xpZW50X2lkKSB7XG4gICAgICAgIHRoaXMucmVzdC5hZGRFbnJpY2hSZXF1ZXN0SG9vaygoKSA9PiB7XG4gICAgICAgICAgcmV0dXJuIHRoaXMuYXV0aFNlcnZpY2UuZ2V0VG9rZW4oKS5waXBlKFxuICAgICAgICAgICAgbWFwKHRva2VuID0+ICh7IGhlYWRlcnM6IHsgQXV0aG9yaXphdGlvbjogYEJlYXJlciAke3Rva2VufWAgfSwgd2l0aENyZWRlbnRpYWxzOiB0cnVlIH0pKVxuICAgICAgICAgICk7XG4gICAgICAgIH0pO1xuICAgICAgfVxuXG4gICAgICAvLyBJZiBsb2dpbiBpcyBjb25maWd1cmVkLCB3ZSdyZSB1c2luZyBBdXRoMCBhbmQgd2UncmUgbm90IGN1cnJlbnRseSBvbiB0aGUgY2FsbGJhY2sgcGFnZS4uLlxuICAgICAgaWYgKHVzaW5nQXV0aDAgJiYgdGhpcy5hdXRoQ29uZmlnPy5sb2dpbl9jbGllbnRfaWQgJiYgIXRoaXMubG9jYXRpb24ucGF0aCgpLmluY2x1ZGVzKGAvY2FsbGJhY2tgKSAmJiAhdGhpcy5hdXRoQ29uZmlnPy5hbGxvd191bmF1dGhvcml6ZWQpIHtcbiAgICAgICAgLy8gLi5jYWxsIGxvZ2luXG4gICAgICAgIHRoaXMuYXV0aFNlcnZpY2UubG9naW4oKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBzdGF0aWMgZm9yUm9vdChjb25maWc6IFNwaW5xdWVBdXRoQ29uZmlnKTogTW9kdWxlV2l0aFByb3ZpZGVyczxTcGlucXVlQXV0aE1vZHVsZT4ge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgbmdNb2R1bGU6IFNwaW5xdWVBdXRoTW9kdWxlLFxuICAgICAgICBwcm92aWRlcnM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBTcGlucXVlQXV0aENvbmZpZ1ZhbHVlLFxuICAgICAgICAgICAgdXNlVmFsdWU6IGNvbmZpZyxcbiAgICAgICAgICB9LFxuICAgICAgICBdLFxuICAgICAgfTtcbiAgICB9XG4gICAgXG59XG4iXX0=

@@ -14,3 +14,9 @@ import { Component, Input } from '@angular/core';

if (changes.queryStack && changes.queryStack.currentValue) {
this.rest.getStatistics(changes.queryStack.currentValue).subscribe((res) => (this.statistics = res), (error) => console.log(error));
this.statistics = undefined;
this.rest.getStatistics(changes.queryStack.currentValue).subscribe((res) => {
this.statistics = res;
}, (error) => {
this.statistics = undefined;
console.log(error);
});
}

@@ -39,2 +45,2 @@ }

}] } });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzdWx0LXN0YXRpc3RpY3MuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc3BpbnF1ZS1hbmd1bGFyLXVpL3Jlc3VsdC1zdGF0aXN0aWNzL3NyYy9yZXN1bHQtc3RhdGlzdGljcy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zcGlucXVlLWFuZ3VsYXItdWkvcmVzdWx0LXN0YXRpc3RpY3Mvc3JjL3Jlc3VsdC1zdGF0aXN0aWNzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUE0QixNQUFNLGVBQWUsQ0FBQzs7OztBQUczRTs7R0FFRztBQWNILE1BQU0sT0FBTyxnQ0FBZ0M7SUFLM0MsWUFBb0IsSUFBd0I7UUFBeEIsU0FBSSxHQUFKLElBQUksQ0FBb0I7SUFBRyxDQUFDO0lBRWhELFdBQVcsQ0FBQyxPQUFzQjtRQUNoQyxJQUFJLE9BQU8sQ0FBQyxVQUFVLElBQUksT0FBTyxDQUFDLFVBQVUsQ0FBQyxZQUFZLEVBQUU7WUFDekQsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxZQUFZLENBQUMsQ0FBQyxTQUFTLENBQ2hFLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLEdBQUcsR0FBRyxDQUFDLEVBQ2hDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7U0FDbEM7SUFDSCxDQUFDOzs2SEFiVSxnQ0FBZ0M7aUhBQWhDLGdDQUFnQyw0SENuQjdDLDhMQUVNOzJGRGlCTyxnQ0FBZ0M7a0JBYjVDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLDJCQUEyQjtvQkFDckMsV0FBVyxFQUFFLG9DQUFvQztvQkFDakQsTUFBTSxFQUFFO3dCQUNOOzs7Ozs7S0FNQztxQkFDRjtpQkFDRjt5R0FJVSxVQUFVO3NCQUFsQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT25DaGFuZ2VzLCBTaW1wbGVDaGFuZ2VzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTcGlucXVlUmVzdFNlcnZpY2UsIFNwaW5xdWVTdGF0aXN0aWNzLCBTcGlucXVlUXVlcnlTdGFjayB9IGZyb20gJ3NwaW5xdWUtYW5ndWxhci11aSc7XG5cbi8qKlxuICogRGlzcGxheSBhIHNob3J0LCB0ZXh0dWFsIHN1bW1hcnkgb2YgdGhlIHNlYXJjaCByZXN1bHRzLlxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzcGlucXVlLXJlc3VsdC1zdGF0aXN0aWNzJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3Jlc3VsdC1zdGF0aXN0aWNzLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVzOiBbXG4gICAgYFxuICAgICAgLnNwLXJlc3VsdC1zdGF0dXMge1xuICAgICAgICBmb250LXNpemU6IDEycHg7XG4gICAgICAgIGNvbG9yOiAjNTQ1NDU0O1xuICAgICAgICBsaW5lLWhlaWdodDogMTZweDtcbiAgICAgIH1cbiAgICBgXG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgU3BpbnF1ZVJlc3VsdFN0YXRpc3RpY3NDb21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMge1xuICBzdGF0aXN0aWNzOiBTcGlucXVlU3RhdGlzdGljcztcblxuICBASW5wdXQoKSBxdWVyeVN0YWNrOiBTcGlucXVlUXVlcnlTdGFjaztcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlc3Q6IFNwaW5xdWVSZXN0U2VydmljZSkge31cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XG4gICAgaWYgKGNoYW5nZXMucXVlcnlTdGFjayAmJiBjaGFuZ2VzLnF1ZXJ5U3RhY2suY3VycmVudFZhbHVlKSB7XG4gICAgICB0aGlzLnJlc3QuZ2V0U3RhdGlzdGljcyhjaGFuZ2VzLnF1ZXJ5U3RhY2suY3VycmVudFZhbHVlKS5zdWJzY3JpYmUoXG4gICAgICAgIChyZXMpID0+ICh0aGlzLnN0YXRpc3RpY3MgPSByZXMpLFxuICAgICAgICAoZXJyb3IpID0+IGNvbnNvbGUubG9nKGVycm9yKSk7XG4gICAgfVxuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwic3AtcmVzdWx0LXN0YXR1c1wiICpuZ0lmPVwic3RhdGlzdGljc1wiIHJvbGU9XCJjb21wbGVtZW50YXJ5XCI+XG4gIHt7IHN0YXRpc3RpY3MudG90YWwgfCBudW1iZXJ9fSByZXN1bHQ8bmctY29udGFpbmVyICpuZ0lmPVwic3RhdGlzdGljcy50b3RhbCAhPT0gMVwiPnM8L25nLWNvbnRhaW5lcj5cbjwvZGl2PiJdfQ==
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzdWx0LXN0YXRpc3RpY3MuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc3BpbnF1ZS1hbmd1bGFyLXVpL3Jlc3VsdC1zdGF0aXN0aWNzL3NyYy9yZXN1bHQtc3RhdGlzdGljcy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zcGlucXVlLWFuZ3VsYXItdWkvcmVzdWx0LXN0YXRpc3RpY3Mvc3JjL3Jlc3VsdC1zdGF0aXN0aWNzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUE0QixNQUFNLGVBQWUsQ0FBQzs7OztBQUczRTs7R0FFRztBQWNILE1BQU0sT0FBTyxnQ0FBZ0M7SUFLM0MsWUFBb0IsSUFBd0I7UUFBeEIsU0FBSSxHQUFKLElBQUksQ0FBb0I7SUFBRyxDQUFDO0lBRWhELFdBQVcsQ0FBQyxPQUFzQjtRQUNoQyxJQUFJLE9BQU8sQ0FBQyxVQUFVLElBQUksT0FBTyxDQUFDLFVBQVUsQ0FBQyxZQUFZLEVBQUU7WUFDekQsSUFBSSxDQUFDLFVBQVUsR0FBRyxTQUFTLENBQUM7WUFDNUIsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxZQUFZLENBQUMsQ0FBQyxTQUFTLENBQ2hFLENBQUMsR0FBRyxFQUFFLEVBQUU7Z0JBQ04sSUFBSSxDQUFDLFVBQVUsR0FBRyxHQUFHLENBQUM7WUFDeEIsQ0FBQyxFQUNELENBQUMsS0FBSyxFQUFFLEVBQUU7Z0JBQ1IsSUFBSSxDQUFDLFVBQVUsR0FBRyxTQUFTLENBQUM7Z0JBQzVCLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDckIsQ0FBQyxDQUFDLENBQUM7U0FDTjtJQUNILENBQUM7OzZIQW5CVSxnQ0FBZ0M7aUhBQWhDLGdDQUFnQyw0SENuQjdDLDhMQUVNOzJGRGlCTyxnQ0FBZ0M7a0JBYjVDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLDJCQUEyQjtvQkFDckMsV0FBVyxFQUFFLG9DQUFvQztvQkFDakQsTUFBTSxFQUFFO3dCQUNOOzs7Ozs7S0FNQztxQkFDRjtpQkFDRjt5R0FJVSxVQUFVO3NCQUFsQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT25DaGFuZ2VzLCBTaW1wbGVDaGFuZ2VzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTcGlucXVlUmVzdFNlcnZpY2UsIFNwaW5xdWVTdGF0aXN0aWNzLCBTcGlucXVlUXVlcnlTdGFjayB9IGZyb20gJ3NwaW5xdWUtYW5ndWxhci11aSc7XG5cbi8qKlxuICogRGlzcGxheSBhIHNob3J0LCB0ZXh0dWFsIHN1bW1hcnkgb2YgdGhlIHNlYXJjaCByZXN1bHRzLlxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzcGlucXVlLXJlc3VsdC1zdGF0aXN0aWNzJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3Jlc3VsdC1zdGF0aXN0aWNzLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVzOiBbXG4gICAgYFxuICAgICAgLnNwLXJlc3VsdC1zdGF0dXMge1xuICAgICAgICBmb250LXNpemU6IDEycHg7XG4gICAgICAgIGNvbG9yOiAjNTQ1NDU0O1xuICAgICAgICBsaW5lLWhlaWdodDogMTZweDtcbiAgICAgIH1cbiAgICBgXG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgU3BpbnF1ZVJlc3VsdFN0YXRpc3RpY3NDb21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMge1xuICBzdGF0aXN0aWNzPzogU3BpbnF1ZVN0YXRpc3RpY3M7XG5cbiAgQElucHV0KCkgcXVlcnlTdGFjaz86IFNwaW5xdWVRdWVyeVN0YWNrO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVzdDogU3BpbnF1ZVJlc3RTZXJ2aWNlKSB7fVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcbiAgICBpZiAoY2hhbmdlcy5xdWVyeVN0YWNrICYmIGNoYW5nZXMucXVlcnlTdGFjay5jdXJyZW50VmFsdWUpIHtcbiAgICAgIHRoaXMuc3RhdGlzdGljcyA9IHVuZGVmaW5lZDtcbiAgICAgIHRoaXMucmVzdC5nZXRTdGF0aXN0aWNzKGNoYW5nZXMucXVlcnlTdGFjay5jdXJyZW50VmFsdWUpLnN1YnNjcmliZShcbiAgICAgICAgKHJlcykgPT4ge1xuICAgICAgICAgIHRoaXMuc3RhdGlzdGljcyA9IHJlcztcbiAgICAgICAgfSxcbiAgICAgICAgKGVycm9yKSA9PiB7XG4gICAgICAgICAgdGhpcy5zdGF0aXN0aWNzID0gdW5kZWZpbmVkO1xuICAgICAgICAgIGNvbnNvbGUubG9nKGVycm9yKTtcbiAgICAgICAgfSk7XG4gICAgfVxuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwic3AtcmVzdWx0LXN0YXR1c1wiICpuZ0lmPVwic3RhdGlzdGljc1wiIHJvbGU9XCJjb21wbGVtZW50YXJ5XCI+XG4gIHt7IHN0YXRpc3RpY3MudG90YWwgfCBudW1iZXJ9fSByZXN1bHQ8bmctY29udGFpbmVyICpuZ0lmPVwic3RhdGlzdGljcy50b3RhbCAhPT0gMVwiPnM8L25nLWNvbnRhaW5lcj5cbjwvZGl2PiJdfQ==

@@ -24,3 +24,3 @@ import { Injectable } from '@angular/core';

// regex out of the needle
const regex = new RegExp(needle.split(' ').join('|'), 'ig');
const regex = new RegExp(needle.trim().split(' ').join('|'), 'ig');
// all sentences in the text

@@ -55,3 +55,2 @@ const sentences = text.split(/\.|\!|\?|\;|:/);

const n = bestSentencesMatches.filter(m => m.index > start && m.index < start + size).length;
console.log(n);
if (n > acc.n) {

@@ -67,3 +66,3 @@ return { start, n };

}
return truncate(text.substr(start), { length: size + 3 });
return truncate(text.substr(start), { length: size + 3 }).trim();
}

@@ -77,3 +76,3 @@ /**

}
const regex = needle.split(' ').join('|');
const regex = needle.trim().split(' ').join('|');
return text.replace(new RegExp(regex, 'ig'), match => '<mark class="highlight">' + match + '</mark>');

@@ -90,2 +89,2 @@ }

}], ctorParameters: function () { return []; } });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic25pcHBldC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc3BpbnF1ZS1hbmd1bGFyLXVpL3NuaXBwZXQvc3JjL3NuaXBwZXQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxRQUFRLENBQUM7O0FBRWxDOztHQUVHO0FBSUgsTUFBTSxPQUFPLHFCQUFxQjtJQUVoQyxnQkFBZSxDQUFDO0lBRWhCOztPQUVHO0lBQ0gsVUFBVSxDQUFDLElBQVksRUFBRSxNQUFlLEVBQUUsSUFBYTtRQUNyRCxNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUM7UUFDekIsSUFBSSxHQUFHLElBQUksSUFBSSxHQUFHLENBQUM7UUFFbkIsSUFBSSxDQUFDLElBQUksRUFBRTtZQUNULE9BQU87U0FDUjtRQUNELElBQUksQ0FBQyxNQUFNLEVBQUU7WUFDWCxPQUFPLFFBQVEsQ0FBQyxJQUFJLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUM7U0FDN0M7UUFDRCwwQkFBMEI7UUFDMUIsSUFBSSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLFdBQVcsQ0FBQyxDQUFDO1FBRW5DLDBCQUEwQjtRQUMxQixNQUFNLEtBQUssR0FBRyxJQUFJLE1BQU0sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUU1RCw0QkFBNEI7UUFDNUIsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUU5Qyw0REFBNEQ7UUFDNUQsSUFBSSxZQUFZLEdBQUcsQ0FBQyxDQUFDO1FBQ3JCLElBQUksWUFBWSxDQUFDO1FB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LDBCQUEwQixHQUFHLEtBQUssR0FBRyxTQUFTLENBQUMsQ0FBQztJQUN4RyxDQUFDOztrSEEvRVUscUJBQXFCO3NIQUFyQixxQkFBcUIsY0FGcEIsTUFBTTsyRkFFUCxxQkFBcUI7a0JBSGpDLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgdHJ1bmNhdGUgfSBmcm9tICdsb2Rhc2gnO1xuXG4vKipcbiAqIFNlcnZpY2UgdGhhdCBjcmVhdGVzIHJlbGV2YW50IHNuaXBwZXRzIGFuZCBoaWdobGlnaHRzIGZvciBzZWFyY2ggcmVzdWx0cyB3aXRoIHRleHRzLlxuICovXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBTcGlucXVlU25pcHBldFNlcnZpY2Uge1xuXG4gIGNvbnN0cnVjdG9yKCkge31cblxuICAvKipcbiAgICogR2V0IGEgcmVsZXZhbnQgc25pcHBldCBvZiB0aGUgZ2l2ZW4gdGV4dC4gSWYgYSBuZWVkbGUgdGV4dCBpcyBnaXZlbiB0b28sIHRoZSBzbmlwcGV0IHdpbGwgYmUgY2VudGVyZWQgYXJvdW5kIGl0LlxuICAgKi9cbiAgZ2V0U25pcHBldCh0ZXh0OiBzdHJpbmcsIG5lZWRsZT86IHN0cmluZywgc2l6ZT86IG51bWJlcikge1xuICAgIGNvbnN0IG1heFRleHRTaXplID0gODE5MjtcbiAgICBzaXplID0gc2l6ZSB8fCA1MTI7XG5cbiAgICBpZiAoIXRleHQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKCFuZWVkbGUpIHtcbiAgICAgIHJldHVybiB0cnVuY2F0ZSh0ZXh0LCB7IGxlbmd0aDogc2l6ZSArIDEgfSk7XG4gICAgfVxuICAgIC8vIHBlcmZvcm1hbmNlIGltcHJvdmVtZW50XG4gICAgdGV4dCA9IHRleHQuc3Vic3RyKDAsIG1heFRleHRTaXplKTtcblxuICAgIC8vIHJlZ2V4IG91dCBvZiB0aGUgbmVlZGxlXG4gICAgY29uc3QgcmVnZXggPSBuZXcgUmVnRXhwKG5lZWRsZS5zcGxpdCgnICcpLmpvaW4oJ3wnKSwgJ2lnJyk7XG5cbiAgICAvLyBhbGwgc2VudGVuY2VzIGluIHRoZSB0ZXh0XG4gICAgY29uc3Qgc2VudGVuY2VzID0gdGV4dC5zcGxpdCgvXFwufFxcIXxcXD98XFw7fDovKTtcblxuICAgIC8vIHJhbmsgZWFjaCBzZW50ZW5jZSBhcyB0aGUgYmVzdCBwbGFjZSB0byBzdGFydCB0aGUgc25pcHBldFxuICAgIGxldCB0b3RhbE1hdGNoZXMgPSAwO1xuICAgIGxldCBiZXN0U2VudGVuY2U7XG4gICAgbGV0IGJlc3RTZW50ZW5jZXNNYXRjaGVzID0gW107XG5cbiAgICBzZW50ZW5jZXMuZm9yRWFjaChzID0+IHtcbiAgICAgIGxldCBtYXRjaGVzID0gW107XG4gICAgICBsZXQgbWF0Y2g7XG4gICAgICB3aGlsZSAoKG1hdGNoID0gcmVnZXguZXhlYyhzKSkgIT09IG51bGwpIHtcbiAgICAgICAgbWF0Y2hlcy5wdXNoKHsgdmFsdWU6IG1hdGNoWzBdLCBpbmRleDogbWF0Y2guaW5kZXggfSk7XG4gICAgICB9XG5cbiAgICAgIHRvdGFsTWF0Y2hlcyArPSBtYXRjaGVzLmxlbmd0aDtcbiAgICAgIGlmIChtYXRjaGVzLmxlbmd0aCA+IGJlc3RTZW50ZW5jZXNNYXRjaGVzLmxlbmd0aCkge1xuICAgICAgICBiZXN0U2VudGVuY2UgPSBzO1xuICAgICAgICBiZXN0U2VudGVuY2VzTWF0Y2hlcyA9IG1hdGNoZXM7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICBpZiAodG90YWxNYXRjaGVzID09PSAwKSB7XG4gICAgICByZXR1cm4gdHJ1bmNhdGUodGV4dCwgeyBsZW5ndGg6IHNpemUgKyAxIH0pO1xuICAgIH1cblxuICAgIGxldCBzdGFydDtcbiAgICBpZiAoc2l6ZSArIDMgPCBiZXN0U2VudGVuY2UubGVuZ3RoKSB7XG4gICAgICBjb25zdCBsZXR0ZXJzQmVmb3JlID0gMjU7XG4gICAgICAvLyBGaW5kIHRoZSBiZXN0IG1hdGNoIHRvIHN0YXJ0IHRoZSBzbmlwcGV0IGZyb21cbiAgICAgIGNvbnN0IHJlcyA9IGJlc3RTZW50ZW5jZXNNYXRjaGVzLnJlZHVjZSgoYWNjLCBjdXIpID0+IHtcbiAgICAgICAgY29uc3Qgc3RhcnQgPSBNYXRoLm1pbihNYXRoLm1heChjdXIuaW5kZXggLSBsZXR0ZXJzQmVmb3JlLCAwKSwgdGV4dC5sZW5ndGggLSBzaXplKTtcbiAgICAgICAgLy8gSG93IG1hbnkgb3RoZXIgbWF0Y2hlcyBhcmUgdmlzaWJsZSBpZiB3ZSBzdGFydCBmcm9tIHRoaXMgbWF0Y2g/XG4gICAgICAgIGNvbnN0IG4gPSBiZXN0U2VudGVuY2VzTWF0Y2hlcy5maWx0ZXIobSA9PiBtLmluZGV4ID4gc3RhcnQgJiYgbS5pbmRleCA8IHN0YXJ0ICsgc2l6ZSkubGVuZ3RoO1xuICAgICAgICBjb25zb2xlLmxvZyhuKTtcbiAgICAgICAgaWYgKG4gPiBhY2Mubikge1xuICAgICAgICAgIHJldHVybiB7IHN0YXJ0LCBuIH07XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGFjYztcbiAgICAgIH0sIHsgc3RhcnQ6IDAsIG46IDAgfSk7XG4gICAgICBzdGFydCA9IHJlcy5zdGFydDtcbiAgICB9IGVsc2Uge1xuICAgICAgc3RhcnQgPSB0ZXh0LmluZGV4T2YoYmVzdFNlbnRlbmNlKTtcbiAgICB9XG4gICAgcmV0dXJuIHRydW5jYXRlKHRleHQuc3Vic3RyKHN0YXJ0KSwgeyBsZW5ndGg6IHNpemUgKyAzIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIEhpZ2hsaWdodCBhIG5lZWRsZSBpbiBhIHBpZWNlIG9mIHRleHRcbiAgICovXG4gIGhpZ2hsaWdodCh0ZXh0OiBzdHJpbmcsIG5lZWRsZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICBpZiAoIXRleHQgfHwgIW5lZWRsZSkge1xuICAgICAgcmV0dXJuIHRleHQ7XG4gICAgfVxuICAgIGNvbnN0IHJlZ2V4ID0gbmVlZGxlLnNwbGl0KCcgJykuam9pbignfCcpO1xuICAgIHJldHVybiB0ZXh0LnJlcGxhY2UobmV3IFJlZ0V4cChyZWdleCwgJ2lnJyksIG1hdGNoID0+ICc8bWFyayBjbGFzcz1cImhpZ2hsaWdodFwiPicgKyBtYXRjaCArICc8L21hcms+Jyk7XG4gIH1cbn1cbiJdfQ==
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic25pcHBldC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc3BpbnF1ZS1hbmd1bGFyLXVpL3NuaXBwZXQvc3JjL3NuaXBwZXQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxRQUFRLENBQUM7O0FBRWxDOztHQUVHO0FBSUgsTUFBTSxPQUFPLHFCQUFxQjtJQUVoQyxnQkFBZSxDQUFDO0lBRWhCOztPQUVHO0lBQ0gsVUFBVSxDQUFDLElBQVksRUFBRSxNQUFlLEVBQUUsSUFBYTtRQUNyRCxNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUM7UUFDekIsSUFBSSxHQUFHLElBQUksSUFBSSxHQUFHLENBQUM7UUFFbkIsSUFBSSxDQUFDLElBQUksRUFBRTtZQUNULE9BQU87U0FDUjtRQUNELElBQUksQ0FBQyxNQUFNLEVBQUU7WUFDWCxPQUFPLFFBQVEsQ0FBQyxJQUFJLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUM7U0FDN0M7UUFDRCwwQkFBMEI7UUFDMUIsSUFBSSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLFdBQVcsQ0FBQyxDQUFDO1FBRW5DLDBCQUEwQjtRQUMxQixNQUFNLEtBQUssR0FBRyxJQUFJLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUVuRSw0QkFBNEI7UUFDNUIsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUU5Qyw0REFBNEQ7UUFDNUQsSUFBSSxZQUFZLEdBQUcsQ0FBQyxDQUFDO1FBQ3JCLElB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Q0FBQywwQkFBMEIsR0FBRyxLQUFLLEdBQUcsU0FBUyxDQUFDLENBQUM7SUFDeEcsQ0FBQzs7a0hBOUVVLHFCQUFxQjtzSEFBckIscUJBQXFCLGNBRnBCLE1BQU07MkZBRVAscUJBQXFCO2tCQUhqQyxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHRydW5jYXRlIH0gZnJvbSAnbG9kYXNoJztcblxuLyoqXG4gKiBTZXJ2aWNlIHRoYXQgY3JlYXRlcyByZWxldmFudCBzbmlwcGV0cyBhbmQgaGlnaGxpZ2h0cyBmb3Igc2VhcmNoIHJlc3VsdHMgd2l0aCB0ZXh0cy5cbiAqL1xuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgU3BpbnF1ZVNuaXBwZXRTZXJ2aWNlIHtcblxuICBjb25zdHJ1Y3RvcigpIHt9XG5cbiAgLyoqXG4gICAqIEdldCBhIHJlbGV2YW50IHNuaXBwZXQgb2YgdGhlIGdpdmVuIHRleHQuIElmIGEgbmVlZGxlIHRleHQgaXMgZ2l2ZW4gdG9vLCB0aGUgc25pcHBldCB3aWxsIGJlIGNlbnRlcmVkIGFyb3VuZCBpdC5cbiAgICovXG4gIGdldFNuaXBwZXQodGV4dDogc3RyaW5nLCBuZWVkbGU/OiBzdHJpbmcsIHNpemU/OiBudW1iZXIpOiBzdHJpbmcge1xuICAgIGNvbnN0IG1heFRleHRTaXplID0gODE5MjtcbiAgICBzaXplID0gc2l6ZSB8fCA1MTI7XG5cbiAgICBpZiAoIXRleHQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKCFuZWVkbGUpIHtcbiAgICAgIHJldHVybiB0cnVuY2F0ZSh0ZXh0LCB7IGxlbmd0aDogc2l6ZSArIDEgfSk7XG4gICAgfVxuICAgIC8vIHBlcmZvcm1hbmNlIGltcHJvdmVtZW50XG4gICAgdGV4dCA9IHRleHQuc3Vic3RyKDAsIG1heFRleHRTaXplKTtcblxuICAgIC8vIHJlZ2V4IG91dCBvZiB0aGUgbmVlZGxlXG4gICAgY29uc3QgcmVnZXggPSBuZXcgUmVnRXhwKG5lZWRsZS50cmltKCkuc3BsaXQoJyAnKS5qb2luKCd8JyksICdpZycpO1xuXG4gICAgLy8gYWxsIHNlbnRlbmNlcyBpbiB0aGUgdGV4dFxuICAgIGNvbnN0IHNlbnRlbmNlcyA9IHRleHQuc3BsaXQoL1xcLnxcXCF8XFw/fFxcO3w6Lyk7XG5cbiAgICAvLyByYW5rIGVhY2ggc2VudGVuY2UgYXMgdGhlIGJlc3QgcGxhY2UgdG8gc3RhcnQgdGhlIHNuaXBwZXRcbiAgICBsZXQgdG90YWxNYXRjaGVzID0gMDtcbiAgICBsZXQgYmVzdFNlbnRlbmNlO1xuICAgIGxldCBiZXN0U2VudGVuY2VzTWF0Y2hlcyA9IFtdO1xuXG4gICAgc2VudGVuY2VzLmZvckVhY2gocyA9PiB7XG4gICAgICBsZXQgbWF0Y2hlcyA9IFtdO1xuICAgICAgbGV0IG1hdGNoO1xuICAgICAgd2hpbGUgKChtYXRjaCA9IHJlZ2V4LmV4ZWMocykpICE9PSBudWxsKSB7XG4gICAgICAgIG1hdGNoZXMucHVzaCh7IHZhbHVlOiBtYXRjaFswXSwgaW5kZXg6IG1hdGNoLmluZGV4IH0pO1xuICAgICAgfVxuXG4gICAgICB0b3RhbE1hdGNoZXMgKz0gbWF0Y2hlcy5sZW5ndGg7XG4gICAgICBpZiAobWF0Y2hlcy5sZW5ndGggPiBiZXN0U2VudGVuY2VzTWF0Y2hlcy5sZW5ndGgpIHtcbiAgICAgICAgYmVzdFNlbnRlbmNlID0gcztcbiAgICAgICAgYmVzdFNlbnRlbmNlc01hdGNoZXMgPSBtYXRjaGVzO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgaWYgKHRvdGFsTWF0Y2hlcyA9PT0gMCkge1xuICAgICAgcmV0dXJuIHRydW5jYXRlKHRleHQsIHsgbGVuZ3RoOiBzaXplICsgMSB9KTtcbiAgICB9XG5cbiAgICBsZXQgc3RhcnQ7XG4gICAgaWYgKHNpemUgKyAzIDwgYmVzdFNlbnRlbmNlLmxlbmd0aCkge1xuICAgICAgY29uc3QgbGV0dGVyc0JlZm9yZSA9IDI1O1xuICAgICAgLy8gRmluZCB0aGUgYmVzdCBtYXRjaCB0byBzdGFydCB0aGUgc25pcHBldCBmcm9tXG4gICAgICBjb25zdCByZXMgPSBiZXN0U2VudGVuY2VzTWF0Y2hlcy5yZWR1Y2UoKGFjYywgY3VyKSA9PiB7XG4gICAgICAgIGNvbnN0IHN0YXJ0ID0gTWF0aC5taW4oTWF0aC5tYXgoY3VyLmluZGV4IC0gbGV0dGVyc0JlZm9yZSwgMCksIHRleHQubGVuZ3RoIC0gc2l6ZSk7XG4gICAgICAgIC8vIEhvdyBtYW55IG90aGVyIG1hdGNoZXMgYXJlIHZpc2libGUgaWYgd2Ugc3RhcnQgZnJvbSB0aGlzIG1hdGNoP1xuICAgICAgICBjb25zdCBuID0gYmVzdFNlbnRlbmNlc01hdGNoZXMuZmlsdGVyKG0gPT4gbS5pbmRleCA+IHN0YXJ0ICYmIG0uaW5kZXggPCBzdGFydCArIHNpemUpLmxlbmd0aDtcbiAgICAgICAgaWYgKG4gPiBhY2Mubikge1xuICAgICAgICAgIHJldHVybiB7IHN0YXJ0LCBuIH07XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGFjYztcbiAgICAgIH0sIHsgc3RhcnQ6IDAsIG46IDAgfSk7XG4gICAgICBzdGFydCA9IHJlcy5zdGFydDtcbiAgICB9IGVsc2Uge1xuICAgICAgc3RhcnQgPSB0ZXh0LmluZGV4T2YoYmVzdFNlbnRlbmNlKTtcbiAgICB9XG4gICAgcmV0dXJuIHRydW5jYXRlKHRleHQuc3Vic3RyKHN0YXJ0KSwgeyBsZW5ndGg6IHNpemUgKyAzIH0pLnRyaW0oKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBIaWdobGlnaHQgYSBuZWVkbGUgaW4gYSBwaWVjZSBvZiB0ZXh0XG4gICAqL1xuICBoaWdobGlnaHQodGV4dDogc3RyaW5nLCBuZWVkbGU/OiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGlmICghdGV4dCB8fCAhbmVlZGxlKSB7XG4gICAgICByZXR1cm4gdGV4dDtcbiAgICB9XG4gICAgY29uc3QgcmVnZXggPSBuZWVkbGUudHJpbSgpLnNwbGl0KCcgJykuam9pbignfCcpO1xuICAgIHJldHVybiB0ZXh0LnJlcGxhY2UobmV3IFJlZ0V4cChyZWdleCwgJ2lnJyksIG1hdGNoID0+ICc8bWFyayBjbGFzcz1cImhpZ2hsaWdodFwiPicgKyBtYXRjaCArICc8L21hcms+Jyk7XG4gIH1cbn1cbiJdfQ==

@@ -43,2 +43,2 @@ import { Component, Input, Output, EventEmitter } from '@angular/core';

}] } });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic29ydC10b2dnbGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc3BpbnF1ZS1hbmd1bGFyLXVpL3NvcnQtdG9nZ2xlL3NyYy9zb3J0LXRvZ2dsZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zcGlucXVlLWFuZ3VsYXItdWkvc29ydC10b2dnbGUvc3JjL3NvcnQtdG9nZ2xlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsS0FBSyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7Ozs7OztBQU8vRTs7O0dBR0c7QUFNSCxNQUFNLE9BQU8sMEJBQTBCO0lBTHZDO1FBTVcsWUFBTyxHQUF3QixFQUFFLENBQUM7UUFFakMsZUFBVSxHQUFHLElBQUksWUFBWSxFQUFxQixDQUFDO0tBWTlEO0lBVkM7O09BRUc7SUFDSCxZQUFZLENBQUMsTUFBeUI7UUFDcEMsSUFBSSxJQUFJLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRSxLQUFLLE1BQU0sQ0FBQyxFQUFFLEVBQUU7WUFDL0MsT0FBTztTQUNSO1FBQ0QsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7UUFDckIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3BDLENBQUM7O3VIQWRVLDBCQUEwQjsyR0FBMUIsMEJBQTBCLG9KQ2hCdkMseVVBU0E7MkZET2EsMEJBQTBCO2tCQUx0QyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxxQkFBcUI7b0JBQy9CLFdBQVcsRUFBRSw4QkFBOEI7b0JBQzNDLE1BQU0sRUFBRSxDQUFDLEVBQUUsQ0FBQztpQkFDYjs4QkFFVSxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNJLFVBQVU7c0JBQW5CLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgSW5wdXQsIE91dHB1dCwgRXZlbnRFbWl0dGVyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgU3BpbnF1ZVNvcnRPcHRpb24ge1xuICBpZDogc3RyaW5nO1xuICBsYWJlbDogc3RyaW5nO1xufVxuXG4vKipcbiAqIEJ1dHRvbiB3aXRoIGRyb3Bkb3duIG1lbnUgdGhhdCBzaG93cyBvcHRpb25zLCBvbmUgb2Ygd2hpY2ggY2FuIGJlIHNlbGVjdGVkLlxuICogVXNlZCB0byBzb3J0IHJlc3VsdCB2aWV3cy5cbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3BpbnF1ZS1zb3J0LXRvZ2dsZScsXG4gIHRlbXBsYXRlVXJsOiAnLi9zb3J0LXRvZ2dsZS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlczogWycnXVxufSlcbmV4cG9ydCBjbGFzcyBTcGlucXVlU29ydFRvZ2dsZUNvbXBvbmVudCB7XG4gIEBJbnB1dCgpIG9wdGlvbnM6IFNwaW5xdWVTb3J0T3B0aW9uW10gPSBbXTtcbiAgQElucHV0KCkgYWN0aXZlOiBTcGlucXVlU29ydE9wdGlvbjtcbiAgQE91dHB1dCgpIHNvcnRDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPFNwaW5xdWVTb3J0T3B0aW9uPigpO1xuXG4gIC8qKlxuICAgKiBTZWxlY3QgYSBnaXZlbiBTcGlucXVlU29ydE9wdGlvblxuICAgKi9cbiAgc2VsZWN0T3B0aW9uKG9wdGlvbjogU3BpbnF1ZVNvcnRPcHRpb24pIHtcbiAgICBpZiAodGhpcy5hY3RpdmUgJiYgdGhpcy5hY3RpdmUuaWQgPT09IG9wdGlvbi5pZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLmFjdGl2ZSA9IG9wdGlvbjtcbiAgICB0aGlzLnNvcnRDaGFuZ2UuZW1pdCh0aGlzLmFjdGl2ZSk7XG4gIH1cbn1cbiIsIjxidXR0b24gbWF0LXN0cm9rZWQtYnV0dG9uIFttYXRNZW51VHJpZ2dlckZvcl09XCJtZW51XCIgYXJpYS1sYWJlbD1cIk9wZW4gc29ydCBtZW51XCI+XG4gIHt7IGFjdGl2ZS5sYWJlbCB9fVxuICA8bWF0LWljb24+YXJyb3dfZHJvcF9kb3duPC9tYXQtaWNvbj5cbjwvYnV0dG9uPlxuPG1hdC1tZW51ICNtZW51PVwibWF0TWVudVwiPlxuICA8ZGl2IG1hdC1tZW51LWl0ZW0gKm5nRm9yPVwibGV0IG9wdGlvbiBvZiBvcHRpb25zXCIgKGNsaWNrKT1cInNlbGVjdE9wdGlvbihvcHRpb24pXCI+XG4gICAge3sgb3B0aW9uLmxhYmVsIH19XG4gIDwvZGl2PlxuPC9tYXQtbWVudT5cbiJdfQ==
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic29ydC10b2dnbGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc3BpbnF1ZS1hbmd1bGFyLXVpL3NvcnQtdG9nZ2xlL3NyYy9zb3J0LXRvZ2dsZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zcGlucXVlLWFuZ3VsYXItdWkvc29ydC10b2dnbGUvc3JjL3NvcnQtdG9nZ2xlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7Ozs7OztBQU92RTs7O0dBR0c7QUFNSCxNQUFNLE9BQU8sMEJBQTBCO0lBTHZDO1FBTVcsWUFBTyxHQUF3QixFQUFFLENBQUM7UUFFakMsZUFBVSxHQUFHLElBQUksWUFBWSxFQUFxQixDQUFDO0tBWTlEO0lBVkM7O09BRUc7SUFDSCxZQUFZLENBQUMsTUFBeUI7UUFDcEMsSUFBSSxJQUFJLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRSxLQUFLLE1BQU0sQ0FBQyxFQUFFLEVBQUU7WUFDL0MsT0FBTztTQUNSO1FBQ0QsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7UUFDckIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3BDLENBQUM7O3VIQWRVLDBCQUEwQjsyR0FBMUIsMEJBQTBCLG9KQ2hCdkMseVVBU0E7MkZET2EsMEJBQTBCO2tCQUx0QyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxxQkFBcUI7b0JBQy9CLFdBQVcsRUFBRSw4QkFBOEI7b0JBQzNDLE1BQU0sRUFBRSxDQUFDLEVBQUUsQ0FBQztpQkFDYjs4QkFFVSxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNJLFVBQVU7c0JBQW5CLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPdXRwdXQsIEV2ZW50RW1pdHRlciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFNwaW5xdWVTb3J0T3B0aW9uIHtcbiAgaWQ6IHN0cmluZztcbiAgbGFiZWw6IHN0cmluZztcbn1cblxuLyoqXG4gKiBCdXR0b24gd2l0aCBkcm9wZG93biBtZW51IHRoYXQgc2hvd3Mgb3B0aW9ucywgb25lIG9mIHdoaWNoIGNhbiBiZSBzZWxlY3RlZC5cbiAqIFVzZWQgdG8gc29ydCByZXN1bHQgdmlld3MuXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NwaW5xdWUtc29ydC10b2dnbGUnLFxuICB0ZW1wbGF0ZVVybDogJy4vc29ydC10b2dnbGUuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZXM6IFsnJ11cbn0pXG5leHBvcnQgY2xhc3MgU3BpbnF1ZVNvcnRUb2dnbGVDb21wb25lbnQge1xuICBASW5wdXQoKSBvcHRpb25zOiBTcGlucXVlU29ydE9wdGlvbltdID0gW107XG4gIEBJbnB1dCgpIGFjdGl2ZTogU3BpbnF1ZVNvcnRPcHRpb247XG4gIEBPdXRwdXQoKSBzb3J0Q2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxTcGlucXVlU29ydE9wdGlvbj4oKTtcblxuICAvKipcbiAgICogU2VsZWN0IGEgZ2l2ZW4gU3BpbnF1ZVNvcnRPcHRpb25cbiAgICovXG4gIHNlbGVjdE9wdGlvbihvcHRpb246IFNwaW5xdWVTb3J0T3B0aW9uKSB7XG4gICAgaWYgKHRoaXMuYWN0aXZlICYmIHRoaXMuYWN0aXZlLmlkID09PSBvcHRpb24uaWQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5hY3RpdmUgPSBvcHRpb247XG4gICAgdGhpcy5zb3J0Q2hhbmdlLmVtaXQodGhpcy5hY3RpdmUpO1xuICB9XG59XG4iLCI8YnV0dG9uIG1hdC1zdHJva2VkLWJ1dHRvbiBbbWF0TWVudVRyaWdnZXJGb3JdPVwibWVudVwiIGFyaWEtbGFiZWw9XCJPcGVuIHNvcnQgbWVudVwiPlxuICB7eyBhY3RpdmUubGFiZWwgfX1cbiAgPG1hdC1pY29uPmFycm93X2Ryb3BfZG93bjwvbWF0LWljb24+XG48L2J1dHRvbj5cbjxtYXQtbWVudSAjbWVudT1cIm1hdE1lbnVcIj5cbiAgPGRpdiBtYXQtbWVudS1pdGVtICpuZ0Zvcj1cImxldCBvcHRpb24gb2Ygb3B0aW9uc1wiIChjbGljayk9XCJzZWxlY3RPcHRpb24ob3B0aW9uKVwiPlxuICAgIHt7IG9wdGlvbi5sYWJlbCB9fVxuICA8L2Rpdj5cbjwvbWF0LW1lbnU+XG4iXX0=

@@ -14,3 +14,3 @@ import { Injectable } from '@angular/core';

/**
* Get a SpinqueQuery from a stacked query by endpoint name
* Get a SpinqueQuery from a stacked query. Can be either an endpoint or a commit/snapshot.
*/

@@ -29,3 +29,3 @@ getQuery(queryStack, endpointOrCommit) {

/**
* Add a query with optional parameter to the query.
* Add an endpoint query with optional parameters to the query stack.
*/

@@ -49,3 +49,3 @@ addQuery(queryStack, endpoint, parameters = {}) {

else {
draftStack.push(Object.assign(Object.assign({}, queryStack[index]), { parameters }));
draftStack.push({ endpoint: endpointOrCommit, parameters });
}

@@ -68,10 +68,2 @@ });

/**
* Replace the whole set of query endpoints in a query at once.
*/
updateQueryStack(queryStack, stack) {
return produce(queryStack, draftStack => {
draftStack = stack;
});
}
/**
* Remove the last endpoint from the query.

@@ -116,2 +108,2 @@ */

}] });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BpbnF1ZS1xdWVyeS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vcHJvamVjdHMvc3BpbnF1ZS1hbmd1bGFyLXVpL3NyYy9zcGlucXVlLXF1ZXJ5LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sT0FBTyxDQUFDOztBQXdCaEMsbUVBQW1FO0FBQ25FLHVEQUF1RDtBQUN2RCw4RUFBOEU7QUFFOUU7Ozs7R0FJRztBQUlILE1BQU0sT0FBTyxtQkFBbUI7SUFDOUI7O09BRUc7SUFDSCxRQUFRLENBQUMsVUFBNkIsRUFBRSxnQkFBd0I7UUFDOUQsT0FBTyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQ3pCLE9BQU8sVUFBVSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsUUFBUSxLQUFLLGdCQUFnQixJQUFJLFFBQVEsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sS0FBSyxnQkFBZ0IsQ0FBQTtRQUM3RyxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRDs7T0FFRztJQUNILFlBQVksQ0FBQyxVQUE2QjtRQUN4QyxPQUFPLFVBQVUsQ0FBQyxVQUFVLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQzNDLENBQUM7SUFFRDs7T0FFRztJQUNILFFBQVEsQ0FBQyxVQUE2QixFQUFFLFFBQWdCLEVBQUUsYUFBcUMsRUFBRTtRQUMvRixPQUFPLE9BQU8sQ0FBQyxVQUFVLEVBQUUsVUFBVSxDQUFDLEVBQUU7WUFDdEMsVUFBVSxDQUFDLElBQUksQ0FBQyxFQUFFLFFBQVEsRUFBRSxVQUFVLEVBQUUsQ0FBQyxDQUFDO1FBQzVDLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVEOztPQUVHO0lBQ0gsV0FBVyxDQUFDLFVBQTZCLEVBQUUsZ0JBQXdC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LEdBQUcsS0FBSyxDQUFDO1FBQ3BDLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs7Z0hBaEdVLG1CQUFtQjtvSEFBbkIsbUJBQW1CLGNBRmxCLE1BQU07MkZBRVAsbUJBQW1CO2tCQUgvQixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHByb2R1Y2UgfSBmcm9tICdpbW1lcic7XG5cbmV4cG9ydCBpbnRlcmZhY2UgU3BpbnF1ZVF1ZXJ5UGFyYW1ldGVycyB7XG4gIFtuYW1lOiBzdHJpbmddOiBhbnk7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU3BpbnF1ZUFwaVF1ZXJ5IHtcbiAgcmVhZG9ubHkgd29ya3NwYWNlPzogc3RyaW5nO1xuICByZWFkb25seSBhcGk/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IGVuZHBvaW50OiBzdHJpbmc7XG4gIHJlYWRvbmx5IHBhcmFtZXRlcnM/OiBTcGlucXVlUXVlcnlQYXJhbWV0ZXJzO1xuICByZWFkb25seSBjb25maWc/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU3BpbnF1ZVN0cmF0ZWd5UXVlcnkge1xuICByZWFkb25seSB3b3Jrc3BhY2U/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IGNvbW1pdDogc3RyaW5nO1xuICByZWFkb25seSBwYXJhbWV0ZXJzPzogU3BpbnF1ZVF1ZXJ5UGFyYW1ldGVycztcbiAgcmVhZG9ubHkgY29uZmlnPzogc3RyaW5nO1xufVxuXG5leHBvcnQgdHlwZSBTcGlucXVlUXVlcnkgPSBTcGlucXVlQXBpUXVlcnkgfCBTcGlucXVlU3RyYXRlZ3lRdWVyeTtcbmV4cG9ydCB0eXBlIFNwaW5xdWVRdWVyeVN0YWNrID0gU3BpbnF1ZVF1ZXJ5W107XG5cbi8vIFRoaXMgd291bGQgYWN0dWFsbHkgYmUgbW9yZSBjb3JyZWN0IGJ1dCBkb2VzIG5vdCB3b3JrIGN1cnJlbnRseTpcbi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9taWNyb3NvZnQvVHlwZVNjcmlwdC9pc3N1ZXMvMzM1OTFcbi8vIGV4cG9ydCB0eXBlIFNwaW5xdWVRdWVyeVN0YWNrID0gU3BpbnF1ZUFwaVF1ZXJ5W10gfCBTcGlucXVlU3RyYXRlZ3lRdWVyeVtdO1xuXG4vKipcbiAqIFNwaW5xdWVRdWVyeVNlcnZpY2UgcHJvdmlkZXMgbWV0aG9kcyB0aGF0IHRha2UgU3BpbnF1ZVF1ZXJ5IG9iamVjdHMgYW5kIHRyYW5zZm9ybSB0aGVtIGludG9cbiAqIG5ldyBTcGlucXVlUXVlcnkgb2JqZWN0cy4gVGhpcyB3YXkgcXVlcmllcyBjYW4gYmUgY29uc3RydWN0ZWQgYW5kIG1hbmlwdWxhdGVkIGluIGFuIGltbXV0YWJsZSBtYW5uZXIuXG4gKiBUaGlzIHNlcnZpY2UgaXMgY2VudHJhbCBpbiBtb3N0IGFwcGxpY2F0aW9ucy5cbiAqL1xuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgU3BpbnF1ZVF1ZXJ5U2VydmljZSB7XG4gIC8qKlxuICAgKiBHZXQgYSBTcGlucXVlUXVlcnkgZnJvbSBhIHN0YWNrZWQgcXVlcnkgYnkgZW5kcG9pbnQgbmFtZVxuICAgKi9cbiAgZ2V0UXVlcnkocXVlcnlTdGFjazogU3BpbnF1ZVF1ZXJ5U3RhY2ssIGVuZHBvaW50T3JDb21taXQ6IHN0cmluZyk6IFNwaW5xdWVRdWVyeSB7XG4gICAgcmV0dXJuIHF1ZXJ5U3RhY2suZmluZChlID0+IHtcbiAgICAgIHJldHVybiAnZW5kcG9pbnQnIGluIGUgJiYgZS5lbmRwb2ludCA9PT0gZW5kcG9pbnRPckNvbW1pdCB8fCAnY29tbWl0JyBpbiBlICYmIGUuY29tbWl0ID09PSBlbmRwb2ludE9yQ29tbWl0XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogR2V0IHRoZSBsYXN0IHF1ZXJ5IG9mIGEgcXVlcnkgc3RhY2tcbiAgICovXG4gIGdldExhc3RRdWVyeShxdWVyeVN0YWNrOiBTcGlucXVlUXVlcnlTdGFjayk6IFNwaW5xdWVRdWVyeSB7XG4gICAgcmV0dXJuIHF1ZXJ5U3RhY2tbcXVlcnlTdGFjay5sZW5ndGggLSAxXTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGQgYSBxdWVyeSB3aXRoIG9wdGlvbmFsIHBhcmFtZXRlciB0byB0aGUgcXVlcnkuXG4gICAqL1xuICBhZGRRdWVyeShxdWVyeVN0YWNrOiBTcGlucXVlUXVlcnlTdGFjaywgZW5kcG9pbnQ6IHN0cmluZywgcGFyYW1ldGVyczogU3BpbnF1ZVF1ZXJ5UGFyYW1ldGVycyA9IHt9KTogU3BpbnF1ZVF1ZXJ5U3RhY2sge1xuICAgIHJldHVybiBwcm9kdWNlKHF1ZXJ5U3RhY2ssIGRyYWZ0U3RhY2sgPT4ge1xuICAgICAgZHJhZnRTdGFjay5wdXNoKHsgZW5kcG9pbnQsIHBhcmFtZXRlcnMgfSk7XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogRmluZCB0aGUgcXVlcnkgd2l0aCB0aGUgZ2l2ZW4gZW5kcG9pbnQgbmFtZSBhbmQgdXBkYXRlIGl0cyBwYXJhbWV0ZXJzLlxuICAgKi9cbiAgdXBkYXRlUXVlcnkocXVlcnlTdGFjazogU3BpbnF1ZVF1ZXJ5U3RhY2ssIGVuZHBvaW50T3JDb21taXQ6IHN0cmluZywgcGFyYW1ldGVyczogU3BpbnF1ZVF1ZXJ5UGFyYW1ldGVycyA9IHt9KTogU3BpbnF1ZVF1ZXJ5U3RhY2sge1xuICAgIHJldHVybiBwcm9kdWNlKHF1ZXJ5U3RhY2ssIGRyYWZ0U3RhY2sgPT4ge1xuICAgICAgY29uc3QgaW5kZXggPSBxdWVyeVN0YWNrLmZpbmRJbmRleChlID0+IHtcbiAgICAgICAgcmV0dXJuICdlbmRwb2ludCcgaW4gZSAmJiBlLmVuZHBvaW50ID09PSBlbmRwb2ludE9yQ29tbWl0IHx8ICdjb21taXQnIGluIGUgJiYgZS5jb21taXQgPT09IGVuZHBvaW50T3JDb21taXRcbiAgICAgIH0pO1xuICAgICAgaWYgKGluZGV4ID49IDApIHtcbiAgICAgICAgZHJhZnRTdGFja1tpbmRleF0gPSB7IC4uLnF1ZXJ5U3RhY2tbaW5kZXhdLCBwYXJhbWV0ZXJzIH07XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBkcmFmdFN0YWNrLnB1c2goeyAuLi5xdWVyeVN0YWNrW2luZGV4XSwgcGFyYW1ldGVycyB9KTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZW1vdmUgdGhlIGVuZHBvaW50IHdpdGggdGhlIGdpdmVuIG5hbWUgZnJvbSB0aGUgcXVlcnkuXG4gICAqL1xuICByZW1vdmVRdWVyeShxdWVyeVN0YWNrOiBTcGlucXVlUXVlcnlTdGFjaywgZW5kcG9pbnRPckNvbW1pdDogc3RyaW5nKTogU3BpbnF1ZVF1ZXJ5U3RhY2sge1xuICAgIHJldHVybiBwcm9kdWNlKHF1ZXJ5U3RhY2ssIGRyYWZ0U3RhY2sgPT4ge1xuICAgICAgY29uc3QgaW5kZXggPSBxdWVyeVN0YWNrLmZpbmRJbmRleChlID0+IHtcbiAgICAgICAgcmV0dXJuICdlbmRwb2ludCcgaW4gZSAmJiBlLmVuZHBvaW50ID09PSBlbmRwb2ludE9yQ29tbWl0IHx8ICdjb21taXQnIGluIGUgJiYgZS5jb21taXQgPT09IGVuZHBvaW50T3JDb21taXRcbiAgICAgIH0pO1xuICAgICAgaWYgKGluZGV4ID49IDApIHtcbiAgICAgICAgZHJhZnRTdGFjayA9IGRyYWZ0U3RhY2suc3BsaWNlKGluZGV4LCAxKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXBsYWNlIHRoZSB3aG9sZSBzZXQgb2YgcXVlcnkgZW5kcG9pbnRzIGluIGEgcXVlcnkgYXQgb25jZS5cbiAgICovXG4gIHVwZGF0ZVF1ZXJ5U3RhY2socXVlcnlTdGFjazogU3BpbnF1ZVF1ZXJ5U3RhY2ssIHN0YWNrOiBTcGlucXVlUXVlcnlTdGFjayk6IFNwaW5xdWVRdWVyeVN0YWNrIHtcbiAgICByZXR1cm4gcHJvZHVjZShxdWVyeVN0YWNrLCBkcmFmdFN0YWNrID0+IHtcbiAgICAgIGRyYWZ0U3RhY2sgPSBzdGFjaztcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZW1vdmUgdGhlIGxhc3QgZW5kcG9pbnQgZnJvbSB0aGUgcXVlcnkuXG4gICAqL1xuICBwb3BRdWVyeShxdWVyeVN0YWNrOiBTcGlucXVlUXVlcnlTdGFjayk6IFNwaW5xdWVRdWVyeVN0YWNrIHtcbiAgICByZXR1cm4gcHJvZHVjZShxdWVyeVN0YWNrLCBkcmFmdFN0YWNrID0+IHtcbiAgICAgIGRyYWZ0U3RhY2sucG9wKCk7XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogU2V0IHRoZSB2YWx1ZSBvZiB0aGUgcGFyYW1ldGVyIHdpdGggdGhlIGdpdmVuIG5hbWUuIElmIG5vIGVuZHBvaW50IG5hbWUgaXMgZ2l2ZW4sIHRoZSBsYXN0IGVuZHBvaW50IGlzIHRha2VuXG4gICAqIHRvIGJlIHRoZSBlbmRwb2ludCBmb3Igd2hpY2ggdGhlIHBhcmFtZXRlciBpcyBjaGFuZ2VkLlxuICAgKi9cbiAgc2V0UGFyYW1ldGVyKHF1ZXJ5U3RhY2s6IFNwaW5xdWVRdWVyeVN0YWNrLCBwYXJhbU5hbWU6IHN0cmluZywgdmFsdWU6IGFueSwgZW5kcG9pbnRPckNvbW1pdD86IHN0cmluZyk6IFNwaW5xdWVRdWVyeVN0YWNrIHtcbiAgICBsZXQgZW5kcG9pbnRJbmRleCA9IHF1ZXJ5U3RhY2subGVuZ3RoIC0gMTtcbiAgICBpZiAoISFlbmRwb2ludE9yQ29tbWl0KSB7XG4gICAgICBlbmRwb2ludEluZGV4ID0gcXVlcnlTdGFjay5maW5kSW5kZXgoZSA9PiB7XG4gICAgICAgIHJldHVybiAnZW5kcG9pbnQnIGluIGUgJiYgZS5lbmRwb2ludCA9PT0gZW5kcG9pbnRPckNvbW1pdCB8fCAnY29tbWl0JyBpbiBlICYmIGUuY29tbWl0ID09PSBlbmRwb2ludE9yQ29tbWl0XG4gICAgICB9KTtcbiAgICB9XG4gICAgcmV0dXJuIHByb2R1Y2UocXVlcnlTdGFjaywgZHJhZnRTdGFjayA9PiB7XG4gICAgICBjb25zdCBxdWVyeSA9IGRyYWZ0U3RhY2tbZW5kcG9pbnRJbmRleF07XG4gICAgICBpZiAoIXF1ZXJ5ICkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBpZiAoICFxdWVyeS5wYXJhbWV0ZXJzICkge1xuICAgICAgICBxdWVyeS5wYXJhbWV0ZXJzID0ge307XG4gICAgICB9XG4gICAgICBxdWVyeS5wYXJhbWV0ZXJzW3BhcmFtTmFtZV0gPSB2YWx1ZTtcbiAgICAgIGRyYWZ0U3RhY2tbZW5kcG9pbnRJbmRleF0gPSBxdWVyeTtcbiAgICB9KTtcbiAgfVxufVxuIl19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BpbnF1ZS1xdWVyeS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vcHJvamVjdHMvc3BpbnF1ZS1hbmd1bGFyLXVpL3NyYy9zcGlucXVlLXF1ZXJ5LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sT0FBTyxDQUFDOztBQXdCaEMsbUVBQW1FO0FBQ25FLHVEQUF1RDtBQUN2RCw4RUFBOEU7QUFFOUU7Ozs7R0FJRztBQUlILE1BQU0sT0FBTyxtQkFBbUI7SUFDOUI7O09BRUc7SUFDSCxRQUFRLENBQUMsVUFBNkIsRUFBRSxnQkFBd0I7UUFDOUQsT0FBTyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQ3pCLE9BQU8sVUFBVSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsUUFBUSxLQUFLLGdCQUFnQixJQUFJLFFBQVEsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sS0FBSyxnQkFBZ0IsQ0FBQTtRQUM3RyxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRDs7T0FFRztJQUNILFlBQVksQ0FBQyxVQUE2QjtRQUN4QyxPQUFPLFVBQVUsQ0FBQyxVQUFVLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQzNDLENBQUM7SUFFRDs7T0FFRztJQUNILFFBQVEsQ0FBQyxVQUE2QixFQUFFLFFBQWdCLEVBQUUsYUFBcUMsRUFBRTtRQUMvRixPQUFPLE9BQU8sQ0FBQyxVQUFVLEVBQUUsVUFBVSxDQUFDLEVBQUU7WUFDdEMsVUFBVSxDQUFDLElBQUksQ0FBQyxFQUFFLFFBQVEsRUFBRSxVQUFVLEVBQUUsQ0FBQyxDQUFDO1FBQzVDLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVEOztPQUVHO0lBQ0gsV0FBVyxDQUFDLFVBQTZCLEVBQUUsZ0JBQXdC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Q25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgcHJvZHVjZSB9IGZyb20gJ2ltbWVyJztcblxuZXhwb3J0IGludGVyZmFjZSBTcGlucXVlUXVlcnlQYXJhbWV0ZXJzIHtcbiAgW25hbWU6IHN0cmluZ106IGFueTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTcGlucXVlQXBpUXVlcnkge1xuICByZWFkb25seSB3b3Jrc3BhY2U/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IGFwaT86IHN0cmluZztcbiAgcmVhZG9ubHkgZW5kcG9pbnQ6IHN0cmluZztcbiAgcmVhZG9ubHkgcGFyYW1ldGVycz86IFNwaW5xdWVRdWVyeVBhcmFtZXRlcnM7XG4gIHJlYWRvbmx5IGNvbmZpZz86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTcGlucXVlU3RyYXRlZ3lRdWVyeSB7XG4gIHJlYWRvbmx5IHdvcmtzcGFjZT86IHN0cmluZztcbiAgcmVhZG9ubHkgY29tbWl0OiBzdHJpbmc7XG4gIHJlYWRvbmx5IHBhcmFtZXRlcnM/OiBTcGlucXVlUXVlcnlQYXJhbWV0ZXJzO1xuICByZWFkb25seSBjb25maWc/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCB0eXBlIFNwaW5xdWVRdWVyeSA9IFNwaW5xdWVBcGlRdWVyeSB8IFNwaW5xdWVTdHJhdGVneVF1ZXJ5O1xuZXhwb3J0IHR5cGUgU3BpbnF1ZVF1ZXJ5U3RhY2sgPSBTcGlucXVlUXVlcnlbXTtcblxuLy8gVGhpcyB3b3VsZCBhY3R1YWxseSBiZSBtb3JlIGNvcnJlY3QgYnV0IGRvZXMgbm90IHdvcmsgY3VycmVudGx5OlxuLy8gaHR0cHM6Ly9naXRodWIuY29tL21pY3Jvc29mdC9UeXBlU2NyaXB0L2lzc3Vlcy8zMzU5MVxuLy8gZXhwb3J0IHR5cGUgU3BpbnF1ZVF1ZXJ5U3RhY2sgPSBTcGlucXVlQXBpUXVlcnlbXSB8IFNwaW5xdWVTdHJhdGVneVF1ZXJ5W107XG5cbi8qKlxuICogU3BpbnF1ZVF1ZXJ5U2VydmljZSBwcm92aWRlcyBtZXRob2RzIHRoYXQgdGFrZSBTcGlucXVlUXVlcnkgb2JqZWN0cyBhbmQgdHJhbnNmb3JtIHRoZW0gaW50b1xuICogbmV3IFNwaW5xdWVRdWVyeSBvYmplY3RzLiBUaGlzIHdheSBxdWVyaWVzIGNhbiBiZSBjb25zdHJ1Y3RlZCBhbmQgbWFuaXB1bGF0ZWQgaW4gYW4gaW1tdXRhYmxlIG1hbm5lci5cbiAqIFRoaXMgc2VydmljZSBpcyBjZW50cmFsIGluIG1vc3QgYXBwbGljYXRpb25zLlxuICovXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBTcGlucXVlUXVlcnlTZXJ2aWNlIHtcbiAgLyoqXG4gICAqIEdldCBhIFNwaW5xdWVRdWVyeSBmcm9tIGEgc3RhY2tlZCBxdWVyeS4gQ2FuIGJlIGVpdGhlciBhbiBlbmRwb2ludCBvciBhIGNvbW1pdC9zbmFwc2hvdC5cbiAgICovXG4gIGdldFF1ZXJ5KHF1ZXJ5U3RhY2s6IFNwaW5xdWVRdWVyeVN0YWNrLCBlbmRwb2ludE9yQ29tbWl0OiBzdHJpbmcpOiBTcGlucXVlUXVlcnkge1xuICAgIHJldHVybiBxdWVyeVN0YWNrLmZpbmQoZSA9PiB7XG4gICAgICByZXR1cm4gJ2VuZHBvaW50JyBpbiBlICYmIGUuZW5kcG9pbnQgPT09IGVuZHBvaW50T3JDb21taXQgfHwgJ2NvbW1pdCcgaW4gZSAmJiBlLmNvbW1pdCA9PT0gZW5kcG9pbnRPckNvbW1pdFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgbGFzdCBxdWVyeSBvZiBhIHF1ZXJ5IHN0YWNrXG4gICAqL1xuICBnZXRMYXN0UXVlcnkocXVlcnlTdGFjazogU3BpbnF1ZVF1ZXJ5U3RhY2spOiBTcGlucXVlUXVlcnkge1xuICAgIHJldHVybiBxdWVyeVN0YWNrW3F1ZXJ5U3RhY2subGVuZ3RoIC0gMV07XG4gIH1cblxuICAvKipcbiAgICogQWRkIGFuIGVuZHBvaW50IHF1ZXJ5IHdpdGggb3B0aW9uYWwgcGFyYW1ldGVycyB0byB0aGUgcXVlcnkgc3RhY2suXG4gICAqL1xuICBhZGRRdWVyeShxdWVyeVN0YWNrOiBTcGlucXVlUXVlcnlTdGFjaywgZW5kcG9pbnQ6IHN0cmluZywgcGFyYW1ldGVyczogU3BpbnF1ZVF1ZXJ5UGFyYW1ldGVycyA9IHt9KTogU3BpbnF1ZVF1ZXJ5U3RhY2sge1xuICAgIHJldHVybiBwcm9kdWNlKHF1ZXJ5U3RhY2ssIGRyYWZ0U3RhY2sgPT4ge1xuICAgICAgZHJhZnRTdGFjay5wdXNoKHsgZW5kcG9pbnQsIHBhcmFtZXRlcnMgfSk7XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogRmluZCB0aGUgcXVlcnkgd2l0aCB0aGUgZ2l2ZW4gZW5kcG9pbnQgbmFtZSBhbmQgdXBkYXRlIGl0cyBwYXJhbWV0ZXJzLlxuICAgKi9cbiAgdXBkYXRlUXVlcnkocXVlcnlTdGFjazogU3BpbnF1ZVF1ZXJ5U3RhY2ssIGVuZHBvaW50T3JDb21taXQ6IHN0cmluZywgcGFyYW1ldGVyczogU3BpbnF1ZVF1ZXJ5UGFyYW1ldGVycyA9IHt9KTogU3BpbnF1ZVF1ZXJ5U3RhY2sge1xuICAgIHJldHVybiBwcm9kdWNlKHF1ZXJ5U3RhY2ssIGRyYWZ0U3RhY2sgPT4ge1xuICAgICAgY29uc3QgaW5kZXggPSBxdWVyeVN0YWNrLmZpbmRJbmRleChlID0+IHtcbiAgICAgICAgcmV0dXJuICdlbmRwb2ludCcgaW4gZSAmJiBlLmVuZHBvaW50ID09PSBlbmRwb2ludE9yQ29tbWl0IHx8ICdjb21taXQnIGluIGUgJiYgZS5jb21taXQgPT09IGVuZHBvaW50T3JDb21taXRcbiAgICAgIH0pO1xuICAgICAgaWYgKGluZGV4ID49IDApIHtcbiAgICAgICAgZHJhZnRTdGFja1tpbmRleF0gPSB7IC4uLnF1ZXJ5U3RhY2tbaW5kZXhdLCBwYXJhbWV0ZXJzIH07XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBkcmFmdFN0YWNrLnB1c2goeyBlbmRwb2ludDogZW5kcG9pbnRPckNvbW1pdCwgcGFyYW1ldGVycyB9KTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZW1vdmUgdGhlIGVuZHBvaW50IHdpdGggdGhlIGdpdmVuIG5hbWUgZnJvbSB0aGUgcXVlcnkuXG4gICAqL1xuICByZW1vdmVRdWVyeShxdWVyeVN0YWNrOiBTcGlucXVlUXVlcnlTdGFjaywgZW5kcG9pbnRPckNvbW1pdDogc3RyaW5nKTogU3BpbnF1ZVF1ZXJ5U3RhY2sge1xuICAgIHJldHVybiBwcm9kdWNlKHF1ZXJ5U3RhY2ssIGRyYWZ0U3RhY2sgPT4ge1xuICAgICAgY29uc3QgaW5kZXggPSBxdWVyeVN0YWNrLmZpbmRJbmRleChlID0+IHtcbiAgICAgICAgcmV0dXJuICdlbmRwb2ludCcgaW4gZSAmJiBlLmVuZHBvaW50ID09PSBlbmRwb2ludE9yQ29tbWl0IHx8ICdjb21taXQnIGluIGUgJiYgZS5jb21taXQgPT09IGVuZHBvaW50T3JDb21taXRcbiAgICAgIH0pO1xuICAgICAgaWYgKGluZGV4ID49IDApIHtcbiAgICAgICAgZHJhZnRTdGFjayA9IGRyYWZ0U3RhY2suc3BsaWNlKGluZGV4LCAxKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZW1vdmUgdGhlIGxhc3QgZW5kcG9pbnQgZnJvbSB0aGUgcXVlcnkuXG4gICAqL1xuICBwb3BRdWVyeShxdWVyeVN0YWNrOiBTcGlucXVlUXVlcnlTdGFjayk6IFNwaW5xdWVRdWVyeVN0YWNrIHtcbiAgICByZXR1cm4gcHJvZHVjZShxdWVyeVN0YWNrLCBkcmFmdFN0YWNrID0+IHtcbiAgICAgIGRyYWZ0U3RhY2sucG9wKCk7XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogU2V0IHRoZSB2YWx1ZSBvZiB0aGUgcGFyYW1ldGVyIHdpdGggdGhlIGdpdmVuIG5hbWUuIElmIG5vIGVuZHBvaW50IG5hbWUgaXMgZ2l2ZW4sIHRoZSBsYXN0IGVuZHBvaW50IGlzIHRha2VuXG4gICAqIHRvIGJlIHRoZSBlbmRwb2ludCBmb3Igd2hpY2ggdGhlIHBhcmFtZXRlciBpcyBjaGFuZ2VkLlxuICAgKi9cbiAgc2V0UGFyYW1ldGVyKHF1ZXJ5U3RhY2s6IFNwaW5xdWVRdWVyeVN0YWNrLCBwYXJhbU5hbWU6IHN0cmluZywgdmFsdWU6IGFueSwgZW5kcG9pbnRPckNvbW1pdD86IHN0cmluZyk6IFNwaW5xdWVRdWVyeVN0YWNrIHtcbiAgICBsZXQgZW5kcG9pbnRJbmRleCA9IHF1ZXJ5U3RhY2subGVuZ3RoIC0gMTtcbiAgICBpZiAoISFlbmRwb2ludE9yQ29tbWl0KSB7XG4gICAgICBlbmRwb2ludEluZGV4ID0gcXVlcnlTdGFjay5maW5kSW5kZXgoZSA9PiB7XG4gICAgICAgIHJldHVybiAnZW5kcG9pbnQnIGluIGUgJiYgZS5lbmRwb2ludCA9PT0gZW5kcG9pbnRPckNvbW1pdCB8fCAnY29tbWl0JyBpbiBlICYmIGUuY29tbWl0ID09PSBlbmRwb2ludE9yQ29tbWl0XG4gICAgICB9KTtcbiAgICB9XG4gICAgcmV0dXJuIHByb2R1Y2UocXVlcnlTdGFjaywgZHJhZnRTdGFjayA9PiB7XG4gICAgICBjb25zdCBxdWVyeSA9IGRyYWZ0U3RhY2tbZW5kcG9pbnRJbmRleF07XG4gICAgICBpZiAoIXF1ZXJ5ICkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBpZiAoICFxdWVyeS5wYXJhbWV0ZXJzICkge1xuICAgICAgICBxdWVyeS5wYXJhbWV0ZXJzID0ge307XG4gICAgICB9XG4gICAgICBxdWVyeS5wYXJhbWV0ZXJzW3BhcmFtTmFtZV0gPSB2YWx1ZTtcbiAgICAgIGRyYWZ0U3RhY2tbZW5kcG9pbnRJbmRleF0gPSBxdWVyeTtcbiAgICB9KTtcbiAgfVxufVxuIl19

@@ -242,2 +242,2 @@ import { Inject, Injectable } from '@angular/core';

}] }, { type: i1.HttpClient }]; } });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BpbnF1ZS1yZXN0LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9wcm9qZWN0cy9zcGlucXVlLWFuZ3VsYXItdWkvc3JjL3NwaW5xdWUtcmVzdC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxhQUFhLEVBQWMsRUFBRSxFQUFFLFVBQVUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNqRSxPQUFPLEVBQUUsVUFBVSxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM1RCxPQUFPLEVBQW9CLHFCQUFxQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7OztBQThEL0U7OztHQUdHO0FBSUgsTUFBTSxPQUFPLGtCQUFrQjtJQU83QixZQUFtRCxTQUEyQixFQUFVLElBQWdCO1FBQXJELGNBQVMsR0FBVCxTQUFTLENBQWtCO1FBQVUsU0FBSSxHQUFKLElBQUksQ0FBWTtRQUZoRyx1QkFBa0IsR0FBNEIsRUFBRSxDQUFDO0lBRWtELENBQUM7SUFFNUc7O09BRUc7SUFDSSxjQUFjLENBQUMsTUFBYztRQUNsQyxJQUFJLENBQUMsY0FBYyxHQUFHLE1BQU0sQ0FBQztJQUMvQixDQUFDO0lBRUQ7O09BRUc7SUFDSSxvQkFBb0I7UUFDekIsSUFBSSxDQUFDLGNBQWMsR0FBRyxTQUFTLENBQUM7SUFDbEMsQ0FBQztJQUVEOztPQUVHO0lBQ0ksV0FBVyxDQUFDLEdBQVc7UUFDNUIsSUFBSSxDQUFDLFdBQVcsR0FBRyxHQUFHLENBQUM7SUFDekIsQ0FBQztJQUVEOztPQUVHO0lBQ0ksaUJBQWlCO1FBQ3RCLElBQUksQ0FBQyxXQUFXLEdBQUcsU0FBUyxDQUFDO0lBQy9CLENBQUM7SUFFRDs7T0FFRztJQUNJLGlCQUFpQixDQUFDLFNBQWlCO1FBQ3hDLElBQUksQ0FBQyxpQkFBaUIsR0FB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QUFFO1lBQ3ZCLE1BQU0sSUFBSSxHQUFHLENBQUMsQ0FBQyxXQUFXLElBQUksS0FBSyxDQUFDO1lBQ3BDLE1BQU0sV0FBVyxHQUFHLEdBQUcsSUFBSSxJQUFJLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUM7WUFDcEQsT0FBTyxJQUFJLEdBQUcsV0FBVyxDQUFDO1NBQzNCO2FBQU0sSUFBSSxJQUFJLElBQUksQ0FBQyxFQUFFO1lBQ3BCLE1BQU0sSUFBSSxHQUFHLENBQUMsQ0FBQyxXQUFXLElBQUksS0FBSyxDQUFDO1lBQ3BDLE9BQU8sR0FBRyxJQUFJLElBQUksQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDO1NBQzNCO0lBQ0gsQ0FBQzs7K0dBL1BVLGtCQUFrQixrQkFPVCxxQkFBcUI7bUhBUDlCLGtCQUFrQixjQUZqQixNQUFNOzJGQUVQLGtCQUFrQjtrQkFIOUIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkI7OzBCQVFjLE1BQU07MkJBQUMscUJBQXFCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cENsaWVudCwgSHR0cFBhcmFtcyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgY29tYmluZUxhdGVzdCwgT2JzZXJ2YWJsZSwgb2YsIHRocm93RXJyb3IgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGNhdGNoRXJyb3IsIG1hcCwgc3dpdGNoTWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgU3BpbnF1ZUFwaUNvbmZpZywgU3BpbnF1ZUFwaUNvbmZpZ1ZhbHVlIH0gZnJvbSAnLi9zcGlucXVlLWFwaS5jb25maWcnO1xuaW1wb3J0IHsgU3BpbnF1ZVF1ZXJ5LCBTcGlucXVlUXVlcnlTdGFjaywgU3BpbnF1ZVF1ZXJ5UGFyYW1ldGVycyB9IGZyb20gJy4vc3BpbnF1ZS1xdWVyeS5zZXJ2aWNlJztcblxuZXhwb3J0IGludGVyZmFjZSBTcGlucXVlQ29udGV4dCB7XG4gIFtwYXJhbWV0ZXJOYW1lOiBzdHJpbmddOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU3BpbnF1ZVJlc3VsdCB7XG4gIGl0ZW1zOiBTcGlucXVlUmVzdWx0SXRlbVtdO1xuICB0eXBlOiBbXTtcbiAgY291bnQ6IG51bWJlcjtcbiAgb2Zmc2V0OiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU3BpbnF1ZVN0YXRpc3RpY3Mge1xuICB0b3RhbDogbnVtYmVyO1xuICBzdGF0czoge1xuICAgIGN1dG9mZjogc3RyaW5nO1xuICAgIG51bVJlc3VsdHM6IG51bWJlcjtcbiAgfVtdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNwaW5xdWVSZXN1bHRJdGVtIHtcbiAgdHVwbGU6IGFueVtdO1xuICByYW5rOiBudW1iZXI7XG4gIHByb2JhYmlsaXR5OiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU3BpbnF1ZVJlc3VsdEl0ZW1UdXBsZSB7XG4gIGlkOiBzdHJpbmc7XG4gIGNsYXNzOiBzdHJpbmdbXTtcbiAgYXR0cmlidXRlczogb2JqZWN0O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNwaW5xdWVGYWNldCB7XG4gIHNlbGVjdGVkOiBTcGlucXVlRmFjZXRPcHRpb25bXTtcbiAgb3B0aW9uczogU3BpbnF1ZUZhY2V0T3B0aW9uW107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU3BpbnF1ZUZhY2V0T3B0aW9uIHtcbiAgaWQ6IHN0cmluZztcbiAgc2NvcmU6IG51bWJlcjtcbiAgdGl0bGU/OiBzdHJpbmc7XG4gIHZhbHVlOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU3BpbnF1ZVF1ZXJ5UGFyYW1zIHtcbiAgW25hbWU6IHN0cmluZ106IGFueTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBSZXF1ZXN0RW5yaWNobWVudCB7XG4gIHBhcmFtcz86IEh0dHBQYXJhbXMgfCB7IFtrZXk6IHN0cmluZ106IGFueSB9O1xuICBoZWFkZXJzPzogeyBBdXRob3JpemF0aW9uOiBzdHJpbmcgfTtcbiAgd2l0aENyZWRlbnRpYWxzPzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IHR5cGUgUmVxdWVzdEVucmljaG1lbnRIb29rID0gKFxuICBxdWVyeVN0YWNrOiBTcGlucXVlUXVlcnlTdGFjayxcbiAgb3BlcmF0aW9uOiBzdHJpbmcsXG4gIG9wdGlvbnM6IHsgW25hbWU6IHN0cmluZ106IGFueSB9XG4pID0+IE9ic2VydmFibGU8UmVxdWVzdEVucmljaG1lbnQ+O1xuXG4vKipcbiAqIFNwaW5xdWVSZXN0U2VydmljZSBwcm92aWRlcyBtZXRob2RzIHRoYXQgdGFrZSBTcGlucXVlUXVlcnkgb2JqZWN0cywgZXZhbHVhdGUgdGhlbSB1c2luZyB0aGUgU3BpbnF1ZSBSRVNUIEFQSSBhbmQgcmV0dXJuIHRoZSBvdXRwdXQuXG4gKiBJbiBhbGwgc2VhcmNoIGFwcGxpY2F0aW9ucywgdGhpcyBzZXJ2aWNlIGlzIGF0IHRoZSBhYnNvbHV0ZSBjb3JlLlxuICovXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgU3BpbnF1ZVJlc3RTZXJ2aWNlIHtcbiAgcHJpdmF0ZSBjb25maWdPdmVycmlkZTogc3RyaW5nO1xuICBwcml2YXRlIGFwaU92ZXJyaWRlOiBzdHJpbmc7XG4gIHByaXZhdGUgd29ya3NwYWNlT3ZlcnJpZGU6IHN0cmluZztcblxuICBwcml2YXRlIGVucmljaFJlcXVlc3RIb29rczogUmVxdWVzdEVucmljaG1lbnRIb29rW10gPSBbXTtcblxuICBjb25zdHJ1Y3RvcihASW5qZWN0KFNwaW5xdWVBcGlDb25maWdWYWx1ZSkgcHJpdmF0ZSBhcGlDb25maWc6IFNwaW5xdWVBcGlDb25maWcsIHByaXZhdGUgaHR0cDogSHR0cENsaWVudCkge31cblxuICAvKipcbiAgICogVGVtcG9yYXJpbHkgb3ZlcnJpZGUgdGhlICdjb25maWcnIHZhbHVlIGZyb20gdGhlIEFQSSBjb25maWd1cmF0aW9uIHNldCBhdCBpbml0aWFsaXNhdGlvblxuICAgKi9cbiAgcHVibGljIG92ZXJyaWRlQ29uZmlnKGNvbmZpZzogc3RyaW5nKSB7XG4gICAgdGhpcy5jb25maWdPdmVycmlkZSA9IGNvbmZpZztcbiAgfVxuXG4gIC8qKlxuICAgKiBSZW1vdmUgYW55IHRlbXBvcmFyeSBvdmVycmlkZXMgb2YgdGhlICdjb25maWcnIHZhbHVlIGZyb20gdGhlIEFQSSBjb25maWd1cmF0aW9uXG4gICAqL1xuICBwdWJsaWMgZm9yZ2V0Q29uZmlnT3ZlcnJpZGUoKSB7XG4gICAgdGhpcy5jb25maWdPdmVycmlkZSA9IHVuZGVmaW5lZDtcbiAgfVxuXG4gIC8qKlxuICAgKiBUZW1wb3JhcmlseSBvdmVycmlkZSB0aGUgJ2FwaScgdmFsdWUgZnJvbSB0aGUgQVBJIGNvbmZpZ3VyYXRpb24gc2V0IGF0IGluaXRpYWxpc2F0aW9uXG4gICAqL1xuICBwdWJsaWMgb3ZlcnJpZGVBcGkoYXBpOiBzdHJpbmcpIHtcbiAgICB0aGlzLmFwaU92ZXJyaWRlID0gYXBpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlbW92ZSBhbnkgdGVtcG9yYXJ5IG92ZXJyaWRlcyBvZiB0aGUgJ2FwaScgdmFsdWUgZnJvbSB0aGUgQVBJIGNvbmZpZ3VyYXRpb25cbiAgICovXG4gIHB1YmxpYyBmb3JnZXRBcGlPdmVycmlkZSgpIHtcbiAgICB0aGlzLmFwaU92ZXJyaWRlID0gdW5kZWZpbmVkO1xuICB9XG5cbiAgLyoqXG4gICAqIFRlbXBvcmFyaWx5IG92ZXJyaWRlIHRoZSAnd29ya3NwYWNlJyB2YWx1ZSBmcm9tIHRoZSBBUEkgY29uZmlndXJhdGlvbiBzZXQgYXQgaW5pdGlhbGlzYXRpb25cbiAgICovXG4gIHB1YmxpYyBvdmVycmlkZVdvcmtzcGFjZSh3b3Jrc3BhY2U6IHN0cmluZykge1xuICAgIHRoaXMud29ya3NwYWNlT3ZlcnJpZGUgPSB3b3Jrc3BhY2U7XG4gIH1cblxuICAvKipcbiAgICogUmVtb3ZlIGFueSB0ZW1wb3Jhcnkgb3ZlcnJpZGVzIG9mIHRoZSAnd29ya3NwYWNlJyB2YWx1ZSBmcm9tIHRoZSBBUEkgY29uZmlndXJhdGlvblxuICAgKi9cbiAgcHVibGljIGZvcmdldFdvcmtzcGFjZU92ZXJyaWRlKCkge1xuICAgIHRoaXMud29ya3NwYWNlT3ZlcnJpZGUgPSB1bmRlZmluZWQ7XG4gIH1cblxuICAvKipcbiAgICogRmV0Y2hlcyBxdWVyeSByZXN1bHRzIG9mIGEgU3BpbnF1ZVF1ZXJ5IG9yIFNwaW5xdWVRdWVyeVN0YWNrXG4gICAqL1xuICBwdWJsaWMgZ2V0UmVzdWx0cyhcbiAgICBxdWVyeTogU3BpbnF1ZVF1ZXJ5IHwgU3BpbnF1ZVF1ZXJ5U3RhY2ssXG4gICAgb3B0aW9ucz86IHsgW25hbWU6IHN0cmluZ106IGFueSB9XG4gICk6IE9ic2VydmFibGU8U3BpbnF1ZVJlc3VsdD4ge1xuICAgIGNvbnN0IHF1ZXJ5U3RhY2sgPSBxdWVyeSBpbnN0YW5jZW9mIEFycmF5ID8gcXVlcnkgOiBbcXVlcnldO1xuICAgIHJldHVybiB0aGlzLmdldChxdWVyeVN0YWNrLCAncmVzdWx0cycsIG9wdGlvbnMpO1xuICB9XG5cbiAgLyoqXG4gICAqIEZldGNoZXMgcXVlcnkgc3RhdGlzdGljc1xuICAgKi9cbiAgcHVibGljIGdldFN0YXRpc3RpY3MocXVlcnk6IFNwaW5xdWVRdWVyeSB8IFNwaW5xdWVRdWVyeVN0YWNrKTogT2JzZXJ2YWJsZTxTcGlucXVlU3RhdGlzdGljcz4ge1xuICAgIGNvbnN0IHF1ZXJ5U3RhY2sgPSBxdWVyeSBpbnN0YW5jZW9mIEFycmF5ID8gcXVlcnkgOiBbcXVlcnldO1xuICAgIHJldHVybiB0aGlzLmdldDxTcGlucXVlU3RhdGlzdGljcz4ocXVlcnlTdGFjaywgJ3N0YXRpc3RpY3MnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBGZXRjaGVzIHF1ZXJ5IG9wdGlvbnNcbiAgICpcbiAgICogV2UgY29uc2lkZXIgdGhyZWUgdHlwZXMgb2Ygb3B0aW9uc1xuICAgKiAxLiBhIHNpbmdsZSBhdG9taWMgdmFsdWUgKHN0cmluZywgbnVtYmVyIG9yIGRhdGUpXG4gICAqIDIuIGFuIG9iamVjdC1zdHJpbmcgcGFpci5cbiAgICogICAgSW4gdGhpcyBjYXNlIHdlIG9ubHkgcmV0dXJuIHRoZSBpZCBvZiB0aGUgb2JqZWN0IGFuZCB0aGUgc3RyaW5nIGlzIGNvbnNpZGVyZWQgYXMgdGhlIHRpdGxlXG4gICAqIDMuIGEgdHVwbGUgd2l0aCBvbmUgb3IgbW9yZSBvYmplY3RzXG4gICAqICAgIFRoZSBpZCBvZiB0aGUgZmlyc3QgaXRlbSBpbiB0aGUgdHVwbGUgaXMgdXNlZCBhcyB0aGUgdmFsdWVcbiAgICogICAgUmV0dXJuIHRoZSBmdWxsIHR1cGxlIGFzIHRoZSB2YWx1ZSwgdGhlIGNsaWVudCBzaG91bGQgZmlndXJlIG91dCBob3cgdG8gcHJlc2VudCB0aGVtXG4gICAqL1xuICBwdWJsaWMgZ2V0T3B0aW9ucyhxdWVyeTogU3BpbnF1ZVF1ZXJ5IHwgU3BpbnF1ZVF1ZXJ5U3RhY2ssIG9wdGlvbnM/KTogT2JzZXJ2YWJsZTxTcGlucXVlRmFjZXQ+IHtcbiAgICBjb25zdCBxdWVyeVN0YWNrID0gcXVlcnkgaW5zdGFuY2VvZiBBcnJheSA/IHF1ZXJ5IDogW3F1ZXJ5XTtcbiAgICAvLyBUT0RPOiBhZnRlciBhIGJhY2tlbmQgY2hhbmdlLCB0aGlzIHdpbGwgYmVjb21lOlxuICAgIC8vIHJldHVybiB0aGlzLmdldChxdWVyeSwgJ29wdGlvbnMnKTtcbiAgICAvLyBUT0RPOiB0aGVuIHRoaXMgY2FuIGJlIHJlbW92ZWQ6XG4gICAgcmV0dXJuIHRoaXMuZ2V0KHF1ZXJ5U3RhY2ssICdyZXN1bHRzJywgb3B0aW9ucykucGlwZShcbiAgICAgIG1hcCgoZGF0YSkgPT4ge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIHNlbGVjdGVkOiBbXSwgLy8gd2UgZG8gbm90IGhhdmUgdGhlc2UgaW4gMi41LiBJbiAzLjAgd2Ugd2lsbCBnZXQgdGhlc2UgYmFjay5cbiAgICAgICAgICBvcHRpb25zOiAoZGF0YS5pdGVtcyA/IGRhdGEuaXRlbXMgOiBbXSkubWFwKChyZXN1bHQpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHR1cGxlID0gcmVzdWx0LnR1cGxlO1xuICAgICAgICAgICAgaWYgKHR1cGxlLmxlbmd0aCA9PT0gMSAmJiAodHlwZW9mIHR1cGxlWzBdID09PSAnc3RyaW5nJyB8fCB0eXBlb2YgdHVwbGVbMF0gPT09ICdudW1iZXInKSkge1xuICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIHNjb3JlOiByZXN1bHQucHJvYmFiaWxpdHksXG4gICAgICAgICAgICAgICAgaWQ6IHR1cGxlWzBdLFxuICAgICAgICAgICAgICAgIHRpdGxlOiB0dXBsZVswXSxcbiAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoXG4gICAgICAgICAgICAgIHR1cGxlLmxlbmd0aCA9PT0gMiAmJlxuICAgICAgICAgICAgICB0dXBsZVswXSBpbnN0YW5jZW9mIE9iamVjdCAmJlxuICAgICAgICAgICAgICAodHlwZW9mIHR1cGxlWzFdID09PSAnc3RyaW5nJyB8fCB0eXBlb2YgdHVwbGVbMV0gPT09ICdudW1iZXInKVxuICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgc2NvcmU6IHJlc3VsdC5wcm9iYWJpbGl0eSxcbiAgICAgICAgICAgICAgICBpZDogdHVwbGVbMF0uaWQsXG4gICAgICAgICAgICAgICAgdGl0bGU6IHR1cGxlWzFdLFxuICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICBzY29yZTogcmVzdWx0LnByb2JhYmlsaXR5LFxuICAgICAgICAgICAgICAgIGlkOiB0dXBsZVswXS5pZCxcbiAgICAgICAgICAgICAgICB2YWx1ZTogdHVwbGUsXG4gICAgICAgICAgICAgIH07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSksXG4gICAgICAgIH07XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgYWRkRW5yaWNoUmVxdWVzdEhvb2soaG9vazogUmVxdWVzdEVucmljaG1lbnRIb29rKTogdm9pZCB7XG4gICAgdGhpcy5lbnJpY2hSZXF1ZXN0SG9va3MucHVzaChob29rKTtcbiAgfVxuXG4gIC8qIFByaXZhdGUgZnVuY3Rpb25zICovXG5cbiAgLyoqXG4gICAqIFRha2VzIGEgcXVlcnkgYW5kIG9wZXJhdGlvbiAocmVzdWx0cywgc3RhdGlzdGljcywgZXRjKSBhbmQgcmV0dXJuIGFuIE9ic2VydmFibGUgd2l0aCB0aGUgcmVzdWx0c1xuICAgKi9cbiAgcHJpdmF0ZSBnZXQ8VCA9IGFueT4oXG4gICAgcXVlcnlTdGFjazogU3BpbnF1ZVF1ZXJ5U3RhY2ssXG4gICAgb3BlcmF0aW9uOiBzdHJpbmcsXG4gICAgb3B0aW9uczogeyBbbmFtZTogc3RyaW5nXTogYW55IH0gPSB7fVxuICApOiBPYnNlcnZhYmxlPFQ+IHtcbiAgICBpZiAocXVlcnlTdGFjay5sZW5ndGggPT09IDApIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgLy8gMS4gQnVpbGQgdGhlIHF1ZXJ5IHVybCBieSBjb21iaW5pbmcgdGhlIGNvbmZpZ3VyZWQgYmFzZSB3aXRoIHRoZSBjb250ZXh0LCBxdWVyeSBwYXRoIGFuZCBvcGVyYXRpb25cbiAgICBjb25zdCB3b3Jrc3BhY2UgPSB0aGlzLndvcmtzcGFjZU92ZXJyaWRlIHx8IHF1ZXJ5U3RhY2tbMF0ud29ya3NwYWNlIHx8IHRoaXMuYXBpQ29uZmlnLndvcmtzcGFjZTtcbiAgICBsZXQgYmFzZSA9IGAke3RoaXMuYXBpQ29uZmlnLmJhc2VVcmx9LyR7dGhpcy5hcGlDb25maWcudmVyc2lvbn0vJHt3b3Jrc3BhY2V9YDtcbiAgICBpZiAoJ2VuZHBvaW50JyBpbiBxdWVyeVN0YWNrWzBdKSB7XG4gICAgICBjb25zdCBhcGkgPSB0aGlzLmFwaU92ZXJyaWRlIHx8IHF1ZXJ5U3RhY2tbMF0uYXBpIHx8IHRoaXMuYXBpQ29uZmlnLmFwaTtcbiAgICAgIGJhc2UgKz0gYC9hcGkvJHthcGl9YDtcbiAgICB9IGVsc2Uge1xuICAgICAgYmFzZSArPSBgL3N0YW5kYWxvbmVgXG4gICAgfVxuICAgIGNvbnN0IHF1ZXJ5UGF0aCA9IHRoaXMuZGVjb2RlU3RyaW5nKHF1ZXJ5U3RhY2spO1xuICAgIGNvbnN0IHVybCA9IGAke2Jhc2V9JHtxdWVyeVBhdGh9LyR7b3BlcmF0aW9ufWA7XG5cbiAgICAvLyAyLiBHZXQgcXVlcnkgcGFyYW1ldGVycyBieSBleHRlbmRpbmcgdGhlIEFQSSBjb25maWcgYmFzZSB3aXRoIHRoZSBwYXNzZWQgb3B0aW9uc1xuICAgIGNvbnN0IGNvbmZpZyA9IHRoaXMuY29uZmlnT3ZlcnJpZGUgfHwgcXVlcnlTdGFja1swXS5jb25maWcgfHwgdGhpcy5hcGlDb25maWcuY29uZmlnO1xuICAgIGNvbnN0IHBhcmFtcyA9IHsgY29uZmlnLCAuLi5vcHRpb25zLCB2ZXJzaW9uOiB0aGlzLmFwaUNvbmZpZy5hcHBWZXJzaW9uIH07XG5cbiAgICBsZXQgZW5yaWNobWVudCQ6IE9ic2VydmFibGU8UmVxdWVzdEVucmljaG1lbnQ+O1xuICAgIGlmICh0aGlzLmVucmljaFJlcXVlc3RIb29rcz8ubGVuZ3RoID4gMCkge1xuICAgICAgZW5yaWNobWVudCQgPSBjb21iaW5lTGF0ZXN0KFxuICAgICAgICAvLyBFeGVjdXRlIGFueSBob29rcyB0aGF0IG1heSBoYXZlIHJlZ2lzdGVyZWQgKGN1cnJlbnRseSBvbmx5IHNwaW5xdWUtYW5ndWxhci11aS9hdXRoIHJlZ2lzdGVycyBvbmUpXG4gICAgICAgIHRoaXMuZW5yaWNoUmVxdWVzdEhvb2tzLm1hcCgoZm4pID0+IGZuKHF1ZXJ5U3RhY2ssIG9wZXJhdGlvbiwgb3B0aW9ucykpXG4gICAgICApLnBpcGUobWFwKChyZXN1bHRzKSA9PiByZXN1bHRzLnJlZHVjZSgoYWNjLCBjdXIpID0+ICh7IC4uLmFjYywgLi4uY3VyIH0pLCB7fSkpKTtcbiAgICB9IGVsc2Uge1xuICAgICAgZW5yaWNobWVudCQgPSBvZih7fSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGVucmljaG1lbnQkLnBpcGUoXG4gICAgICBzd2l0Y2hNYXAoKGVucmljaG1lbnQpID0+IHRoaXMuaHR0cC5nZXQ8VD4odXJsLCB7IHBhcmFtcywgLi4uZW5yaWNobWVudCB9KSksXG4gICAgICBjYXRjaEVycm9yKChlcnJvcikgPT4ge1xuICAgICAgICBjb25zb2xlLmVycm9yKGVycm9yKTtcbiAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoZXJyb3IpO1xuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIFRha2VzIGEgU3BpbnF1ZVF1ZXJ5U3RhY2sgb2JqZWN0IGFuZCBzdHJpbmdpZmllcyBpdC5cbiAgICogU2VlIGh0dHBzOi8vZG9jcy5zcGlucXVlLmNvbS8yLjQvcmVzdC9iYXNpYy5odG1sIGZvciBtb3JlIGluZm9ybWF0aW9uLlxuICAgKi9cbiAgZGVjb2RlU3RyaW5nKHF1ZXJ5U3RhY2s6IFNwaW5xdWVRdWVyeVN0YWNrKTogc3RyaW5nIHtcbiAgICBjb25zdCBjb250ZXh0U3RyaW5nID0gdGhpcy5nZXRDb250ZXh0U3RyaW5nKCk7XG4gICAgcmV0dXJuIGNvbnRleHRTdHJpbmcgKyBxdWVyeVN0YWNrLm1hcCgocSkgPT4gdGhpcy5nZXRRdWVyeVN0cmluZyhxKSkuam9pbignJyk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB0aGUgY29udGV4dCBzdHJpbmcgKHdpdGggcGFyYW1ldGVyIGRlZmF1bHRzKVxuICAgKi9cbiAgZ2V0Q29udGV4dFN0cmluZygpOiBzdHJpbmcge1xuICAgIGNvbnN0IGNvbnRleHQgPSB0aGlzLmFwaUNvbmZpZy5jb250ZXh0IHx8IHt9O1xuICAgIHJldHVybiBPYmplY3QuZW50cmllcyhjb250ZXh0KS5yZWR1Y2UoXG4gICAgICAoYWNjLCBjdXIpID0+IGAke2FjY30vYy8ke2VuY29kZVVSSUNvbXBvbmVudChjdXJbMF0pfS8ke2VuY29kZVVSSUNvbXBvbmVudChjdXJbMV0pfWAsXG4gICAgICAnJ1xuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogVGFrZXMgYSBTcGlucXVlRW5kcG9pbnQgYW5kIHN0cmluZ2lmaWVzIGl0LlxuICAgKi9cbiAgZ2V0UXVlcnlTdHJpbmcocXVlcnk6IFNwaW5xdWVRdWVyeSk6IHN0cmluZyB7XG4gICAgY29uc3QgcGFyYW1ldGVyU3RyaW5nID0gdGhpcy5nZXRQYXJhbWV0ZXJTdHJpbmcocXVlcnkucGFyYW1ldGVycyk7XG4gICAgcmV0dXJuIGAvcS8ke2VuY29kZVVSSUNvbXBvbmVudCgnZW5kcG9pbnQnIGluIHF1ZXJ5ID8gcXVlcnkuZW5kcG9pbnQgOiBxdWVyeS5jb21taXQpfSR7cGFyYW1ldGVyU3RyaW5nfWA7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB0aGUgZW5kcG9pbnQncyBwYXJhbWV0ZXJzIGFzIGEgc3RyaW5nICgvcC97a2V5MX0ve3ZhbHVlMX0vcC97a2V5Mn0ve3ZhbHVlMn0vLi4pXG4gICAqL1xuICBwcml2YXRlIGdldFBhcmFtZXRlclN0cmluZyhwYXJhbWV0ZXJzOiBTcGlucXVlUXVlcnlQYXJhbWV0ZXJzKTogc3RyaW5nIHtcbiAgICBpZiAoIXBhcmFtZXRlcnMpIHtcbiAgICAgIHJldHVybiAnJztcbiAgICB9XG4gICAgcmV0dXJuIChcbiAgICAgIE9iamVjdC5lbnRyaWVzKHBhcmFtZXRlcnMpXG4gICAgICAgIC8vIFBhcmFtZXRlciB2YWx1ZSBtdXN0IGJlIGZpbGxlZFxuICAgICAgICAuZmlsdGVyKChbcGFyYW0sIHZhbHVlXSkgPT4gIXRoaXMuaXNFbXB0eVZhbHVlKHZhbHVlKSlcbiAgICAgICAgLnJlZHVjZSgocGFyYW1TdHJpbmcsIFtwYXJhbSwgdmFsdWVdKSA9PiB7XG4gICAgICAgICAgdmFsdWUgPSBlbmNvZGVVUklDb21wb25lbnQodGhpcy5nZXRWYWx1ZVN0cmluZyh2YWx1ZSkpO1xuICAgICAgICAgIHJldHVybiBgJHtwYXJhbVN0cmluZ30vcC8ke2VuY29kZVVSSUNvbXBvbmVudChwYXJhbSl9LyR7dmFsdWV9YDtcbiAgICAgICAgfSwgJycpXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGEgYm9vbGVhbiBpbmRpY2F0aW5nIHdoZXRoZXIgb3Igbm90IHRoZSBnaXZlbiB2YWx1ZSBpcyBlbXB0eVxuICAgKi9cbiAgcHJpdmF0ZSBpc0VtcHR5VmFsdWUodmFsdWU6IGFueSk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAodmFsdWUgaW5zdGFuY2VvZiBBcnJheSAmJiB2YWx1ZS5sZW5ndGggPT09IDApIHx8IHZhbHVlID09PSBudWxsIHx8IHZhbHVlID09PSB1bmRlZmluZWQgfHwgdmFsdWUgPT09ICcnO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRWYWx1ZVN0cmluZyh2YWx1ZTogYW55KTogc3RyaW5nIHtcbiAgICBpZiAodmFsdWUgaW5zdGFuY2VvZiBBcnJheSkge1xuICAgICAgY29uc3QgdHVwbGVzID0gdmFsdWUubWFwKCh2KSA9PiB7XG4gICAgICAgIHJldHVybiB0aGlzLmdldFR1cGxlU3RyaW5nKHYpO1xuICAgICAgfSk7XG4gICAgICByZXR1cm4gdHVwbGVzLmpvaW4oJ3wnKTtcbiAgICB9IGVsc2UgaWYgKHZhbHVlIGluc3RhbmNlb2YgT2JqZWN0KSB7XG4gICAgICByZXR1cm4gdGhpcy5nZXRUdXBsZVN0cmluZyh2YWx1ZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB2YWx1ZTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyBhIHN0cmluZyBmb3JtYXR0ZWQgdmVyc2lvbiBvZiBhIHR1cGxlXG4gICAqL1xuICBwcml2YXRlIGdldFR1cGxlU3RyaW5nKFxuICAgIG86IHsgdHVwbGU6IHN0cmluZ1tdOyBwcm9iYWJpbGl0eTogbnVtYmVyIHwgc3RyaW5nIH0gfCB7IGlkOiBzdHJpbmc7IHByb2JhYmlsaXR5OiBudW1iZXIgfCBzdHJpbmcgfSB8IHN0cmluZ1xuICApOiBzdHJpbmcge1xuICAgIGlmICh0eXBlb2YgbyA9PT0gJ3N0cmluZycpIHtcbiAgICAgIHJldHVybiBgMS4wKCR7b30pYDtcbiAgICB9IGVsc2UgaWYgKCd0dXBsZScgaW4gbykge1xuICAgICAgY29uc3QgcHJvYiA9IG8ucHJvYmFiaWxpdHkgfHwgJzEuMCc7XG4gICAgICBjb25zdCB0dXBsZVN0cmluZyA9IGAke3Byb2J9KCR7by50dXBsZS5qb2luKCcsJyl9KWA7XG4gICAgICByZXR1cm4gcHJvYiArIHR1cGxlU3RyaW5nO1xuICAgIH0gZWxzZSBpZiAoJ2lkJyBpbiBvKSB7XG4gICAgICBjb25zdCBwcm9iID0gby5wcm9iYWJpbGl0eSB8fCAnMS4wJztcbiAgICAgIHJldHVybiBgJHtwcm9ifSgke28uaWR9KWA7XG4gICAgfVxuICB9XG59XG4iXX0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BpbnF1ZS1yZXN0LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9wcm9qZWN0cy9zcGlucXVlLWFuZ3VsYXItdWkvc3JjL3NwaW5xdWUtcmVzdC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxhQUFhLEVBQWMsRUFBRSxFQUFFLFVBQVUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNqRSxPQUFPLEVBQUUsVUFBVSxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM1RCxPQUFPLEVBQW9CLHFCQUFxQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7OztBQThEL0U7OztHQUdHO0FBSUgsTUFBTSxPQUFPLGtCQUFrQjtJQU83QixZQUN5QyxTQUEyQixFQUMxRCxJQUFnQjtRQURlLGNBQVMsR0FBVCxTQUFTLENBQWtCO1FBQzFELFNBQUksR0FBSixJQUFJLENBQVk7UUFKbEIsdUJBQWtCLEdBQTRCLEVBQUUsQ0FBQztJQUt0RCxDQUFDO0lBRUo7O09BRUc7SUFDSSxjQUFjLENBQUMsTUFBYztRQUNsQyxJQUFJLENBQUMsY0FBYyxHQUFHLE1BQU0sQ0FBQztJQUMvQixDQUFDO0lBRUQ7O09BRUc7SUFDSSxvQkFBb0I7UUFDekIsSUFBSSxDQUFDLGNBQWMsR0FBRyxTQUFTLENBQUM7SUFDbEMsQ0FBQztJQUVEOztPQUVHO0lBQ0ksV0FBVyxDQUFDLEdBQVc7UUFDNUIsSUFBSSxDQUFDLFdBQVcsR0FBRyxHQUFHLENBQUM7SUFDekIsQ0FBQztJQUVEOztPQUVHO0lBQ0ksaUJBQWlCO1FBQ3RCLElBQUksQ0FBQyxXQUFXLEdBQUcsU0FBUyxDQUFDO0lBQy9CLENBQUM7SUFFRDs7T0FFRztJQUNJLGlCQUFpQixDQUFDLFNBQWlCO1FBQ3hDLElBQUksQ0FBQyxpQkFBaUIsR0FB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QUFFO1lBQ3ZCLE1BQU0sSUFBSSxHQUFHLENBQUMsQ0FBQyxXQUFXLElBQUksS0FBSyxDQUFDO1lBQ3BDLE1BQU0sV0FBVyxHQUFHLEdBQUcsSUFBSSxJQUFJLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUM7WUFDcEQsT0FBTyxJQUFJLEdBQUcsV0FBVyxDQUFDO1NBQzNCO2FBQU0sSUFBSSxJQUFJLElBQUksQ0FBQyxFQUFFO1lBQ3BCLE1BQU0sSUFBSSxHQUFHLENBQUMsQ0FBQyxXQUFXLElBQUksS0FBSyxDQUFDO1lBQ3BDLE9BQU8sR0FBRyxJQUFJLElBQUksQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDO1NBQzNCO0lBQ0gsQ0FBQzs7K0dBbFFVLGtCQUFrQixrQkFRbkIscUJBQXFCO21IQVJwQixrQkFBa0IsY0FGakIsTUFBTTsyRkFFUCxrQkFBa0I7a0JBSDlCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25COzswQkFTSSxNQUFNOzJCQUFDLHFCQUFxQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBDbGllbnQsIEh0dHBQYXJhbXMgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGNvbWJpbmVMYXRlc3QsIE9ic2VydmFibGUsIG9mLCB0aHJvd0Vycm9yIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBjYXRjaEVycm9yLCBtYXAsIHN3aXRjaE1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IFNwaW5xdWVBcGlDb25maWcsIFNwaW5xdWVBcGlDb25maWdWYWx1ZSB9IGZyb20gJy4vc3BpbnF1ZS1hcGkuY29uZmlnJztcbmltcG9ydCB7IFNwaW5xdWVRdWVyeSwgU3BpbnF1ZVF1ZXJ5U3RhY2ssIFNwaW5xdWVRdWVyeVBhcmFtZXRlcnMgfSBmcm9tICcuL3NwaW5xdWUtcXVlcnkuc2VydmljZSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgU3BpbnF1ZUNvbnRleHQge1xuICBbcGFyYW1ldGVyTmFtZTogc3RyaW5nXTogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNwaW5xdWVSZXN1bHQge1xuICBpdGVtczogU3BpbnF1ZVJlc3VsdEl0ZW1bXTtcbiAgdHlwZTogc3RyaW5nW107XG4gIGNvdW50OiBudW1iZXI7XG4gIG9mZnNldDogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNwaW5xdWVTdGF0aXN0aWNzIHtcbiAgdG90YWw6IG51bWJlcjtcbiAgc3RhdHM6IHtcbiAgICBjdXRvZmY6IHN0cmluZztcbiAgICBudW1SZXN1bHRzOiBudW1iZXI7XG4gIH1bXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTcGlucXVlUmVzdWx0SXRlbSB7XG4gIHR1cGxlOiBhbnlbXTtcbiAgcmFuazogbnVtYmVyO1xuICBwcm9iYWJpbGl0eTogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNwaW5xdWVSZXN1bHRJdGVtVHVwbGUge1xuICBpZDogc3RyaW5nO1xuICBjbGFzczogc3RyaW5nW107XG4gIGF0dHJpYnV0ZXM6IG9iamVjdDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTcGlucXVlRmFjZXQge1xuICBzZWxlY3RlZDogU3BpbnF1ZUZhY2V0T3B0aW9uW107XG4gIG9wdGlvbnM6IFNwaW5xdWVGYWNldE9wdGlvbltdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNwaW5xdWVGYWNldE9wdGlvbiB7XG4gIGlkOiBzdHJpbmc7XG4gIHNjb3JlOiBudW1iZXI7XG4gIHRpdGxlPzogc3RyaW5nO1xuICB2YWx1ZTogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNwaW5xdWVRdWVyeVBhcmFtcyB7XG4gIFtuYW1lOiBzdHJpbmddOiBhbnk7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUmVxdWVzdEVucmljaG1lbnQge1xuICBwYXJhbXM/OiBIdHRwUGFyYW1zIHwgeyBba2V5OiBzdHJpbmddOiBhbnkgfTtcbiAgaGVhZGVycz86IHsgQXV0aG9yaXphdGlvbjogc3RyaW5nIH07XG4gIHdpdGhDcmVkZW50aWFscz86IGJvb2xlYW47XG59XG5cbmV4cG9ydCB0eXBlIFJlcXVlc3RFbnJpY2htZW50SG9vayA9IChcbiAgcXVlcnlTdGFjazogU3BpbnF1ZVF1ZXJ5U3RhY2ssXG4gIG9wZXJhdGlvbjogc3RyaW5nLFxuICBvcHRpb25zOiB7IFtuYW1lOiBzdHJpbmddOiBhbnkgfVxuKSA9PiBPYnNlcnZhYmxlPFJlcXVlc3RFbnJpY2htZW50PjtcblxuLyoqXG4gKiBTcGlucXVlUmVzdFNlcnZpY2UgcHJvdmlkZXMgbWV0aG9kcyB0aGF0IHRha2UgU3BpbnF1ZVF1ZXJ5IG9iamVjdHMsIGV2YWx1YXRlIHRoZW0gdXNpbmcgdGhlIFNwaW5xdWUgUkVTVCBBUEkgYW5kIHJldHVybiB0aGUgb3V0cHV0LlxuICogSW4gYWxsIHNlYXJjaCBhcHBsaWNhdGlvbnMsIHRoaXMgc2VydmljZSBpcyBhdCB0aGUgYWJzb2x1dGUgY29yZS5cbiAqL1xuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIFNwaW5xdWVSZXN0U2VydmljZSB7XG4gIHByaXZhdGUgY29uZmlnT3ZlcnJpZGU6IHN0cmluZztcbiAgcHJpdmF0ZSBhcGlPdmVycmlkZTogc3RyaW5nO1xuICBwcml2YXRlIHdvcmtzcGFjZU92ZXJyaWRlOiBzdHJpbmc7XG5cbiAgcHJpdmF0ZSBlbnJpY2hSZXF1ZXN0SG9va3M6IFJlcXVlc3RFbnJpY2htZW50SG9va1tdID0gW107XG5cbiAgY29uc3RydWN0b3IoXG4gICAgQEluamVjdChTcGlucXVlQXBpQ29uZmlnVmFsdWUpIHByaXZhdGUgYXBpQ29uZmlnOiBTcGlucXVlQXBpQ29uZmlnLFxuICAgIHByaXZhdGUgaHR0cDogSHR0cENsaWVudFxuICApIHt9XG5cbiAgLyoqXG4gICAqIFRlbXBvcmFyaWx5IG92ZXJyaWRlIHRoZSAnY29uZmlnJyB2YWx1ZSBmcm9tIHRoZSBBUEkgY29uZmlndXJhdGlvbiBzZXQgYXQgaW5pdGlhbGlzYXRpb25cbiAgICovXG4gIHB1YmxpYyBvdmVycmlkZUNvbmZpZyhjb25maWc6IHN0cmluZykge1xuICAgIHRoaXMuY29uZmlnT3ZlcnJpZGUgPSBjb25maWc7XG4gIH1cblxuICAvKipcbiAgICogUmVtb3ZlIGFueSB0ZW1wb3Jhcnkgb3ZlcnJpZGVzIG9mIHRoZSAnY29uZmlnJyB2YWx1ZSBmcm9tIHRoZSBBUEkgY29uZmlndXJhdGlvblxuICAgKi9cbiAgcHVibGljIGZvcmdldENvbmZpZ092ZXJyaWRlKCkge1xuICAgIHRoaXMuY29uZmlnT3ZlcnJpZGUgPSB1bmRlZmluZWQ7XG4gIH1cblxuICAvKipcbiAgICogVGVtcG9yYXJpbHkgb3ZlcnJpZGUgdGhlICdhcGknIHZhbHVlIGZyb20gdGhlIEFQSSBjb25maWd1cmF0aW9uIHNldCBhdCBpbml0aWFsaXNhdGlvblxuICAgKi9cbiAgcHVibGljIG92ZXJyaWRlQXBpKGFwaTogc3RyaW5nKSB7XG4gICAgdGhpcy5hcGlPdmVycmlkZSA9IGFwaTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZW1vdmUgYW55IHRlbXBvcmFyeSBvdmVycmlkZXMgb2YgdGhlICdhcGknIHZhbHVlIGZyb20gdGhlIEFQSSBjb25maWd1cmF0aW9uXG4gICAqL1xuICBwdWJsaWMgZm9yZ2V0QXBpT3ZlcnJpZGUoKSB7XG4gICAgdGhpcy5hcGlPdmVycmlkZSA9IHVuZGVmaW5lZDtcbiAgfVxuXG4gIC8qKlxuICAgKiBUZW1wb3JhcmlseSBvdmVycmlkZSB0aGUgJ3dvcmtzcGFjZScgdmFsdWUgZnJvbSB0aGUgQVBJIGNvbmZpZ3VyYXRpb24gc2V0IGF0IGluaXRpYWxpc2F0aW9uXG4gICAqL1xuICBwdWJsaWMgb3ZlcnJpZGVXb3Jrc3BhY2Uod29ya3NwYWNlOiBzdHJpbmcpIHtcbiAgICB0aGlzLndvcmtzcGFjZU92ZXJyaWRlID0gd29ya3NwYWNlO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlbW92ZSBhbnkgdGVtcG9yYXJ5IG92ZXJyaWRlcyBvZiB0aGUgJ3dvcmtzcGFjZScgdmFsdWUgZnJvbSB0aGUgQVBJIGNvbmZpZ3VyYXRpb25cbiAgICovXG4gIHB1YmxpYyBmb3JnZXRXb3Jrc3BhY2VPdmVycmlkZSgpIHtcbiAgICB0aGlzLndvcmtzcGFjZU92ZXJyaWRlID0gdW5kZWZpbmVkO1xuICB9XG5cbiAgLyoqXG4gICAqIEZldGNoZXMgcXVlcnkgcmVzdWx0cyBvZiBhIFNwaW5xdWVRdWVyeSBvciBTcGlucXVlUXVlcnlTdGFja1xuICAgKi9cbiAgcHVibGljIGdldFJlc3VsdHMoXG4gICAgcXVlcnk6IFNwaW5xdWVRdWVyeSB8IFNwaW5xdWVRdWVyeVN0YWNrLFxuICAgIG9wdGlvbnM/OiB7IFtuYW1lOiBzdHJpbmddOiBhbnkgfVxuICApOiBPYnNlcnZhYmxlPFNwaW5xdWVSZXN1bHQ+IHtcbiAgICBjb25zdCBxdWVyeVN0YWNrID0gcXVlcnkgaW5zdGFuY2VvZiBBcnJheSA/IHF1ZXJ5IDogW3F1ZXJ5XTtcbiAgICByZXR1cm4gdGhpcy5nZXQocXVlcnlTdGFjaywgJ3Jlc3VsdHMnLCBvcHRpb25zKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBGZXRjaGVzIHF1ZXJ5IHN0YXRpc3RpY3NcbiAgICovXG4gIHB1YmxpYyBnZXRTdGF0aXN0aWNzKHF1ZXJ5OiBTcGlucXVlUXVlcnkgfCBTcGlucXVlUXVlcnlTdGFjayk6IE9ic2VydmFibGU8U3BpbnF1ZVN0YXRpc3RpY3M+IHtcbiAgICBjb25zdCBxdWVyeVN0YWNrID0gcXVlcnkgaW5zdGFuY2VvZiBBcnJheSA/IHF1ZXJ5IDogW3F1ZXJ5XTtcbiAgICByZXR1cm4gdGhpcy5nZXQ8U3BpbnF1ZVN0YXRpc3RpY3M+KHF1ZXJ5U3RhY2ssICdzdGF0aXN0aWNzJyk7XG4gIH1cblxuICAvKipcbiAgICogRmV0Y2hlcyBxdWVyeSBvcHRpb25zXG4gICAqXG4gICAqIFdlIGNvbnNpZGVyIHRocmVlIHR5cGVzIG9mIG9wdGlvbnNcbiAgICogMS4gYSBzaW5nbGUgYXRvbWljIHZhbHVlIChzdHJpbmcsIG51bWJlciBvciBkYXRlKVxuICAgKiAyLiBhbiBvYmplY3Qtc3RyaW5nIHBhaXIuXG4gICAqICAgIEluIHRoaXMgY2FzZSB3ZSBvbmx5IHJldHVybiB0aGUgaWQgb2YgdGhlIG9iamVjdCBhbmQgdGhlIHN0cmluZyBpcyBjb25zaWRlcmVkIGFzIHRoZSB0aXRsZVxuICAgKiAzLiBhIHR1cGxlIHdpdGggb25lIG9yIG1vcmUgb2JqZWN0c1xuICAgKiAgICBUaGUgaWQgb2YgdGhlIGZpcnN0IGl0ZW0gaW4gdGhlIHR1cGxlIGlzIHVzZWQgYXMgdGhlIHZhbHVlXG4gICAqICAgIFJldHVybiB0aGUgZnVsbCB0dXBsZSBhcyB0aGUgdmFsdWUsIHRoZSBjbGllbnQgc2hvdWxkIGZpZ3VyZSBvdXQgaG93IHRvIHByZXNlbnQgdGhlbVxuICAgKi9cbiAgcHVibGljIGdldE9wdGlvbnMocXVlcnk6IFNwaW5xdWVRdWVyeSB8IFNwaW5xdWVRdWVyeVN0YWNrLCBvcHRpb25zPyk6IE9ic2VydmFibGU8U3BpbnF1ZUZhY2V0PiB7XG4gICAgY29uc3QgcXVlcnlTdGFjayA9IHF1ZXJ5IGluc3RhbmNlb2YgQXJyYXkgPyBxdWVyeSA6IFtxdWVyeV07XG4gICAgLy8gVE9ETzogYWZ0ZXIgYSBiYWNrZW5kIGNoYW5nZSwgdGhpcyB3aWxsIGJlY29tZTpcbiAgICAvLyByZXR1cm4gdGhpcy5nZXQocXVlcnksICdvcHRpb25zJyk7XG4gICAgLy8gVE9ETzogdGhlbiB0aGlzIGNhbiBiZSByZW1vdmVkOlxuICAgIHJldHVybiB0aGlzLmdldChxdWVyeVN0YWNrLCAncmVzdWx0cycsIG9wdGlvbnMpLnBpcGUoXG4gICAgICBtYXAoKGRhdGEpID0+IHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBzZWxlY3RlZDogW10sIC8vIHdlIGRvIG5vdCBoYXZlIHRoZXNlIGluIDIuNS4gSW4gMy4wIHdlIHdpbGwgZ2V0IHRoZXNlIGJhY2suXG4gICAgICAgICAgb3B0aW9uczogKGRhdGEuaXRlbXMgPyBkYXRhLml0ZW1zIDogW10pLm1hcCgocmVzdWx0KSA9PiB7XG4gICAgICAgICAgICBjb25zdCB0dXBsZSA9IHJlc3VsdC50dXBsZTtcbiAgICAgICAgICAgIGlmICh0dXBsZS5sZW5ndGggPT09IDEgJiYgKHR5cGVvZiB0dXBsZVswXSA9PT0gJ3N0cmluZycgfHwgdHlwZW9mIHR1cGxlWzBdID09PSAnbnVtYmVyJykpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICBzY29yZTogcmVzdWx0LnByb2JhYmlsaXR5LFxuICAgICAgICAgICAgICAgIGlkOiB0dXBsZVswXSxcbiAgICAgICAgICAgICAgICB0aXRsZTogdHVwbGVbMF0sXG4gICAgICAgICAgICAgIH07XG4gICAgICAgICAgICB9IGVsc2UgaWYgKFxuICAgICAgICAgICAgICB0dXBsZS5sZW5ndGggPT09IDIgJiZcbiAgICAgICAgICAgICAgdHVwbGVbMF0gaW5zdGFuY2VvZiBPYmplY3QgJiZcbiAgICAgICAgICAgICAgKHR5cGVvZiB0dXBsZVsxXSA9PT0gJ3N0cmluZycgfHwgdHlwZW9mIHR1cGxlWzFdID09PSAnbnVtYmVyJylcbiAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIHNjb3JlOiByZXN1bHQucHJvYmFiaWxpdHksXG4gICAgICAgICAgICAgICAgaWQ6IHR1cGxlWzBdLmlkLFxuICAgICAgICAgICAgICAgIHRpdGxlOiB0dXBsZVsxXSxcbiAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgc2NvcmU6IHJlc3VsdC5wcm9iYWJpbGl0eSxcbiAgICAgICAgICAgICAgICBpZDogdHVwbGVbMF0uaWQsXG4gICAgICAgICAgICAgICAgdmFsdWU6IHR1cGxlLFxuICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pLFxuICAgICAgICB9O1xuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgcHVibGljIGFkZEVucmljaFJlcXVlc3RIb29rKGhvb2s6IFJlcXVlc3RFbnJpY2htZW50SG9vayk6IHZvaWQge1xuICAgIHRoaXMuZW5yaWNoUmVxdWVzdEhvb2tzLnB1c2goaG9vayk7XG4gIH1cblxuICAvKiBQcml2YXRlIGZ1bmN0aW9ucyAqL1xuXG4gIC8qKlxuICAgKiBUYWtlcyBhIHF1ZXJ5IGFuZCBvcGVyYXRpb24gKHJlc3VsdHMsIHN0YXRpc3RpY3MsIGV0YykgYW5kIHJldHVybiBhbiBPYnNlcnZhYmxlIHdpdGggdGhlIHJlc3VsdHNcbiAgICovXG4gIHByaXZhdGUgZ2V0PFQgPSBhbnk+KFxuICAgIHF1ZXJ5U3RhY2s6IFNwaW5xdWVRdWVyeVN0YWNrLFxuICAgIG9wZXJhdGlvbjogc3RyaW5nLFxuICAgIG9wdGlvbnM6IHsgW25hbWU6IHN0cmluZ106IGFueSB9ID0ge31cbiAgKTogT2JzZXJ2YWJsZTxUPiB7XG4gICAgaWYgKHF1ZXJ5U3RhY2subGVuZ3RoID09PSAwKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIC8vIDEuIEJ1aWxkIHRoZSBxdWVyeSB1cmwgYnkgY29tYmluaW5nIHRoZSBjb25maWd1cmVkIGJhc2Ugd2l0aCB0aGUgY29udGV4dCwgcXVlcnkgcGF0aCBhbmQgb3BlcmF0aW9uXG4gICAgY29uc3Qgd29ya3NwYWNlID0gdGhpcy53b3Jrc3BhY2VPdmVycmlkZSB8fCBxdWVyeVN0YWNrWzBdLndvcmtzcGFjZSB8fCB0aGlzLmFwaUNvbmZpZy53b3Jrc3BhY2U7XG4gICAgbGV0IGJhc2UgPSBgJHt0aGlzLmFwaUNvbmZpZy5iYXNlVXJsfS8ke3RoaXMuYXBpQ29uZmlnLnZlcnNpb259LyR7d29ya3NwYWNlfWA7XG4gICAgaWYgKCdlbmRwb2ludCcgaW4gcXVlcnlTdGFja1swXSkge1xuICAgICAgY29uc3QgYXBpID0gdGhpcy5hcGlPdmVycmlkZSB8fCBxdWVyeVN0YWNrWzBdLmFwaSB8fCB0aGlzLmFwaUNvbmZpZy5hcGk7XG4gICAgICBiYXNlICs9IGAvYXBpLyR7YXBpfWA7XG4gICAgfSBlbHNlIHtcbiAgICAgIGJhc2UgKz0gYC9zdGFuZGFsb25lYFxuICAgIH1cbiAgICBjb25zdCBxdWVyeVBhdGggPSB0aGlzLmRlY29kZVN0cmluZyhxdWVyeVN0YWNrKTtcbiAgICBjb25zdCB1cmwgPSBgJHtiYXNlfSR7cXVlcnlQYXRofS8ke29wZXJhdGlvbn1gO1xuXG4gICAgLy8gMi4gR2V0IHF1ZXJ5IHBhcmFtZXRlcnMgYnkgZXh0ZW5kaW5nIHRoZSBBUEkgY29uZmlnIGJhc2Ugd2l0aCB0aGUgcGFzc2VkIG9wdGlvbnNcbiAgICBjb25zdCBjb25maWcgPSB0aGlzLmNvbmZpZ092ZXJyaWRlIHx8IHF1ZXJ5U3RhY2tbMF0uY29uZmlnIHx8IHRoaXMuYXBpQ29uZmlnLmNvbmZpZztcbiAgICBjb25zdCBwYXJhbXMgPSB7IGNvbmZpZywgLi4ub3B0aW9ucywgdmVyc2lvbjogdGhpcy5hcGlDb25maWcuYXBwVmVyc2lvbiB9O1xuXG4gICAgbGV0IGVucmljaG1lbnQkOiBPYnNlcnZhYmxlPFJlcXVlc3RFbnJpY2htZW50PjtcbiAgICBpZiAodGhpcy5lbnJpY2hSZXF1ZXN0SG9va3M/Lmxlbmd0aCA+IDApIHtcbiAgICAgIGVucmljaG1lbnQkID0gY29tYmluZUxhdGVzdChcbiAgICAgICAgLy8gRXhlY3V0ZSBhbnkgaG9va3MgdGhhdCBtYXkgaGF2ZSByZWdpc3RlcmVkIChjdXJyZW50bHkgb25seSBzcGlucXVlLWFuZ3VsYXItdWkvYXV0aCByZWdpc3RlcnMgb25lKVxuICAgICAgICB0aGlzLmVucmljaFJlcXVlc3RIb29rcy5tYXAoKGZuKSA9PiBmbihxdWVyeVN0YWNrLCBvcGVyYXRpb24sIG9wdGlvbnMpKVxuICAgICAgKS5waXBlKG1hcCgocmVzdWx0cykgPT4gcmVzdWx0cy5yZWR1Y2UoKGFjYywgY3VyKSA9PiAoeyAuLi5hY2MsIC4uLmN1ciB9KSwge30pKSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGVucmljaG1lbnQkID0gb2Yoe30pO1xuICAgIH1cblxuICAgIHJldHVybiBlbnJpY2htZW50JC5waXBlKFxuICAgICAgc3dpdGNoTWFwKChlbnJpY2htZW50KSA9PiB0aGlzLmh0dHAuZ2V0PFQ+KHVybCwgeyBwYXJhbXMsIC4uLmVucmljaG1lbnQgfSkpLFxuICAgICAgY2F0Y2hFcnJvcigoZXJyb3IpID0+IHtcbiAgICAgICAgY29uc29sZS5lcnJvcihlcnJvcik7XG4gICAgICAgIHJldHVybiB0aHJvd0Vycm9yKGVycm9yKTtcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUYWtlcyBhIFNwaW5xdWVRdWVyeVN0YWNrIG9iamVjdCBhbmQgc3RyaW5naWZpZXMgaXQuXG4gICAqIFNlZSBodHRwczovL2RvY3Muc3BpbnF1ZS5jb20vMi40L3Jlc3QvYmFzaWMuaHRtbCBmb3IgbW9yZSBpbmZvcm1hdGlvbi5cbiAgICovXG4gIGRlY29kZVN0cmluZyhxdWVyeVN0YWNrOiBTcGlucXVlUXVlcnlTdGFjayk6IHN0cmluZyB7XG4gICAgY29uc3QgY29udGV4dFN0cmluZyA9IHRoaXMuZ2V0Q29udGV4dFN0cmluZygpO1xuICAgIHJldHVybiBjb250ZXh0U3RyaW5nICsgcXVlcnlTdGFjay5tYXAoKHEpID0+IHRoaXMuZ2V0UXVlcnlTdHJpbmcocSkpLmpvaW4oJycpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIGNvbnRleHQgc3RyaW5nICh3aXRoIHBhcmFtZXRlciBkZWZhdWx0cylcbiAgICovXG4gIGdldENvbnRleHRTdHJpbmcoKTogc3RyaW5nIHtcbiAgICBjb25zdCBjb250ZXh0ID0gdGhpcy5hcGlDb25maWcuY29udGV4dCB8fCB7fTtcbiAgICByZXR1cm4gT2JqZWN0LmVudHJpZXMoY29udGV4dCkucmVkdWNlKFxuICAgICAgKGFjYywgY3VyKSA9PiBgJHthY2N9L2MvJHtlbmNvZGVVUklDb21wb25lbnQoY3VyWzBdKX0vJHtlbmNvZGVVUklDb21wb25lbnQoY3VyWzFdKX1gLFxuICAgICAgJydcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIFRha2VzIGEgU3BpbnF1ZUVuZHBvaW50IGFuZCBzdHJpbmdpZmllcyBpdC5cbiAgICovXG4gIGdldFF1ZXJ5U3RyaW5nKHF1ZXJ5OiBTcGlucXVlUXVlcnkpOiBzdHJpbmcge1xuICAgIGNvbnN0IHBhcmFtZXRlclN0cmluZyA9IHRoaXMuZ2V0UGFyYW1ldGVyU3RyaW5nKHF1ZXJ5LnBhcmFtZXRlcnMpO1xuICAgIHJldHVybiBgL3EvJHtlbmNvZGVVUklDb21wb25lbnQoJ2VuZHBvaW50JyBpbiBxdWVyeSA/IHF1ZXJ5LmVuZHBvaW50IDogcXVlcnkuY29tbWl0KX0ke3BhcmFtZXRlclN0cmluZ31gO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIGVuZHBvaW50J3MgcGFyYW1ldGVycyBhcyBhIHN0cmluZyAoL3Ave2tleTF9L3t2YWx1ZTF9L3Ave2tleTJ9L3t2YWx1ZTJ9Ly4uKVxuICAgKi9cbiAgcHJpdmF0ZSBnZXRQYXJhbWV0ZXJTdHJpbmcocGFyYW1ldGVyczogU3BpbnF1ZVF1ZXJ5UGFyYW1ldGVycyk6IHN0cmluZyB7XG4gICAgaWYgKCFwYXJhbWV0ZXJzKSB7XG4gICAgICByZXR1cm4gJyc7XG4gICAgfVxuICAgIHJldHVybiAoXG4gICAgICBPYmplY3QuZW50cmllcyhwYXJhbWV0ZXJzKVxuICAgICAgICAvLyBQYXJhbWV0ZXIgdmFsdWUgbXVzdCBiZSBmaWxsZWRcbiAgICAgICAgLmZpbHRlcigoW3BhcmFtLCB2YWx1ZV0pID0+ICF0aGlzLmlzRW1wdHlWYWx1ZSh2YWx1ZSkpXG4gICAgICAgIC5yZWR1Y2UoKHBhcmFtU3RyaW5nLCBbcGFyYW0sIHZhbHVlXSkgPT4ge1xuICAgICAgICAgIHZhbHVlID0gZW5jb2RlVVJJQ29tcG9uZW50KHRoaXMuZ2V0VmFsdWVTdHJpbmcodmFsdWUpKTtcbiAgICAgICAgICByZXR1cm4gYCR7cGFyYW1TdHJpbmd9L3AvJHtlbmNvZGVVUklDb21wb25lbnQocGFyYW0pfS8ke3ZhbHVlfWA7XG4gICAgICAgIH0sICcnKVxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyBhIGJvb2xlYW4gaW5kaWNhdGluZyB3aGV0aGVyIG9yIG5vdCB0aGUgZ2l2ZW4gdmFsdWUgaXMgZW1wdHlcbiAgICovXG4gIHByaXZhdGUgaXNFbXB0eVZhbHVlKHZhbHVlOiBhbnkpOiBib29sZWFuIHtcbiAgICByZXR1cm4gKHZhbHVlIGluc3RhbmNlb2YgQXJyYXkgJiYgdmFsdWUubGVuZ3RoID09PSAwKSB8fCB2YWx1ZSA9PT0gbnVsbCB8fCB2YWx1ZSA9PT0gdW5kZWZpbmVkIHx8IHZhbHVlID09PSAnJztcbiAgfVxuXG4gIHByaXZhdGUgZ2V0VmFsdWVTdHJpbmcodmFsdWU6IGFueSk6IHN0cmluZyB7XG4gICAgaWYgKHZhbHVlIGluc3RhbmNlb2YgQXJyYXkpIHtcbiAgICAgIGNvbnN0IHR1cGxlcyA9IHZhbHVlLm1hcCgodikgPT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5nZXRUdXBsZVN0cmluZyh2KTtcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIHR1cGxlcy5qb2luKCd8Jyk7XG4gICAgfSBlbHNlIGlmICh2YWx1ZSBpbnN0YW5jZW9mIE9iamVjdCkge1xuICAgICAgcmV0dXJuIHRoaXMuZ2V0VHVwbGVTdHJpbmcodmFsdWUpO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gdmFsdWU7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgYSBzdHJpbmcgZm9ybWF0dGVkIHZlcnNpb24gb2YgYSB0dXBsZVxuICAgKi9cbiAgcHJpdmF0ZSBnZXRUdXBsZVN0cmluZyhcbiAgICBvOiB7IHR1cGxlOiBzdHJpbmdbXTsgcHJvYmFiaWxpdHk6IG51bWJlciB8IHN0cmluZyB9IHwgeyBpZDogc3RyaW5nOyBwcm9iYWJpbGl0eTogbnVtYmVyIHwgc3RyaW5nIH0gfCBzdHJpbmdcbiAgKTogc3RyaW5nIHtcbiAgICBpZiAodHlwZW9mIG8gPT09ICdzdHJpbmcnKSB7XG4gICAgICByZXR1cm4gYDEuMCgke299KWA7XG4gICAgfSBlbHNlIGlmICgndHVwbGUnIGluIG8pIHtcbiAgICAgIGNvbnN0IHByb2IgPSBvLnByb2JhYmlsaXR5IHx8ICcxLjAnO1xuICAgICAgY29uc3QgdHVwbGVTdHJpbmcgPSBgJHtwcm9ifSgke28udHVwbGUuam9pbignLCcpfSlgO1xuICAgICAgcmV0dXJuIHByb2IgKyB0dXBsZVN0cmluZztcbiAgICB9IGVsc2UgaWYgKCdpZCcgaW4gbykge1xuICAgICAgY29uc3QgcHJvYiA9IG8ucHJvYmFiaWxpdHkgfHwgJzEuMCc7XG4gICAgICByZXR1cm4gYCR7cHJvYn0oJHtvLmlkfSlgO1xuICAgIH1cbiAgfVxufVxuIl19

@@ -141,2 +141,3 @@ import * as i0 from '@angular/core';

this.location = location;
console.log('HELLO');
// Check API version to determine if we're using Auth0 or not

@@ -143,0 +144,0 @@ const usingAuth0 = parseInt(this.apiConfig.version.split('.')[0], 10) >= 3;

@@ -22,3 +22,9 @@ import * as i0 from '@angular/core';

if (changes.queryStack && changes.queryStack.currentValue) {
this.rest.getStatistics(changes.queryStack.currentValue).subscribe((res) => (this.statistics = res), (error) => console.log(error));
this.statistics = undefined;
this.rest.getStatistics(changes.queryStack.currentValue).subscribe((res) => {
this.statistics = res;
}, (error) => {
this.statistics = undefined;
console.log(error);
});
}

@@ -25,0 +31,0 @@ }

@@ -25,3 +25,3 @@ import * as i0 from '@angular/core';

// regex out of the needle
const regex = new RegExp(needle.split(' ').join('|'), 'ig');
const regex = new RegExp(needle.trim().split(' ').join('|'), 'ig');
// all sentences in the text

@@ -56,3 +56,2 @@ const sentences = text.split(/\.|\!|\?|\;|:/);

const n = bestSentencesMatches.filter(m => m.index > start && m.index < start + size).length;
console.log(n);
if (n > acc.n) {

@@ -68,3 +67,3 @@ return { start, n };

}
return truncate(text.substr(start), { length: size + 3 });
return truncate(text.substr(start), { length: size + 3 }).trim();
}

@@ -78,3 +77,3 @@ /**

}
const regex = needle.split(' ').join('|');
const regex = needle.trim().split(' ').join('|');
return text.replace(new RegExp(regex, 'ig'), match => '<mark class="highlight">' + match + '</mark>');

@@ -81,0 +80,0 @@ }

@@ -290,3 +290,3 @@ import * as i0 from '@angular/core';

/**
* Get a SpinqueQuery from a stacked query by endpoint name
* Get a SpinqueQuery from a stacked query. Can be either an endpoint or a commit/snapshot.
*/

@@ -305,3 +305,3 @@ getQuery(queryStack, endpointOrCommit) {

/**
* Add a query with optional parameter to the query.
* Add an endpoint query with optional parameters to the query stack.
*/

@@ -325,3 +325,3 @@ addQuery(queryStack, endpoint, parameters = {}) {

else {
draftStack.push(Object.assign(Object.assign({}, queryStack[index]), { parameters }));
draftStack.push({ endpoint: endpointOrCommit, parameters });
}

@@ -344,10 +344,2 @@ });

/**
* Replace the whole set of query endpoints in a query at once.
*/
updateQueryStack(queryStack, stack) {
return produce(queryStack, draftStack => {
draftStack = stack;
});
}
/**
* Remove the last endpoint from the query.

@@ -354,0 +346,0 @@ */

{
"name": "spinque-angular-ui",
"version": "12.1.0",
"version": "13.0.0",
"description": "Library containing Angular components to rapidly develop applications on top of Spinque APIs.",

@@ -10,2 +10,10 @@ "author": "Spinque B.V.",

},
"keywords": [
"spinque",
"ui",
"angular",
"search",
"search design",
"components"
],
"license": "MIT",

@@ -12,0 +20,0 @@ "peerDependencies": {

@@ -1,2 +0,2 @@

# Spinque Angular UI Components
# Spinque UI Components for Angular

@@ -7,8 +7,14 @@ Build your own search application with the Spinque UI Components for Angular.

Rapid prototyping is key to the iterative design process of good search solutions.
This library provides reusable components to be used with the [Angular framework](http://angular.io/) for web applications.
These components allow you to quickly build a working search application for a Spinque API.
## Motivation
Rapid prototyping is key when designing good search applications.
It allows for the interactive exploration of ideas and user testing as a feedback mechanism.
Read more on [searchdesign.org](https://searchdesign.org).
## Getting started
See our [Getting Started Guide](https://docs.spinque.com/2.5/applications/angular.html) on the Spinque Documentation website if you're building your first project with Spinque Angular Components.

@@ -35,3 +35,3 @@ import { OnChanges, SimpleChanges, EventEmitter } from '@angular/core';

items: any[];
type: [];
type: string[];
count: number;

@@ -38,0 +38,0 @@ offset: number;

@@ -9,4 +9,4 @@ import { OnChanges, SimpleChanges } from '@angular/core';

private rest;
statistics: SpinqueStatistics;
queryStack: SpinqueQueryStack;
statistics?: SpinqueStatistics;
queryStack?: SpinqueQueryStack;
constructor(rest: SpinqueRestService);

@@ -13,0 +13,0 @@ ngOnChanges(changes: SimpleChanges): void;

@@ -14,5 +14,5 @@ import * as i0 from "@angular/core";

*/
highlight(text: string, needle: string): string;
highlight(text: string, needle?: string): string;
static ɵfac: i0.ɵɵFactoryDeclaration<SpinqueSnippetService, never>;
static ɵprov: i0.ɵɵInjectableDeclaration<SpinqueSnippetService>;
}

@@ -27,3 +27,3 @@ import * as i0 from "@angular/core";

/**
* Get a SpinqueQuery from a stacked query by endpoint name
* Get a SpinqueQuery from a stacked query. Can be either an endpoint or a commit/snapshot.
*/

@@ -36,3 +36,3 @@ getQuery(queryStack: SpinqueQueryStack, endpointOrCommit: string): SpinqueQuery;

/**
* Add a query with optional parameter to the query.
* Add an endpoint query with optional parameters to the query stack.
*/

@@ -49,6 +49,2 @@ addQuery(queryStack: SpinqueQueryStack, endpoint: string, parameters?: SpinqueQueryParameters): SpinqueQueryStack;

/**
* Replace the whole set of query endpoints in a query at once.
*/
updateQueryStack(queryStack: SpinqueQueryStack, stack: SpinqueQueryStack): SpinqueQueryStack;
/**
* Remove the last endpoint from the query.

@@ -55,0 +51,0 @@ */

@@ -11,3 +11,3 @@ import { HttpClient, HttpParams } from '@angular/common/http';

items: SpinqueResultItem[];
type: [];
type: string[];
count: number;

@@ -14,0 +14,0 @@ offset: number;

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc