@byuhbll/components 0.0.8 → 0.0.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/ss-search-bar/advanced-search/advanced-search.component.mjs +14 -13
- package/esm2022/lib/ss-search-bar/constants.mjs +54 -2
- package/esm2022/lib/ss-search-bar/models/advanced-search.model.mjs +5 -0
- package/esm2022/lib/ss-search-bar/models/search-scope.model.mjs +2 -0
- package/esm2022/lib/ss-search-bar/pipes/advanced-field-warning.pipe.mjs +34 -0
- package/esm2022/lib/ss-search-bar/pipes/advanced-queries.pipe.mjs +12 -9
- package/esm2022/lib/ss-search-bar/pipes/field-by-scope.pipe.mjs +27 -0
- package/esm2022/lib/ss-search-bar/simple-search/simple-search.component.mjs +3 -3
- package/esm2022/lib/ss-search-bar/ss-search-bar.component.mjs +35 -83
- package/fesm2022/byuhbll-components.mjs +165 -102
- package/fesm2022/byuhbll-components.mjs.map +1 -1
- package/lib/ss-search-bar/advanced-search/advanced-search.component.d.ts +5 -5
- package/lib/ss-search-bar/constants.d.ts +23 -1
- package/lib/ss-search-bar/models/advanced-search.model.d.ts +18 -0
- package/lib/ss-search-bar/models/search-scope.model.d.ts +1 -0
- package/lib/ss-search-bar/pipes/advanced-field-warning.pipe.d.ts +9 -0
- package/lib/ss-search-bar/pipes/advanced-queries.pipe.d.ts +6 -2
- package/lib/ss-search-bar/pipes/field-by-scope.pipe.d.ts +12 -0
- package/lib/ss-search-bar/ss-search-bar.component.d.ts +9 -43
- package/package.json +1 -1
|
@@ -1,20 +1,23 @@
|
|
|
1
1
|
import { Pipe } from '@angular/core';
|
|
2
|
-
import { ADVANCED_SEARCH_OPTIONS, } from '../
|
|
3
|
-
import { ADVANCED_SEARCH_FIELD_MAP, ADVANCED_SEARCH_QUALIFIER_MAP } from '../constants';
|
|
2
|
+
import { ADVANCED_SEARCH_FIELD_MAP, ADVANCED_SEARCH_OPTIONS, ADVANCED_SEARCH_QUALIFIER_MAP, } from '../constants';
|
|
4
3
|
import * as i0 from "@angular/core";
|
|
4
|
+
import * as i1 from "./field-by-scope.pipe";
|
|
5
5
|
export class SsAdvancedQueriesPipe {
|
|
6
|
-
|
|
6
|
+
constructor(fieldByScopePipe) {
|
|
7
|
+
this.fieldByScopePipe = fieldByScopePipe;
|
|
8
|
+
}
|
|
9
|
+
transform(queryRows, scope) {
|
|
7
10
|
return queryRows
|
|
8
11
|
.map((row, i) => {
|
|
9
12
|
const b = i !== 0 ? row.boolean || ADVANCED_SEARCH_OPTIONS.boolean[0] : '';
|
|
10
|
-
const f = row.field ??
|
|
11
|
-
|
|
12
|
-
|
|
13
|
+
const f = this.fieldByScopePipe.transform(row.field ?? ADVANCED_SEARCH_OPTIONS.fields[0], scope);
|
|
14
|
+
const o = row.qualifier ??
|
|
15
|
+
ADVANCED_SEARCH_OPTIONS.qualifiers[f][0];
|
|
13
16
|
return `${b ? b + ' ' : ''}${ADVANCED_SEARCH_FIELD_MAP[f]} ${ADVANCED_SEARCH_QUALIFIER_MAP[o]} <b>${row.query}</b>`;
|
|
14
17
|
})
|
|
15
18
|
.join(' ');
|
|
16
19
|
}
|
|
17
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: SsAdvancedQueriesPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
20
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: SsAdvancedQueriesPipe, deps: [{ token: i1.FieldByScopePipe }], target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
18
21
|
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.1.0", ngImport: i0, type: SsAdvancedQueriesPipe, isStandalone: true, name: "ssAdvancedQueries" }); }
|
|
19
22
|
}
|
|
20
23
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: SsAdvancedQueriesPipe, decorators: [{
|
|
@@ -23,5 +26,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImpor
|
|
|
23
26
|
name: 'ssAdvancedQueries',
|
|
24
27
|
standalone: true,
|
|
25
28
|
}]
|
|
26
|
-
}] });
|
|
27
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
29
|
+
}], ctorParameters: () => [{ type: i1.FieldByScopePipe }] });
|
|
30
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWR2YW5jZWQtcXVlcmllcy5waXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50cy9zcmMvbGliL3NzLXNlYXJjaC1iYXIvcGlwZXMvYWR2YW5jZWQtcXVlcmllcy5waXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxJQUFJLEVBQWlCLE1BQU0sZUFBZSxDQUFDO0FBQ3BELE9BQU8sRUFDSCx5QkFBeUIsRUFDekIsdUJBQXVCLEVBQ3ZCLDZCQUE2QixHQUNoQyxNQUFNLGNBQWMsQ0FBQzs7O0FBY3RCLE1BQU0sT0FBTyxxQkFBcUI7SUFDOUIsWUFBb0IsZ0JBQWtDO1FBQWxDLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7SUFBRyxDQUFDO0lBQzFELFNBQVMsQ0FBQyxTQUFtQyxFQUFFLEtBQWtCO1FBQzdELE9BQU8sU0FBUzthQUNYLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRTtZQUNaLE1BQU0sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxPQUFPLElBQUksdUJBQXVCLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFDM0UsTUFBTSxDQUFDLEdBR21DLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxTQUFTLENBQ3JFLEdBQUcsQ0FBQyxLQUFLLElBQUksdUJBQXVCLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUM5QyxLQUFLLENBQ1IsQ0FBQztZQUNGLE1BQU0sQ0FBQyxHQUNILEdBQUcsQ0FBQyxTQUFTO2dCQUNiLHVCQUF1QixDQUFDLFVBQVUsQ0FDOUIsQ0FBK0QsQ0FDbEUsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNULE9BQU8sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FDdEIseUJBQXlCLENBQUMsQ0FBQyxDQUMvQixJQUFJLDZCQUE2QixDQUFDLENBQStDLENBQUMsT0FBTyxHQUFHLENBQUMsS0FBSyxNQUFNLENBQUM7UUFDN0csQ0FBQyxDQUFDO2FBQ0QsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ25CLENBQUM7OEdBdkJRLHFCQUFxQjs0R0FBckIscUJBQXFCOzsyRkFBckIscUJBQXFCO2tCQUpqQyxJQUFJO21CQUFDO29CQUNGLElBQUksRUFBRSxtQkFBbUI7b0JBQ3pCLFVBQVUsRUFBRSxJQUFJO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBpcGUsIFBpcGVUcmFuc2Zvcm0gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gICAgQURWQU5DRURfU0VBUkNIX0ZJRUxEX01BUCxcbiAgICBBRFZBTkNFRF9TRUFSQ0hfT1BUSU9OUyxcbiAgICBBRFZBTkNFRF9TRUFSQ0hfUVVBTElGSUVSX01BUCxcbn0gZnJvbSAnLi4vY29uc3RhbnRzJztcbmltcG9ydCB7XG4gICAgQWR2YW5jZWRTZWFyY2hFeHRlcm5hbEZpZWxkT3B0aW9uLFxuICAgIEFkdmFuY2VkU2VhcmNoRmllbGRPcHRpb24sXG4gICAgQWR2YW5jZWRTZWFyY2hMb2NhbEZpZWxkT3B0aW9uLFxuICAgIEFkdmFuY2VkU2VhcmNoUXVlcnlSb3csXG59IGZyb20gJy4uL21vZGVscy9hZHZhbmNlZC1zZWFyY2gubW9kZWwnO1xuaW1wb3J0IHsgU2VhcmNoU2NvcGUgfSBmcm9tICcuLi9tb2RlbHMvc2VhcmNoLXNjb3BlLm1vZGVsJztcbmltcG9ydCB7IEZpZWxkQnlTY29wZVBpcGUgfSBmcm9tICcuL2ZpZWxkLWJ5LXNjb3BlLnBpcGUnO1xuXG5AUGlwZSh7XG4gICAgbmFtZTogJ3NzQWR2YW5jZWRRdWVyaWVzJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxufSlcbmV4cG9ydCBjbGFzcyBTc0FkdmFuY2VkUXVlcmllc1BpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGZpZWxkQnlTY29wZVBpcGU6IEZpZWxkQnlTY29wZVBpcGUpIHt9XG4gICAgdHJhbnNmb3JtKHF1ZXJ5Um93czogQWR2YW5jZWRTZWFyY2hRdWVyeVJvd1tdLCBzY29wZTogU2VhcmNoU2NvcGUpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gcXVlcnlSb3dzXG4gICAgICAgICAgICAubWFwKChyb3csIGkpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBiID0gaSAhPT0gMCA/IHJvdy5ib29sZWFuIHx8IEFEVkFOQ0VEX1NFQVJDSF9PUFRJT05TLmJvb2xlYW5bMF0gOiAnJztcbiAgICAgICAgICAgICAgICBjb25zdCBmOlxuICAgICAgICAgICAgICAgICAgICB8IEFkdmFuY2VkU2VhcmNoRmllbGRPcHRpb25cbiAgICAgICAgICAgICAgICAgICAgfCBBZHZhbmNlZFNlYXJjaExvY2FsRmllbGRPcHRpb25cbiAgICAgICAgICAgICAgICAgICAgfCBBZHZhbmNlZFNlYXJjaEV4dGVybmFsRmllbGRPcHRpb24gPSB0aGlzLmZpZWxkQnlTY29wZVBpcGUudHJhbnNmb3JtKFxuICAgICAgICAgICAgICAgICAgICByb3cuZmllbGQgPz8gQURWQU5DRURfU0VBUkNIX09QVElPTlMuZmllbGRzWzBdLFxuICAgICAgICAgICAgICAgICAgICBzY29wZSxcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIGNvbnN0IG8gPVxuICAgICAgICAgICAgICAgICAgICByb3cucXVhbGlmaWVyID8/XG4gICAgICAgICAgICAgICAgICAgIEFEVkFOQ0VEX1NFQVJDSF9PUFRJT05TLnF1YWxpZmllcnNbXG4gICAgICAgICAgICAgICAgICAgICAgICBmIGFzIEFkdmFuY2VkU2VhcmNoRmllbGRPcHRpb24gfCBBZHZhbmNlZFNlYXJjaExvY2FsRmllbGRPcHRpb25cbiAgICAgICAgICAgICAgICAgICAgXVswXTtcbiAgICAgICAgICAgICAgICByZXR1cm4gYCR7YiA/IGIgKyAnICcgOiAnJ30ke1xuICAgICAgICAgICAgICAgICAgICBBRFZBTkNFRF9TRUFSQ0hfRklFTERfTUFQW2ZdXG4gICAgICAgICAgICAgICAgfSAke0FEVkFOQ0VEX1NFQVJDSF9RVUFMSUZJRVJfTUFQW28gYXMga2V5b2YgdHlwZW9mIEFEVkFOQ0VEX1NFQVJDSF9RVUFMSUZJRVJfTUFQXX0gPGI+JHtyb3cucXVlcnl9PC9iPmA7XG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgLmpvaW4oJyAnKTtcbiAgICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { Pipe } from '@angular/core';
|
|
2
|
+
import { isAdvancedSearchExternalFieldOption, isAdvancedSearchFieldOption, isAdvancedSearchLocalFieldOption, } from '../models/advanced-search.model';
|
|
3
|
+
import { ADVANCED_SEARCH_OPTIONS } from '../constants';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
/**
|
|
6
|
+
* Returns the field value based on the scope. If a field value does not exist in a specific scope, the default is returned.
|
|
7
|
+
*/
|
|
8
|
+
export class FieldByScopePipe {
|
|
9
|
+
transform(fieldValue, scope) {
|
|
10
|
+
if (isAdvancedSearchFieldOption(fieldValue) ||
|
|
11
|
+
(scope === 'local'
|
|
12
|
+
? isAdvancedSearchLocalFieldOption(fieldValue)
|
|
13
|
+
: isAdvancedSearchExternalFieldOption(fieldValue)))
|
|
14
|
+
return fieldValue;
|
|
15
|
+
return ADVANCED_SEARCH_OPTIONS.fields[0];
|
|
16
|
+
}
|
|
17
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: FieldByScopePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
18
|
+
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.1.0", ngImport: i0, type: FieldByScopePipe, isStandalone: true, name: "fieldByScope" }); }
|
|
19
|
+
}
|
|
20
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: FieldByScopePipe, decorators: [{
|
|
21
|
+
type: Pipe,
|
|
22
|
+
args: [{
|
|
23
|
+
name: 'fieldByScope',
|
|
24
|
+
standalone: true,
|
|
25
|
+
}]
|
|
26
|
+
}] });
|
|
27
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmllbGQtYnktc2NvcGUucGlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvc3JjL2xpYi9zcy1zZWFyY2gtYmFyL3BpcGVzL2ZpZWxkLWJ5LXNjb3BlLnBpcGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksRUFBaUIsTUFBTSxlQUFlLENBQUM7QUFDcEQsT0FBTyxFQUlILG1DQUFtQyxFQUNuQywyQkFBMkIsRUFDM0IsZ0NBQWdDLEdBQ25DLE1BQU0saUNBQWlDLENBQUM7QUFDekMsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sY0FBYyxDQUFDOztBQUd2RDs7R0FFRztBQUtILE1BQU0sT0FBTyxnQkFBZ0I7SUFDekIsU0FBUyxDQUNMLFVBR3VDLEVBQ3ZDLEtBQWtCO1FBS2xCLElBQ0ksMkJBQTJCLENBQUMsVUFBVSxDQUFDO1lBQ3ZDLENBQUMsS0FBSyxLQUFLLE9BQU87Z0JBQ2QsQ0FBQyxDQUFDLGdDQUFnQyxDQUFDLFVBQVUsQ0FBQztnQkFDOUMsQ0FBQyxDQUFDLG1DQUFtQyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1lBRXRELE9BQU8sVUFBVSxDQUFDO1FBQ3RCLE9BQU8sdUJBQXVCLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzdDLENBQUM7OEdBbkJRLGdCQUFnQjs0R0FBaEIsZ0JBQWdCOzsyRkFBaEIsZ0JBQWdCO2tCQUo1QixJQUFJO21CQUFDO29CQUNGLElBQUksRUFBRSxjQUFjO29CQUNwQixVQUFVLEVBQUUsSUFBSTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQaXBlLCBQaXBlVHJhbnNmb3JtIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICAgIEFkdmFuY2VkU2VhcmNoRXh0ZXJuYWxGaWVsZE9wdGlvbixcbiAgICBBZHZhbmNlZFNlYXJjaEZpZWxkT3B0aW9uLFxuICAgIEFkdmFuY2VkU2VhcmNoTG9jYWxGaWVsZE9wdGlvbixcbiAgICBpc0FkdmFuY2VkU2VhcmNoRXh0ZXJuYWxGaWVsZE9wdGlvbixcbiAgICBpc0FkdmFuY2VkU2VhcmNoRmllbGRPcHRpb24sXG4gICAgaXNBZHZhbmNlZFNlYXJjaExvY2FsRmllbGRPcHRpb24sXG59IGZyb20gJy4uL21vZGVscy9hZHZhbmNlZC1zZWFyY2gubW9kZWwnO1xuaW1wb3J0IHsgQURWQU5DRURfU0VBUkNIX09QVElPTlMgfSBmcm9tICcuLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgU2VhcmNoU2NvcGUgfSBmcm9tICcuLi9tb2RlbHMvc2VhcmNoLXNjb3BlLm1vZGVsJztcblxuLyoqXG4gKiBSZXR1cm5zIHRoZSBmaWVsZCB2YWx1ZSBiYXNlZCBvbiB0aGUgc2NvcGUuIElmIGEgZmllbGQgdmFsdWUgZG9lcyBub3QgZXhpc3QgaW4gYSBzcGVjaWZpYyBzY29wZSwgdGhlIGRlZmF1bHQgaXMgcmV0dXJuZWQuXG4gKi9cbkBQaXBlKHtcbiAgICBuYW1lOiAnZmllbGRCeVNjb3BlJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxufSlcbmV4cG9ydCBjbGFzcyBGaWVsZEJ5U2NvcGVQaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XG4gICAgdHJhbnNmb3JtKFxuICAgICAgICBmaWVsZFZhbHVlOlxuICAgICAgICAgICAgfCBBZHZhbmNlZFNlYXJjaEZpZWxkT3B0aW9uXG4gICAgICAgICAgICB8IEFkdmFuY2VkU2VhcmNoTG9jYWxGaWVsZE9wdGlvblxuICAgICAgICAgICAgfCBBZHZhbmNlZFNlYXJjaEV4dGVybmFsRmllbGRPcHRpb24sXG4gICAgICAgIHNjb3BlOiBTZWFyY2hTY29wZSxcbiAgICApOlxuICAgICAgICB8IEFkdmFuY2VkU2VhcmNoRmllbGRPcHRpb25cbiAgICAgICAgfCBBZHZhbmNlZFNlYXJjaExvY2FsRmllbGRPcHRpb25cbiAgICAgICAgfCBBZHZhbmNlZFNlYXJjaEV4dGVybmFsRmllbGRPcHRpb24ge1xuICAgICAgICBpZiAoXG4gICAgICAgICAgICBpc0FkdmFuY2VkU2VhcmNoRmllbGRPcHRpb24oZmllbGRWYWx1ZSkgfHxcbiAgICAgICAgICAgIChzY29wZSA9PT0gJ2xvY2FsJ1xuICAgICAgICAgICAgICAgID8gaXNBZHZhbmNlZFNlYXJjaExvY2FsRmllbGRPcHRpb24oZmllbGRWYWx1ZSlcbiAgICAgICAgICAgICAgICA6IGlzQWR2YW5jZWRTZWFyY2hFeHRlcm5hbEZpZWxkT3B0aW9uKGZpZWxkVmFsdWUpKVxuICAgICAgICApXG4gICAgICAgICAgICByZXR1cm4gZmllbGRWYWx1ZTtcbiAgICAgICAgcmV0dXJuIEFEVkFOQ0VEX1NFQVJDSF9PUFRJT05TLmZpZWxkc1swXTtcbiAgICB9XG59XG4iXX0=
|
|
@@ -63,11 +63,11 @@ export class SimpleSearchComponent {
|
|
|
63
63
|
this.subscription.unsubscribe();
|
|
64
64
|
}
|
|
65
65
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: SimpleSearchComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
66
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.1.0", type: SimpleSearchComponent, isStandalone: true, selector: "lib-ss-simple-search", inputs: { config: "config" }, outputs: { simpleSearch: "simpleSearch", clearSimpleSearch: "clearSimpleSearch" }, viewQueries: [{ propertyName: "searchInput", first: true, predicate: ["searchInput"], descendants: true }, { propertyName: "inputTooltip", first: true, predicate: MatTooltip, descendants: true }], ngImport: i0, template: "<div class=\"container\">\n <form [formGroup]=\"searchForm\" (submit)=\"emitSimpleSearch()\" data-testid=\"searchForm\">\n <input\n #searchInput\n data-testid=\"searchInput\"\n id=\"q\"\n name=\"q\"\n type=\"text\"\n required\n aria-required=\"true\"\n aria-label=\"search input\"\n autocapitalize=\"off\"\n formControlName=\"simpleQuery\"\n matTooltip=\"Fill out this field\"\n [matTooltipPosition]=\"'above'\"\n [matTooltipDisabled]=\"true\"\n [attr.aria-invalid]=\"isSubmitted && simpleQuery.invalid\"\n />\n <label for=\"q\" data-testid=\"label\">{{\n config.scope === 'local'\n ? 'Books, media, special collections and more'\n : 'Ebooks, articles, journals, databases and more'\n }}</label>\n <button type=\"submit\" aria-label=\"search\" data-testid=\"searchBtn\">\n <span class=\"material-symbols-outlined icon\"> search </span>\n </button>\n </form>\n\n @if (simpleQuery.value) {\n <button id=\"clear\" (click)=\"clearQuery()\" data-testid=\"clearBtn\">\n <span class=\"material-symbols-outlined icon\"> cancel </span>\n </button>\n }\n</div>\n", styles: ["a,button{border:none;background:none;font-family:inherit;padding:0;margin:0;font-size:inherit;color:#1c7ec9;text-decoration:none;cursor:pointer}a:hover,button:hover{color:#8ab6f0}.container{position:relative}.icon{font-size:1em}button[type=submit]{background:#4070b0;border-radius:0 4px 4px 0;border:1px solid #1c62a8;margin:0;position:absolute;right:-1px;top:-1px;bottom:-1px;width:4em;cursor:pointer;display:flex;justify-content:center;align-items:center;transition:color .2s,background-color .2s}button[type=submit] .icon{color:#fff;font-size:1.4rem}button[type=submit]:hover{background:#6892ca}#clear{position:absolute;right:4em;top:0%;height:100%;display:flex;justify-content:center;align-items:center;padding:0 .6rem}#clear .icon{height:auto;color:#acacac;transition:color ease-in-out .05s}#clear:hover .icon{color:#666}input[type=text]{background-color:#fff;color:#000;font-family:inherit;border:none;font-weight:600;margin:0;overflow:hidden;cursor:text;width:calc(100% - 4em);font-size:1em;border-radius:4px 0 0 4px;padding:.56em 2.2em .56em .56em}input[type=text]:focus{outline:none}input[type=text]:valid+label,input[type=text]:focus+label{font-size:.75em;top:-.8em;padding-top:0;padding-bottom:0;pointer-events:none;margin-top:0;margin-left:.56em;cursor:default}input[type=text]:valid+label:before,input[type=text]:focus+label:before{opacity:1}label{cursor:text;transition:all .1s ease-in-out;position:absolute;padding:.5em .28em;margin-left:.28em;left:0;color:#707070;z-index:1;max-width:calc(100% - 4.4em);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}label:before{transition:all .1s ease-in-out;background-color:#fff;content:\"\";position:absolute;inset:0;opacity:0;z-index:-1}\n"], dependencies: [{ kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i1.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "ngmodule", type: CommonModule }] }); }
|
|
66
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.1.0", type: SimpleSearchComponent, isStandalone: true, selector: "lib-ss-simple-search", inputs: { config: "config" }, outputs: { simpleSearch: "simpleSearch", clearSimpleSearch: "clearSimpleSearch" }, viewQueries: [{ propertyName: "searchInput", first: true, predicate: ["searchInput"], descendants: true }, { propertyName: "inputTooltip", first: true, predicate: MatTooltip, descendants: true }], ngImport: i0, template: "<div class=\"container\">\n <form [formGroup]=\"searchForm\" (submit)=\"emitSimpleSearch()\" data-testid=\"searchForm\">\n <input\n #searchInput\n data-testid=\"searchInput\"\n id=\"q\"\n name=\"q\"\n type=\"text\"\n required\n aria-required=\"true\"\n aria-label=\"search input\"\n autocapitalize=\"off\"\n formControlName=\"simpleQuery\"\n matTooltip=\"Fill out this field\"\n [matTooltipPosition]=\"'above'\"\n [matTooltipDisabled]=\"true\"\n [attr.aria-invalid]=\"isSubmitted && simpleQuery.invalid\"\n />\n <label for=\"q\" data-testid=\"label\">{{\n config.scope === 'local'\n ? 'Books, media, special collections and more'\n : 'Ebooks, articles, journals, databases and more'\n }}</label>\n <button type=\"submit\" aria-label=\"search\" data-testid=\"searchBtn\">\n <span class=\"material-symbols-outlined icon\"> search </span>\n </button>\n </form>\n\n @if (simpleQuery.value) {\n <button id=\"clear\" (click)=\"clearQuery()\" data-testid=\"clearBtn\">\n <span class=\"material-symbols-outlined icon\"> cancel </span>\n </button>\n }\n</div>\n", styles: ["a,button{border:none;background:none;font-family:inherit;padding:0;margin:0;font-size:inherit;color:#1c7ec9;text-decoration:none;cursor:pointer}a:hover,button:hover{color:#8ab6f0}.container{position:relative}.icon{font-size:1em}.field-warning{margin-top:1rem;font-size:1.4rem}button[type=submit]{background:#4070b0;border-radius:0 4px 4px 0;border:1px solid #1c62a8;margin:0;position:absolute;right:-1px;top:-1px;bottom:-1px;width:4em;cursor:pointer;display:flex;justify-content:center;align-items:center;transition:color .2s,background-color .2s}button[type=submit] .icon{color:#fff;font-size:1.4rem}button[type=submit]:hover{background:#6892ca}#clear{position:absolute;right:4em;top:0%;height:100%;display:flex;justify-content:center;align-items:center;padding:0 .6rem}#clear .icon{height:auto;color:#acacac;transition:color ease-in-out .05s}#clear:hover .icon{color:#666}input[type=text]{background-color:#fff;color:#000;font-family:inherit;border:none;font-weight:600;margin:0;overflow:hidden;cursor:text;width:calc(100% - 4em);font-size:1em;border-radius:4px 0 0 4px;padding:.56em 2.2em .56em .56em}input[type=text]:focus{outline:none}input[type=text]:valid+label,input[type=text]:focus+label{font-size:.75em;top:-.8em;padding-top:0;padding-bottom:0;pointer-events:none;margin-top:0;margin-left:.56em;cursor:default}input[type=text]:valid+label:before,input[type=text]:focus+label:before{opacity:1}label{cursor:text;transition:all .1s ease-in-out;position:absolute;padding:.5em .28em;margin-left:.28em;left:0;color:#707070;z-index:1;max-width:calc(100% - 4.4em);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}label:before{transition:all .1s ease-in-out;background-color:#fff;content:\"\";position:absolute;inset:0;opacity:0;z-index:-1}\n"], dependencies: [{ kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i1.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "ngmodule", type: CommonModule }] }); }
|
|
67
67
|
}
|
|
68
68
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: SimpleSearchComponent, decorators: [{
|
|
69
69
|
type: Component,
|
|
70
|
-
args: [{ selector: 'lib-ss-simple-search', standalone: true, imports: [MatTooltipModule, MatIconModule, ReactiveFormsModule, CommonModule], template: "<div class=\"container\">\n <form [formGroup]=\"searchForm\" (submit)=\"emitSimpleSearch()\" data-testid=\"searchForm\">\n <input\n #searchInput\n data-testid=\"searchInput\"\n id=\"q\"\n name=\"q\"\n type=\"text\"\n required\n aria-required=\"true\"\n aria-label=\"search input\"\n autocapitalize=\"off\"\n formControlName=\"simpleQuery\"\n matTooltip=\"Fill out this field\"\n [matTooltipPosition]=\"'above'\"\n [matTooltipDisabled]=\"true\"\n [attr.aria-invalid]=\"isSubmitted && simpleQuery.invalid\"\n />\n <label for=\"q\" data-testid=\"label\">{{\n config.scope === 'local'\n ? 'Books, media, special collections and more'\n : 'Ebooks, articles, journals, databases and more'\n }}</label>\n <button type=\"submit\" aria-label=\"search\" data-testid=\"searchBtn\">\n <span class=\"material-symbols-outlined icon\"> search </span>\n </button>\n </form>\n\n @if (simpleQuery.value) {\n <button id=\"clear\" (click)=\"clearQuery()\" data-testid=\"clearBtn\">\n <span class=\"material-symbols-outlined icon\"> cancel </span>\n </button>\n }\n</div>\n", styles: ["a,button{border:none;background:none;font-family:inherit;padding:0;margin:0;font-size:inherit;color:#1c7ec9;text-decoration:none;cursor:pointer}a:hover,button:hover{color:#8ab6f0}.container{position:relative}.icon{font-size:1em}button[type=submit]{background:#4070b0;border-radius:0 4px 4px 0;border:1px solid #1c62a8;margin:0;position:absolute;right:-1px;top:-1px;bottom:-1px;width:4em;cursor:pointer;display:flex;justify-content:center;align-items:center;transition:color .2s,background-color .2s}button[type=submit] .icon{color:#fff;font-size:1.4rem}button[type=submit]:hover{background:#6892ca}#clear{position:absolute;right:4em;top:0%;height:100%;display:flex;justify-content:center;align-items:center;padding:0 .6rem}#clear .icon{height:auto;color:#acacac;transition:color ease-in-out .05s}#clear:hover .icon{color:#666}input[type=text]{background-color:#fff;color:#000;font-family:inherit;border:none;font-weight:600;margin:0;overflow:hidden;cursor:text;width:calc(100% - 4em);font-size:1em;border-radius:4px 0 0 4px;padding:.56em 2.2em .56em .56em}input[type=text]:focus{outline:none}input[type=text]:valid+label,input[type=text]:focus+label{font-size:.75em;top:-.8em;padding-top:0;padding-bottom:0;pointer-events:none;margin-top:0;margin-left:.56em;cursor:default}input[type=text]:valid+label:before,input[type=text]:focus+label:before{opacity:1}label{cursor:text;transition:all .1s ease-in-out;position:absolute;padding:.5em .28em;margin-left:.28em;left:0;color:#707070;z-index:1;max-width:calc(100% - 4.4em);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}label:before{transition:all .1s ease-in-out;background-color:#fff;content:\"\";position:absolute;inset:0;opacity:0;z-index:-1}\n"] }]
|
|
70
|
+
args: [{ selector: 'lib-ss-simple-search', standalone: true, imports: [MatTooltipModule, MatIconModule, ReactiveFormsModule, CommonModule], template: "<div class=\"container\">\n <form [formGroup]=\"searchForm\" (submit)=\"emitSimpleSearch()\" data-testid=\"searchForm\">\n <input\n #searchInput\n data-testid=\"searchInput\"\n id=\"q\"\n name=\"q\"\n type=\"text\"\n required\n aria-required=\"true\"\n aria-label=\"search input\"\n autocapitalize=\"off\"\n formControlName=\"simpleQuery\"\n matTooltip=\"Fill out this field\"\n [matTooltipPosition]=\"'above'\"\n [matTooltipDisabled]=\"true\"\n [attr.aria-invalid]=\"isSubmitted && simpleQuery.invalid\"\n />\n <label for=\"q\" data-testid=\"label\">{{\n config.scope === 'local'\n ? 'Books, media, special collections and more'\n : 'Ebooks, articles, journals, databases and more'\n }}</label>\n <button type=\"submit\" aria-label=\"search\" data-testid=\"searchBtn\">\n <span class=\"material-symbols-outlined icon\"> search </span>\n </button>\n </form>\n\n @if (simpleQuery.value) {\n <button id=\"clear\" (click)=\"clearQuery()\" data-testid=\"clearBtn\">\n <span class=\"material-symbols-outlined icon\"> cancel </span>\n </button>\n }\n</div>\n", styles: ["a,button{border:none;background:none;font-family:inherit;padding:0;margin:0;font-size:inherit;color:#1c7ec9;text-decoration:none;cursor:pointer}a:hover,button:hover{color:#8ab6f0}.container{position:relative}.icon{font-size:1em}.field-warning{margin-top:1rem;font-size:1.4rem}button[type=submit]{background:#4070b0;border-radius:0 4px 4px 0;border:1px solid #1c62a8;margin:0;position:absolute;right:-1px;top:-1px;bottom:-1px;width:4em;cursor:pointer;display:flex;justify-content:center;align-items:center;transition:color .2s,background-color .2s}button[type=submit] .icon{color:#fff;font-size:1.4rem}button[type=submit]:hover{background:#6892ca}#clear{position:absolute;right:4em;top:0%;height:100%;display:flex;justify-content:center;align-items:center;padding:0 .6rem}#clear .icon{height:auto;color:#acacac;transition:color ease-in-out .05s}#clear:hover .icon{color:#666}input[type=text]{background-color:#fff;color:#000;font-family:inherit;border:none;font-weight:600;margin:0;overflow:hidden;cursor:text;width:calc(100% - 4em);font-size:1em;border-radius:4px 0 0 4px;padding:.56em 2.2em .56em .56em}input[type=text]:focus{outline:none}input[type=text]:valid+label,input[type=text]:focus+label{font-size:.75em;top:-.8em;padding-top:0;padding-bottom:0;pointer-events:none;margin-top:0;margin-left:.56em;cursor:default}input[type=text]:valid+label:before,input[type=text]:focus+label:before{opacity:1}label{cursor:text;transition:all .1s ease-in-out;position:absolute;padding:.5em .28em;margin-left:.28em;left:0;color:#707070;z-index:1;max-width:calc(100% - 4.4em);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}label:before{transition:all .1s ease-in-out;background-color:#fff;content:\"\";position:absolute;inset:0;opacity:0;z-index:-1}\n"] }]
|
|
71
71
|
}], propDecorators: { searchInput: [{
|
|
72
72
|
type: ViewChild,
|
|
73
73
|
args: ['searchInput']
|
|
@@ -82,4 +82,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImpor
|
|
|
82
82
|
}], clearSimpleSearch: [{
|
|
83
83
|
type: Output
|
|
84
84
|
}] } });
|
|
85
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
85
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2ltcGxlLXNlYXJjaC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnRzL3NyYy9saWIvc3Mtc2VhcmNoLWJhci9zaW1wbGUtc2VhcmNoL3NpbXBsZS1zZWFyY2guY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50cy9zcmMvbGliL3NzLXNlYXJjaC1iYXIvc2ltcGxlLXNlYXJjaC9zaW1wbGUtc2VhcmNoLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCxTQUFTLEVBRVQsWUFBWSxFQUNaLEtBQUssRUFHTCxNQUFNLEVBQ04sU0FBUyxFQUNULE1BQU0sR0FDVCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsV0FBVyxFQUFlLG1CQUFtQixFQUFFLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzNGLE9BQU8sRUFBRSxVQUFVLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUN6RSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3BDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFbkQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7OztBQVMvQyxNQUFNLE9BQU8scUJBQXFCO0lBUGxDO1FBUXFCLE9BQUUsR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7UUFNbEMsaUJBQVksR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBU2hDLGlCQUFZLEdBQUcsSUFBSSxZQUFZLEVBQWdCLENBQUM7UUFDaEQsc0JBQWlCLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQUM3QyxnQkFBVyxHQUFH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c0JBQTFDLFNBQVM7dUJBQUMsVUFBVTtnQkFHVSxNQUFNO3NCQUFwQyxLQUFLO3VCQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRTtnQkFPZixZQUFZO3NCQUFyQixNQUFNO2dCQUNHLGlCQUFpQjtzQkFBMUIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQ29tcG9uZW50LFxuICAgIEVsZW1lbnRSZWYsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIElucHV0LFxuICAgIE9uRGVzdHJveSxcbiAgICBPbkluaXQsXG4gICAgT3V0cHV0LFxuICAgIFZpZXdDaGlsZCxcbiAgICBpbmplY3QsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUJ1aWxkZXIsIEZvcm1Db250cm9sLCBSZWFjdGl2ZUZvcm1zTW9kdWxlLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgTWF0VG9vbHRpcCwgTWF0VG9vbHRpcE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3Rvb2x0aXAnO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBzdGFydFdpdGgsIGZpbHRlciB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IFNlYXJjaENvbmZpZyB9IGZyb20gJy4uL3NzLXNlYXJjaC1iYXIuY29tcG9uZW50JztcbmltcG9ydCB7IE1hdEljb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnbGliLXNzLXNpbXBsZS1zZWFyY2gnLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW01hdFRvb2x0aXBNb2R1bGUsIE1hdEljb25Nb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGUsIENvbW1vbk1vZHVsZV0sXG4gICAgdGVtcGxhdGVVcmw6ICcuL3NpbXBsZS1zZWFyY2guY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL3NpbXBsZS1zZWFyY2guY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgU2ltcGxlU2VhcmNoQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICAgIHByaXZhdGUgcmVhZG9ubHkgZmIgPSBpbmplY3QoRm9ybUJ1aWxkZXIpO1xuICAgIEBWaWV3Q2hpbGQoJ3NlYXJjaElucHV0JykgcHJpdmF0ZSBzZWFyY2hJbnB1dCE6IEVsZW1lbnRSZWY7XG4gICAgLy8gVGhlIHRvb2x0aXAgaXMgZGlzYWJsZWQgaW4gdGhlIHRlbXBsYXRlLlxuICAgIC8vIEl0IGlzIGVuYWJsZWQgYW5kIGRpc3BsYXllZCBpZiBhIHVzZXIgc2VhcmNoZXMgYWdhaW5zdCBhbiBlbXB0eSBxdWVyeSAoc2ltcGxlIG9yIHExKS5cbiAgICAvLyBBbnkgY2hhbmdlIHRvIHRoZSBzZWFyY2ggZmllbGQgZGlzYWJsZXMgdGhlIHRvb2x0aXAuXG4gICAgQFZpZXdDaGlsZChNYXRUb29sdGlwKSBwcml2YXRlIGlucHV0VG9vbHRpcCE6IE1hdFRvb2x0aXA7XG4gICAgcHJpdmF0ZSBzdWJzY3JpcHRpb24gPSBuZXcgU3Vic2NyaXB0aW9uKCk7XG4gICAgcHJpdmF0ZSBfY29uZmlnITogU2VhcmNoQ29uZmlnO1xuICAgIEBJbnB1dCh7IHJlcXVpcmVkOiB0cnVlIH0pIHNldCBjb25maWcoY29uZmlnOiBTZWFyY2hDb25maWcpIHtcbiAgICAgICAgdGhpcy5fY29uZmlnID0gY29uZmlnO1xuICAgICAgICB0aGlzLnNldHVwRm9ybSgpO1xuICAgIH1cbiAgICBnZXQgY29uZmlnKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fY29uZmlnO1xuICAgIH1cbiAgICBAT3V0cHV0KCkgc2ltcGxlU2VhcmNoID0gbmV3IEV2ZW50RW1pdHRlcjxTZWFyY2hDb25maWc+KCk7XG4gICAgQE91dHB1dCgpIGNsZWFyU2ltcGxlU2VhcmNoID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuICAgIHByb3RlY3RlZCBpc1N1Ym1pdHRlZCA9IGZhbHNlO1xuICAgIHByb3RlY3RlZCBzZWFyY2hGb3JtID0gdGhpcy5mYi5ub25OdWxsYWJsZS5ncm91cCh7XG4gICAgICAgIHNpbXBsZVF1ZXJ5OiBbJycsIFZhbGlkYXRvcnMucmVxdWlyZWRdLFxuICAgIH0pO1xuXG4gICAgZ2V0IHNpbXBsZVF1ZXJ5KCkge1xuICAgICAgICByZXR1cm4gdGhpcy5zZWFyY2hGb3JtLmdldCgnc2ltcGxlUXVlcnknKSBhcyBGb3JtQ29udHJvbDtcbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpIHtcbiAgICAgICAgLy8gRW5zdXJlIHZhbGlkYXRpb24gdG9vbHRpcCBjbG9zZXMgd2hlbiB1c2VzIGVudGVycyBhIHF1ZXJ5XG4gICAgICAgIHRoaXMuc3Vic2NyaXB0aW9uLmFkZChcbiAgICAgICAgICAgIHRoaXMuc2ltcGxlUXVlcnkudmFsdWVDaGFuZ2VzXG4gICAgICAgICAgICAgICAgLnBpcGUoc3RhcnRXaXRoKCcnKSlcbiAgICAgICAgICAgICAgICAucGlwZShmaWx0ZXIoKCkgPT4gISF0aGlzLmlucHV0VG9vbHRpcCkpXG4gICAgICAgICAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaW5wdXRUb29sdGlwLmRpc2FibGVkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZW1pdFNpbXBsZVNlYXJjaCA9ICgpID0+IHtcbiAgICAgICAgdGhpcy5pc1N1Ym1pdHRlZCA9IHRydWU7XG4gICAgICAgIC8vIERvbid0IHBlcmZvcm0gYSBzZWFyY2ggdW5sZXNzIHRoZXJlIGlzIGEgcXVlcnlcbiAgICAgICAgaWYgKHRoaXMuc2ltcGxlUXVlcnkuaW52YWxpZCkge1xuICAgICAgICAgICAgdGhpcy5zaG93U2VhcmNoVmFsaWRhdGlvblRvb2xUaXAoKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnNpbXBsZVNlYXJjaC5lbWl0KHsgLi4udGhpcy5jb25maWcsIHE6IHRoaXMuc2ltcGxlUXVlcnkudmFsdWUgfSk7XG4gICAgICAgIHRoaXMuaXNTdWJtaXR0ZWQgPSBmYWxzZTtcbiAgICB9O1xuXG4gICAgcHJvdGVjdGVkIGNsZWFyUXVlcnkgPSAoKSA9PiB7XG4gICAgICAgIHRoaXMuY2xlYXJTaW1wbGVTZWFyY2guZW1pdCgpO1xuICAgIH07XG5cbiAgICBwcml2YXRlIHNldHVwRm9ybSA9ICgpID0+IHtcbiAgICAgICAgdGhpcy5zaW1wbGVRdWVyeS5zZXRWYWx1ZShcbiAgICAgICAgICAgIHRoaXMuY29uZmlnLnEgfHwgdGhpcy5jb25maWcuYWR2YW5jZWRTZWFyY2hRdWVyeVJvd3NbMF0/LnF1ZXJ5IHx8ICcnLFxuICAgICAgICApO1xuICAgIH07XG5cbiAgICBwcml2YXRlIHNob3dTZWFyY2hWYWxpZGF0aW9uVG9vbFRpcCA9ICgpID0+IHtcbiAgICAgICAgdGhpcy5zZWFyY2hJbnB1dC5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gICAgICAgIHRoaXMuaW5wdXRUb29sdGlwLmRpc2FibGVkID0gZmFsc2U7XG4gICAgICAgIHRoaXMuaW5wdXRUb29sdGlwLnNob3coKTtcbiAgICB9O1xufVxuIiwiPGRpdiBjbGFzcz1cImNvbnRhaW5lclwiPlxuICAgIDxmb3JtIFtmb3JtR3JvdXBdPVwic2VhcmNoRm9ybVwiIChzdWJtaXQpPVwiZW1pdFNpbXBsZVNlYXJjaCgpXCIgZGF0YS10ZXN0aWQ9XCJzZWFyY2hGb3JtXCI+XG4gICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgI3NlYXJjaElucHV0XG4gICAgICAgICAgICBkYXRhLXRlc3RpZD1cInNlYXJjaElucHV0XCJcbiAgICAgICAgICAgIGlkPVwicVwiXG4gICAgICAgICAgICBuYW1lPVwicVwiXG4gICAgICAgICAgICB0eXBlPVwidGV4dFwiXG4gICAgICAgICAgICByZXF1aXJlZFxuICAgICAgICAgICAgYXJpYS1yZXF1aXJlZD1cInRydWVcIlxuICAgICAgICAgICAgYXJpYS1sYWJlbD1cInNlYXJjaCBpbnB1dFwiXG4gICAgICAgICAgICBhdXRvY2FwaXRhbGl6ZT1cIm9mZlwiXG4gICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJzaW1wbGVRdWVyeVwiXG4gICAgICAgICAgICBtYXRUb29sdGlwPVwiRmlsbCBvdXQgdGhpcyBmaWVsZFwiXG4gICAgICAgICAgICBbbWF0VG9vbHRpcFBvc2l0aW9uXT1cIidhYm92ZSdcIlxuICAgICAgICAgICAgW21hdFRvb2x0aXBEaXNhYmxlZF09XCJ0cnVlXCJcbiAgICAgICAgICAgIFthdHRyLmFyaWEtaW52YWxpZF09XCJpc1N1Ym1pdHRlZCAmJiBzaW1wbGVRdWVyeS5pbnZhbGlkXCJcbiAgICAgICAgLz5cbiAgICAgICAgPGxhYmVsIGZvcj1cInFcIiBkYXRhLXRlc3RpZD1cImxhYmVsXCI+e3tcbiAgICAgICAgICAgIGNvbmZpZy5zY29wZSA9PT0gJ2xvY2FsJ1xuICAgICAgICAgICAgICAgID8gJ0Jvb2tzLCBtZWRpYSwgc3BlY2lhbCBjb2xsZWN0aW9ucyBhbmQgbW9yZSdcbiAgICAgICAgICAgICAgICA6ICdFYm9va3MsIGFydGljbGVzLCBqb3VybmFscywgZGF0YWJhc2VzIGFuZCBtb3JlJ1xuICAgICAgICB9fTwvbGFiZWw+XG4gICAgICAgIDxidXR0b24gdHlwZT1cInN1Ym1pdFwiIGFyaWEtbGFiZWw9XCJzZWFyY2hcIiBkYXRhLXRlc3RpZD1cInNlYXJjaEJ0blwiPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtYXRlcmlhbC1zeW1ib2xzLW91dGxpbmVkIGljb25cIj4gc2VhcmNoIDwvc3Bhbj5cbiAgICAgICAgPC9idXR0b24+XG4gICAgPC9mb3JtPlxuXG4gICAgQGlmIChzaW1wbGVRdWVyeS52YWx1ZSkge1xuICAgICAgICA8YnV0dG9uIGlkPVwiY2xlYXJcIiAoY2xpY2spPVwiY2xlYXJRdWVyeSgpXCIgZGF0YS10ZXN0aWQ9XCJjbGVhckJ0blwiPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtYXRlcmlhbC1zeW1ib2xzLW91dGxpbmVkIGljb25cIj4gY2FuY2VsIDwvc3Bhbj5cbiAgICAgICAgPC9idXR0b24+XG4gICAgfVxuPC9kaXY+XG4iXX0=
|