@mediusinc/mng-commons-data-api 5.5.0-rc.4 → 6.0.0-rc.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/index.mjs +2 -2
- package/esm2022/lib/types/extract-get-all-types.type.mjs +2 -0
- package/esm2022/tableview/filter/generic-filters.mjs +6 -6
- package/esm2022/tableview/helpers/lookup-get-all-create.mjs +60 -0
- package/esm2022/tableview/helpers/tableview-get-all-params-create.mjs +67 -0
- package/esm2022/tableview/index.mjs +4 -2
- package/esm2022/tableview/schema/columns-from-schema.mjs +1 -1
- package/esm2022/tableview/schema/fields-from-schema.mjs +12 -117
- package/fesm2022/mediusinc-mng-commons-data-api-tableview.mjs +144 -158
- package/fesm2022/mediusinc-mng-commons-data-api-tableview.mjs.map +1 -1
- package/fesm2022/mediusinc-mng-commons-data-api.mjs.map +1 -1
- package/index.d.ts +1 -1
- package/lib/types/{extract-get-all-params.type.d.ts → extract-get-all-types.type.d.ts} +14 -4
- package/package.json +2 -2
- package/tableview/filter/generic-filters.d.ts +1 -1
- package/tableview/helpers/lookup-get-all-create.d.ts +29 -0
- package/tableview/helpers/tableview-get-all-params-create.d.ts +54 -0
- package/tableview/index.d.ts +2 -1
- package/tableview/schema/columns-from-schema.d.ts +2 -2
- package/tableview/schema/fields-from-schema.d.ts +25 -104
- package/version-info.json +5 -5
- package/esm2022/lib/types/extract-get-all-params.type.mjs +0 -2
- package/esm2022/tableview/tableview-get-all-params-create.mjs +0 -35
- package/tableview/tableview-get-all-params-create.d.ts +0 -30
package/esm2022/index.mjs
CHANGED
|
@@ -5,5 +5,5 @@ export * from './lib/models/api-version.model';
|
|
|
5
5
|
export * from './lib/models/request-params.model';
|
|
6
6
|
export * from './lib/models/schema.model';
|
|
7
7
|
// types
|
|
8
|
-
export * from './lib/types/extract-get-all-
|
|
9
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
8
|
+
export * from './lib/types/extract-get-all-types.type';
|
|
9
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsVUFBVTtBQUNWLGNBQWMsOEJBQThCLENBQUM7QUFFN0MsU0FBUztBQUNULGNBQWMsZ0NBQWdDLENBQUM7QUFDL0MsY0FBYyxtQ0FBbUMsQ0FBQztBQUNsRCxjQUFjLDJCQUEyQixDQUFDO0FBRTFDLFFBQVE7QUFDUixjQUFjLHdDQUF3QyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gaGVscGVyc1xuZXhwb3J0ICogZnJvbSAnLi9saWIvaGVscGVycy9nZXQtYWxsLXBhcmFtcyc7XG5cbi8vIG1vZGVsc1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kZWxzL2FwaS12ZXJzaW9uLm1vZGVsJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZGVscy9yZXF1ZXN0LXBhcmFtcy5tb2RlbCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RlbHMvc2NoZW1hLm1vZGVsJztcblxuLy8gdHlwZXNcbmV4cG9ydCAqIGZyb20gJy4vbGliL3R5cGVzL2V4dHJhY3QtZ2V0LWFsbC10eXBlcy50eXBlJztcbiJdfQ==
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXh0cmFjdC1nZXQtYWxsLXR5cGVzLnR5cGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL3R5cGVzL2V4dHJhY3QtZ2V0LWFsbC10eXBlcy50eXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0h0dHBSZXNwb25zZX0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuXG5pbXBvcnQge09ic2VydmFibGV9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQge0NsYXNzRnVuY3Rpb25LZXlzV2l0aEFueUFyZ3NBbmRSZXR1cm5UeXBlfSBmcm9tICdAbWVkaXVzaW5jL21uZy1jb21tb25zL2NvcmUnO1xuXG5pbXBvcnQge0dldEFsbFBhcmFtc0RlZmF1bHRXb0ZpbHRlcnNUeXBlLCBHZXRBbGxQYXJhbXNTb3J0VHlwZX0gZnJvbSAnLi4vbW9kZWxzL3JlcXVlc3QtcGFyYW1zLm1vZGVsJztcblxuLyoqXG4gKiBSZXByZXNlbnRzIHRoZSB0eXBlIGRlZmluaXRpb24gZm9yIHRoZSBgR2V0QWxsUGFyYW1zRGVmYXVsdFdvRmlsdGVyc1R5cGVgIGNsYXNzIC0gZXhjbHVkZXMgb2Zmc2V0LCBsaW1pdCwgc2VhcmNoIGFuZCBzb3J0IHByb3BlcnRpZXMuXG4gKiBBbGwgb3RoZXIgcHJvcGVydGllcyBhcmUgZXhwZWN0ZWQgdG8gYmUgZmlsdGVycy5cbiAqXG4gKiBAdHlwZXBhcmFtIFJlcXVlc3QgLSBUaGUgdHlwZSBwYXJhbWV0ZXIgcmVwcmVzZW50aW5nIHRoZSBleHRlbmRlZCBHZXRBbGxQYXJhbXNEZWZhdWx0V29GaWx0ZXJzVHlwZSBvYmplY3QuXG4gKi9cbmV4cG9ydCB0eXBlIEV4dHJhY3RHZXRBbGxQYXJhbXNGaWx0ZXJUeXBlPFJlcXVlc3QgZXh0ZW5kcyBHZXRBbGxQYXJhbXNEZWZhdWx0V29GaWx0ZXJzVHlwZT4gPSBSZXF1ZXN0IGV4dGVuZHMgR2V0QWxsUGFyYW1zRGVmYXVsdFdvRmlsdGVyc1R5cGVcbiAgICA/IGtleW9mIE9taXQ8UmVxdWVzdCwgJ29mZnNldCcgfCAnbGltaXQnIHwgJ2dsb2JhbEZpbHRlcicgfCAnc29ydCc+XG4gICAgOiBuZXZlcjtcblxuLyoqXG4gKiBSZXByZXNlbnRzIHRoZSB0eXBlIGRlZmluaXRpb24gZm9yIHRoZSBgR2V0QWxsUGFyYW1zRGVmYXVsdFdvRmlsdGVyc1R5cGVgIGNsYXNzIC0gZXh0cmFjdHMgYWxsb3dlZCBzb3J0IHByb3BlcnRpZXMgKHVzdWFsbHkgYW4gZW51bSkgb24gcHJvcGVydHkga2V5IHdpdGhpbiBhcnJheSB0eXBlLlxuICpcbiAqIEB0eXBlcGFyYW0gUmVxdWVzdCAtIFRoZSB0eXBlIHBhcmFtZXRlciByZXByZXNlbnRpbmcgdGhlIGV4dGVuZGVkIEdldEFsbFBhcmFtc0RlZmF1bHRXb0ZpbHRlcnNUeXBlIG9iamVjdC5cbiAqL1xuZXhwb3J0IHR5cGUgRXh0cmFjdEdldEFsbFBhcmFtc1NvcnRUeXBlPFJlcXVlc3QgZXh0ZW5kcyBHZXRBbGxQYXJhbXNEZWZhdWx0V29GaWx0ZXJzVHlwZTxHZXRBbGxQYXJhbXNTb3J0VHlwZTxhbnksIGFueT5bXSB8IHN0cmluZywgYW55Pj4gPVxuICAgIE5vbk51bGxhYmxlPFJlcXVlc3RbJ3NvcnQnXT4gZXh0ZW5kcyBBcnJheTxpbmZlciBVPiB8IHN0cmluZyA/ICgncHJvcGVydHknIGV4dGVuZHMga2V5b2YgVSA/IE5vbk51bGxhYmxlPFVbJ3Byb3BlcnR5J10+IDogbmV2ZXIpIDogbmV2ZXI7XG5cbmV4cG9ydCB0eXBlIEdldEFsbEh0dHBSZXNwb25zZVR5cGU8TW9kZWw+ID0ge2RhdGE/OiBBcnJheTxNb2RlbD47IHRvdGFsQ291bnQ/OiBudW1iZXJ9IHwgSHR0cFJlc3BvbnNlPHtkYXRhPzogQXJyYXk8TW9kZWw+OyB0b3RhbENvdW50PzogbnVtYmVyfT47XG5cbmV4cG9ydCB0eXBlIEFwaVNlcnZpY2VHZXRBbGxGaWx0ZXJUeXBlPFxuICAgIFNlcnZpY2UsXG4gICAgTW9kZWwsXG4gICAgRm4gZXh0ZW5kcyBDbGFzc0Z1bmN0aW9uS2V5c1dpdGhBbnlBcmdzQW5kUmV0dXJuVHlwZTxTZXJ2aWNlLCBPYnNlcnZhYmxlPEdldEFsbEh0dHBSZXNwb25zZVR5cGU8TW9kZWw+Pj5cbj4gPSBTZXJ2aWNlW0ZuXSBleHRlbmRzICguLi5hcmdzOiBhbnlbXSkgPT4gYW55ID8gTm9uTnVsbGFibGU8UGFyYW1ldGVyczxTZXJ2aWNlW0ZuXT5bMF0+IDogbmV2ZXI7XG5cbmV4cG9ydCB0eXBlIEV4dHJhY3RTZXJ2aWNlR2V0QWxsRGF0YVR5cGU8U2VydmljZSwgRm4gZXh0ZW5kcyBrZXlvZiBTZXJ2aWNlPiA9IFNlcnZpY2VbRm5dIGV4dGVuZHMgKFxuICAgIC4uLmFyZ3M6IGFueVtdXG4pID0+IE9ic2VydmFibGU8e2RhdGE/OiBBcnJheTxpbmZlciBNb2RlbD59IHwgSHR0cFJlc3BvbnNlPHtkYXRhPzogQXJyYXk8aW5mZXIgTW9kZWw+fT4+XG4gICAgPyBNb2RlbFxuICAgIDogbmV2ZXI7XG4iXX0=
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Observable } from 'rxjs';
|
|
2
2
|
import { toObservable, valueToDefined } from '@mediusinc/mng-commons/core';
|
|
3
3
|
import { FilterTypeEnum } from '@mediusinc/mng-commons/filter';
|
|
4
|
-
import {
|
|
4
|
+
import { lookupDataProvider } from '@mediusinc/mng-commons/form/api';
|
|
5
5
|
/**
|
|
6
6
|
* Maps a property type to its corresponding filter type enum and applies default
|
|
7
7
|
* filter options if no custom options are provided. If the property type is not recognized,
|
|
@@ -101,10 +101,10 @@ export function mapToFilterGenericProperties(opts) {
|
|
|
101
101
|
*/
|
|
102
102
|
export function filterPropertyLookupProvider(serviceType, lookupFn, opts) {
|
|
103
103
|
if (typeof lookupFn === 'function') {
|
|
104
|
-
return
|
|
104
|
+
return lookupDataProvider({ service: serviceType }).withLookup((_, service) => toObservable(lookupFn(service)).pipe(mapToFilterGenericProperties(opts)));
|
|
105
105
|
}
|
|
106
106
|
else {
|
|
107
|
-
return
|
|
107
|
+
return lookupDataProvider({ service: serviceType }).withLookup((_, service) => service[lookupFn]().pipe(mapToFilterGenericProperties(opts)));
|
|
108
108
|
}
|
|
109
109
|
}
|
|
110
110
|
/**
|
|
@@ -115,13 +115,13 @@ export function filterPropertyLookupProvider(serviceType, lookupFn, opts) {
|
|
|
115
115
|
*/
|
|
116
116
|
export function filterValueSuggestionLookupProvider(service, lookupFn) {
|
|
117
117
|
if (typeof lookupFn === 'function') {
|
|
118
|
-
return
|
|
118
|
+
return lookupDataProvider({ service }).withLookup((params, service, search) => lookupFn(service, valueToDefined(params?.filters?.['field']?.value), search));
|
|
119
119
|
}
|
|
120
120
|
else {
|
|
121
|
-
return
|
|
121
|
+
return lookupDataProvider({ service }).withLookup((params, service, search) => service[lookupFn]({
|
|
122
122
|
field: valueToDefined(params?.filters?.['field']?.value).toString(),
|
|
123
123
|
text: search
|
|
124
124
|
}));
|
|
125
125
|
}
|
|
126
126
|
}
|
|
127
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJpYy1maWx0ZXJzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vdGFibGV2aWV3L3NyYy9maWx0ZXIvZ2VuZXJpYy1maWx0ZXJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBQyxVQUFVLEVBQW1CLE1BQU0sTUFBTSxDQUFDO0FBRWxELE9BQU8sRUFBNkYsWUFBWSxFQUFFLGNBQWMsRUFBQyxNQUFNLDZCQUE2QixDQUFDO0FBQ3JLLE9BQU8sRUFBa0UsY0FBYyxFQUFDLE1BQU0sK0JBQStCLENBQUM7QUFDOUgsT0FBTyxFQUF5Qiw2QkFBNkIsRUFBQyxNQUFNLGlDQUFpQyxDQUFDO0FBT3RHOzs7Ozs7O0dBT0c7QUFDSCxNQUFNLFVBQVUsK0JBQStCLENBQzNDLFlBQXFCLEVBQ3JCLElBQW9DO0lBRXBDLElBQUksVUFBaUMsQ0FBQztJQUN0QyxJQUFJLFVBQWlFLENBQUM7SUFFdEUsUUFBUSxZQUFZLEVBQUUsV0FBVyxFQUFFLEVBQUUsQ0FBQztRQUNsQyxLQUFLLE1BQU07WUFDUCxVQUFVLEdBQUcsY0FBYyxDQUFDLElBQUksQ0FBQztZQUNqQyxVQUFVLEdBQUcsSUFBSSxFQUFFLFFBQVE7Z0JBQ3ZCLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUTtnQkFDZixDQUFDLENBQUM7b0JBQ0ksYUFBYSxFQUFFLFlBQVk7b0JBQzNCLHNCQUFzQixFQUFFLElBQUk7aUJBQy9CLENBQUM7WUFDUixNQUFNO1FBQ1YsS0FBSyxVQUFVLENBQUM7UUFDaEIsS0FBSyxXQUFXLENBQUM7UUFDakIsS0FBSyxXQUFXO1lBQ1osVUFBVSxHQUFHLGNBQWMsQ0FBQyxJQUFJLENBQUM7WUFDakMsVUFBVSxHQUFHLElBQUksRUFBRSxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLEVBQUMsYUFBYSxFQUFFLGtCQUFrQixFQUFFLHNCQUFzQixFQUFFLElBQUksRUFBQyxDQUFDO1lBQ2hILE1BQU07UUFDVixLQUFLLFFBQVEsQ0FBQztRQUNkLEtBQUssTUFBTTtZQUNQLFVBQVUsR0FBRyxjQUFjLENBQUMsTUFBTSxDQUFDO1lBQ25DLE1BQU07UUFDVixLQUFLLE1BQU07WUFDUCxVQUFVLEdBQUcsY0FBYyxDQUFDLFVBQVUsQ0FBQztZQUN2QyxNQUFNO1FBQ1YsS0FBSyxTQUFTLENBQUM7UUFDZixLQUFLLE1BQU07WUFDUCxVQUFVLEdBQUcsY0FBYyxDQUFDLE9BQU8sQ0FBQztZQUNwQyxNQUFNO1FBQ1YsS0FBSyxPQUFPLENBQUM7UUFDYixLQUFLLFFBQVEsQ0FBQztRQUNkLEtBQUssU0FBUztZQUNWLFVBQVUsR0FBRyxjQUFjLENBQUMsTUFBTSxDQUFDO1lBQ25DLFVBQVUsR0FBRyxJQUFJLEVBQUUsVUFBVSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxFQUFDLGFBQWEsRUFBRSxRQUFRLEVBQUMsQ0FBQztZQUM1RSxNQUFNO1FBQ1YsS0FBSyxTQUFTLENBQUM7UUFDZixLQUFLLEtBQUssQ0FBQztRQUNYLEtBQUssTUFBTTtZQUNQLFVBQVUsR0FBRyxjQUFjLENBQUMsTUFBTSxDQUFDO1lBQ25DLFVBQVUsR0FBRyxJQUFJLEVBQUUsVUFBVSxDQUFDO1lBQzlCLE1BQU07UUFDVjtZQUNJLFVBQVUsR0FBRyxJQUFJLENBQUM7SUFDMUIsQ0FBQztJQUVELE9BQU8sRUFBQyxVQUFVLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBQyxDQUFDO0FBQzFDLENBQUM7QUFJRDs7OztHQUlHO0FBQ0gsTUFBTSxVQUFVLHdDQUF3QyxDQUFDLFVBQStDLEVBQUUsSUFBb0M7SUFDMUksT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLE1BQU0sQ0FBK0IsQ0FBQyxvQkFBb0IsRUFBRSxHQUFHLEVBQUUsRUFBRTtRQUM5RixNQUFNLEVBQUMsVUFBVSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUMsR0FBRywrQkFBK0IsQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDOUYsSUFBSSxVQUFVLEtBQUssSUFBSSxFQUFFLENBQUM7WUFDdEIsb0JBQW9CLENBQUMsSUFBSSxDQUFDO2dCQUN0QixRQUFRLEVBQUUsR0FBRztnQkFDYixJQUFJLEVBQUUsVUFBVTtnQkFDaEIsSUFBSSxFQUFFLFVBQVU7YUFDbkIsQ0FBQyxDQUFDO1FBQ1AsQ0FBQztRQUNELE9BQU8sb0JBQW9CLENBQUM7SUFDaEMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0FBQ1gsQ0FBQztBQUVEOztHQUVHO0FBQ0gsTUFBTSxVQUFVLDRCQUE0QixDQUFDLElBQW9DO0lBQzdFLE9BQU8sVUFBVSxNQUF1RDtRQUNwRSxPQUFPLElBQUksVUFBVSxDQUFDLFVBQVUsQ0FBQyxFQUFFO1lBQy9CLE9BQU8sTUFBTSxDQUFDLFNBQVMsQ0FBQztnQkFDcEIsSUFBSSxDQUFDLEtBQUs7b0JBQ04sVUFBVSxDQUFDLElBQUksQ0FBQyx3Q0FBd0MsQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQztnQkFDM0UsQ0FBQztnQkFDRCxLQUFLLEVBQUUsR0FBRyxDQUFDLEVBQUU7b0JBQ1QsVUFBVSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztnQkFDMUIsQ0FBQzthQUNKLENBQUMsQ0FBQztRQUNQLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQyxDQUFDO0FBQ04sQ0FBQztBQUlEOzs7Ozs7R0FNRztBQUNILE1BQU0sVUFBVSw0QkFBNEIsQ0FDeEMsV0FBMEIsRUFDMUIsUUFBeUksRUFDekksSUFBb0M7SUFFcEMsSUFBSSxPQUFPLFFBQVEsS0FBSyxVQUFVLEVBQUUsQ0FBQztRQUNqQyxPQUFPLDZCQUE2QixDQUFpQyxXQUFXLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLEVBQUUsT0FBTyxFQUFFLEVBQUUsQ0FDeEcsWUFBWSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyw0QkFBNEIsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUMzRSxDQUFDO0lBQ04sQ0FBQztTQUFNLENBQUM7UUFDSixPQUFPLDZCQUE2QixDQUFpQyxXQUFXLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLEVBQUUsT0FBTyxFQUFFLEVBQUUsQ0FDdkcsT0FBZSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLDRCQUE0QixDQUFDLElBQUksQ0FBQyxDQUFDLENBQ3hFLENBQUM7SUFDTixDQUFDO0FBQ0wsQ0FBQztBQUlEOzs7OztHQUtHO0FBQ0gsTUFBTSxVQUFVLG1DQUFtQyxDQUMvQyxPQUFzQixFQUN0QixRQUE2SjtJQUU3SixJQUFJLE9BQU8sUUFBUSxLQUFLLFVBQVUsRUFBRSxDQUFDO1FBQ2pDLE9BQU8sNkJBQTZCLENBQW1DLE9BQU8sQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxPQUFPLEVBQUUsTUFBTyxFQUFFLEVBQUUsQ0FDcEgsUUFBUSxDQUFDLE9BQU8sRUFBRSxjQUFjLENBQUMsTUFBTSxFQUFFLE9BQU8sRUFBRSxDQUFDLE9BQU8sQ0FBQyxFQUFFLEtBQUssQ0FBVyxFQUFFLE1BQU0sQ0FBQyxDQUN6RixDQUFDO0lBQ04sQ0FBQztTQUFNLENBQUM7UUFDSixPQUFPLDZCQUE2QixDQUFtQyxPQUFPLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxNQUFNLEVBQUUsT0FBTyxFQUFFLE1BQU8sRUFBRSxFQUFFLENBQ25ILE9BQWUsQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUN2QixLQUFLLEVBQUUsY0FBYyxDQUFDLE1BQU0sRUFBRSxPQUFPLEVBQUUsQ0FBQyxPQUFPLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLEVBQUU7WUFDbkUsSUFBSSxFQUFFLE1BQU07U0FDZixDQUFDLENBQ0wsQ0FBQztJQUNOLENBQUM7QUFDTCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtUeXBlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHtPYnNlcnZhYmxlLCBPcGVyYXRvckZ1bmN0aW9ufSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHtDbGFzc0Z1bmN0aW9uS2V5c1dpdGhQYXJhbUFuZFJldHVyblR5cGUsIENsYXNzRnVuY3Rpb25LZXlzV2l0aFJldHVyblR5cGUsIEl0ZW1Pck9ic2VydmFibGUsIHRvT2JzZXJ2YWJsZSwgdmFsdWVUb0RlZmluZWR9IGZyb20gJ0BtZWRpdXNpbmMvbW5nLWNvbW1vbnMvY29yZSc7XG5pbXBvcnQge0ZpbHRlckRhdGVPcHRzVHlwZSwgRmlsdGVyR2VuZXJpY1Byb3BlcnR5LCBGaWx0ZXJOdW1iZXJPcHRzVHlwZSwgRmlsdGVyVHlwZUVudW19IGZyb20gJ0BtZWRpdXNpbmMvbW5nLWNvbW1vbnMvZmlsdGVyJztcbmltcG9ydCB7TG9va3VwRGF0YVByb3ZpZGVySW5zdCwgbG9va3VwRGF0YVByb3ZpZGVyV2l0aFNlcnZpY2V9IGZyb20gJ0BtZWRpdXNpbmMvbW5nLWNvbW1vbnMvZm9ybS9hcGknO1xuXG5leHBvcnQgaW50ZXJmYWNlIEZpbHRlckdlbmVyaWNQcm9wZXJ0eU9wdHNUeXBlIHtcbiAgICBudW1iZXJPcHRzPzogRmlsdGVyTnVtYmVyT3B0c1R5cGU7XG4gICAgZGF0ZU9wdHM/OiBGaWx0ZXJEYXRlT3B0c1R5cGU7XG59XG5cbi8qKlxuICogTWFwcyBhIHByb3BlcnR5IHR5cGUgdG8gaXRzIGNvcnJlc3BvbmRpbmcgZmlsdGVyIHR5cGUgZW51bSBhbmQgYXBwbGllcyBkZWZhdWx0XG4gKiBmaWx0ZXIgb3B0aW9ucyBpZiBubyBjdXN0b20gb3B0aW9ucyBhcmUgcHJvdmlkZWQuIElmIHRoZSBwcm9wZXJ0eSB0eXBlIGlzIG5vdCByZWNvZ25pemVkLFxuICogaXQgcmV0dXJucyBhIGZpbHRlciB0eXBlIHZhbHVlIG9mIG51bGwuXG4gKlxuICogQHBhcmFtIHByb3BlcnR5VHlwZSAtIFRoZSBwcm9wZXJ0eSB0eXBlIHRvIGNvbnZlcnQuXG4gKiBAcGFyYW0gW29wdHNdIC0gVGhlIGN1c3RvbSBvcHRpb25zIHRvIHVzZSBmb3IgY29udmVyc2lvbi5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNvbnZlcnRQcm9wZXJ0eVR5cGVUb0ZpbHRlclR5cGUoXG4gICAgcHJvcGVydHlUeXBlPzogc3RyaW5nLFxuICAgIG9wdHM/OiBGaWx0ZXJHZW5lcmljUHJvcGVydHlPcHRzVHlwZVxuKToge2ZpbHRlclR5cGU6IEZpbHRlclR5cGVFbnVtIHwgbnVsbDsgb3B0cz86IEZpbHRlckRhdGVPcHRzVHlwZSB8IEZpbHRlck51bWJlck9wdHNUeXBlfSB7XG4gICAgbGV0IGZpbHRlclR5cGU6IEZpbHRlclR5cGVFbnVtIHwgbnVsbDtcbiAgICBsZXQgcmV0dXJuT3B0czogRmlsdGVyRGF0ZU9wdHNUeXBlIHwgRmlsdGVyTnVtYmVyT3B0c1R5cGUgfCB1bmRlZmluZWQ7XG5cbiAgICBzd2l0Y2ggKHByb3BlcnR5VHlwZT8udG9Mb3dlckNhc2UoKSkge1xuICAgICAgICBjYXNlICdkYXRlJzpcbiAgICAgICAgICAgIGZpbHRlclR5cGUgPSBGaWx0ZXJUeXBlRW51bS5EYXRlO1xuICAgICAgICAgICAgcmV0dXJuT3B0cyA9IG9wdHM/LmRhdGVPcHRzXG4gICAgICAgICAgICAgICAgPyBvcHRzLmRhdGVPcHRzXG4gICAgICAgICAgICAgICAgOiB7XG4gICAgICAgICAgICAgICAgICAgICAgZGlzcGxheUZvcm1hdDogJ2RkLk1NLllZWVknLFxuICAgICAgICAgICAgICAgICAgICAgIGFwcGx5RnJvbURpc3BsYXlGb3JtYXQ6IHRydWVcbiAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAnZGF0ZXRpbWUnOlxuICAgICAgICBjYXNlICdkYXRlX3RpbWUnOlxuICAgICAgICBjYXNlICdkYXRlLXRpbWUnOlxuICAgICAgICAgICAgZmlsdGVyVHlwZSA9IEZpbHRlclR5cGVFbnVtLkRhdGU7XG4gICAgICAgICAgICByZXR1cm5PcHRzID0gb3B0cz8uZGF0ZU9wdHMgPyBvcHRzLmRhdGVPcHRzIDoge2Rpc3BsYXlGb3JtYXQ6ICdkZC5NTS5ZWVlZIEhIOm1tJywgYXBwbHlGcm9tRGlzcGxheUZvcm1hdDogdHJ1ZX07XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAnc3RyaW5nJzpcbiAgICAgICAgY2FzZSAndGV4dCc6XG4gICAgICAgICAgICBmaWx0ZXJUeXBlID0gRmlsdGVyVHlwZUVudW0uU3RyaW5nO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ2VudW0nOlxuICAgICAgICAgICAgZmlsdGVyVHlwZSA9IEZpbHRlclR5cGVFbnVtLkxvb2t1cEVudW07XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAnYm9vbGVhbic6XG4gICAgICAgIGNhc2UgJ2Jvb2wnOlxuICAgICAgICAgICAgZmlsdGVyVHlwZSA9IEZpbHRlclR5cGVFbnVtLkJvb2xlYW47XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAnZmxvYXQnOlxuICAgICAgICBjYXNlICdkb3VibGUnOlxuICAgICAgICBjYXNlICdkZWNpbWFsJzpcbiAgICAgICAgICAgIGZpbHRlclR5cGUgPSBGaWx0ZXJUeXBlRW51bS5OdW1iZXI7XG4gICAgICAgICAgICByZXR1cm5PcHRzID0gb3B0cz8ubnVtYmVyT3B0cyA/IG9wdHMubnVtYmVyT3B0cyA6IHtkaXNwbGF5Rm9ybWF0OiAnMS4xLTMwJ307XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAnaW50ZWdlcic6XG4gICAgICAgIGNhc2UgJ2ludCc6XG4gICAgICAgIGNhc2UgJ2xvbmcnOlxuICAgICAgICAgICAgZmlsdGVyVHlwZSA9IEZpbHRlclR5cGVFbnVtLk51bWJlcjtcbiAgICAgICAgICAgIHJldHVybk9wdHMgPSBvcHRzPy5udW1iZXJPcHRzO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICBmaWx0ZXJUeXBlID0gbnVsbDtcbiAgICB9XG5cbiAgICByZXR1cm4ge2ZpbHRlclR5cGUsIG9wdHM6IHJldHVybk9wdHN9O1xufVxuXG50eXBlIEZpbHRlckdlbmVyaWNQcm9wZXJ0aWVzTWV0YWRhdGFUeXBlID0ge1trZXk6IHN0cmluZ106IHN0cmluZyB8IHVuZGVmaW5lZH07XG5cbi8qKlxuICogQ29udmVydHMgYW4gb2JqZWN0IG9mIHByb3BlcnRpZXMgYW5kIHR5cGVzIGludG8gYW4gYXJyYXkgb2YgZmlsdGVyYWJsZSBwcm9wZXJ0aWVzIHdpdGggdGhlIGNvcnJlc3BvbmRpbmcgZmlsdGVyIHR5cGVzIGFuZCBvcHRpb25zLlxuICogQHBhcmFtIHByb3BlcnRpZXMgLSBUaGUgb2JqZWN0IGNvbnRhaW5pbmcgdGhlIHByb3BlcnRpZXMuXG4gKiBAcGFyYW0gW29wdHNdIC0gQ3VzdG9tIGZpbHRlciBvcHRpb25zLlxuICovXG5leHBvcnQgZnVuY3Rpb24gY29udmVydFByb3BlcnR5VG9GaWx0ZXJHZW5lcmljUHJvcGVydGllcyhwcm9wZXJ0aWVzOiBGaWx0ZXJHZW5lcmljUHJvcGVydGllc01ldGFkYXRhVHlwZSwgb3B0cz86IEZpbHRlckdlbmVyaWNQcm9wZXJ0eU9wdHNUeXBlKTogRmlsdGVyR2VuZXJpY1Byb3BlcnR5W10ge1xuICAgIHJldHVybiBPYmplY3Qua2V5cyhwcm9wZXJ0aWVzKS5yZWR1Y2U8QXJyYXk8RmlsdGVyR2VuZXJpY1Byb3BlcnR5Pj4oKGZpbHRlcmFibGVQcm9wZXJ0aWVzLCBrZXkpID0+IHtcbiAgICAgICAgY29uc3Qge2ZpbHRlclR5cGUsIG9wdHM6IGZpbHRlck9wdHN9ID0gY29udmVydFByb3BlcnR5VHlwZVRvRmlsdGVyVHlwZShwcm9wZXJ0aWVzW2tleV0sIG9wdHMpO1xuICAgICAgICBpZiAoZmlsdGVyVHlwZSAhPT0gbnVsbCkge1xuICAgICAgICAgICAgZmlsdGVyYWJsZVByb3BlcnRpZXMucHVzaCh7XG4gICAgICAgICAgICAgICAgcHJvcGVydHk6IGtleSxcbiAgICAgICAgICAgICAgICB0eXBlOiBmaWx0ZXJUeXBlLFxuICAgICAgICAgICAgICAgIG9wdHM6IGZpbHRlck9wdHNcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBmaWx0ZXJhYmxlUHJvcGVydGllcztcbiAgICB9LCBbXSk7XG59XG5cbi8qKlxuICogTWFwcyBhbiBPYnNlcnZhYmxlIG9mIHByb3BlcnRpZXMgdG8gZmlsdGVyIGdlbmVyaWMgcHJvcGVydGllcy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG1hcFRvRmlsdGVyR2VuZXJpY1Byb3BlcnRpZXMob3B0cz86IEZpbHRlckdlbmVyaWNQcm9wZXJ0eU9wdHNUeXBlKTogT3BlcmF0b3JGdW5jdGlvbjxGaWx0ZXJHZW5lcmljUHJvcGVydGllc01ldGFkYXRhVHlwZSwgRmlsdGVyR2VuZXJpY1Byb3BlcnR5W10+IHtcbiAgICByZXR1cm4gZnVuY3Rpb24gKHNvdXJjZTogT2JzZXJ2YWJsZTxGaWx0ZXJHZW5lcmljUHJvcGVydGllc01ldGFkYXRhVHlwZT4pOiBPYnNlcnZhYmxlPEZpbHRlckdlbmVyaWNQcm9wZXJ0eVtdPiB7XG4gICAgICAgIHJldHVybiBuZXcgT2JzZXJ2YWJsZShzdWJzY3JpYmVyID0+IHtcbiAgICAgICAgICAgIHJldHVybiBzb3VyY2Uuc3Vic2NyaWJlKHtcbiAgICAgICAgICAgICAgICBuZXh0KHZhbHVlKSB7XG4gICAgICAgICAgICAgICAgICAgIHN1YnNjcmliZXIubmV4dChjb252ZXJ0UHJvcGVydHlUb0ZpbHRlckdlbmVyaWNQcm9wZXJ0aWVzKHZhbHVlLCBvcHRzKSk7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBlcnJvcjogZXJyID0+IHtcbiAgICAgICAgICAgICAgICAgICAgc3Vic2NyaWJlci5lcnJvcihlcnIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICB9O1xufVxuXG50eXBlIEZpbHRlclByb3BlcnR5TG9va3VwRm5UeXBlPFNlcnZpY2U+ID0gKHNlcnZpY2U6IFNlcnZpY2UpID0+IEl0ZW1Pck9ic2VydmFibGU8RmlsdGVyR2VuZXJpY1Byb3BlcnRpZXNNZXRhZGF0YVR5cGU+O1xuXG4vKipcbiAqIENyZWF0ZXMgYSBkYXRhIHByb3ZpZGVyIGZvciBnZW5lcmljIGZpbHRlciBwcm9wZXJ0aWVzIHRoYXQgY2FuIGJlIHVzZWQgd2l0aCB0aGUgVGFibGVEZXNjcmlwdG9yJ3MgZ2VuZXJpYyBmaWx0ZXIgZnVuY3Rpb25hbGl0eS5cbiAqXG4gKiBAcGFyYW0gc2VydmljZVR5cGUgLSBUaGUgc2VydmljZSB0byBmZXRjaCB0aGUgcHJvcGVydGllcyBmcm9tLlxuICogQHBhcmFtIGxvb2t1cEZuIC0gVGhlIG5hbWUgb2YgdGhlIHNlcnZpY2UgZnVuY3Rpb24gdG8gY2FsbCBmb3IgcHJvcGVydGllcyBvciBmdW5jdGlvbiBpbXBsIHJldHVybmluZyBwcm9wZXJ0aWVzLlxuICogQHBhcmFtIFtvcHRzXSAtIE9wdGlvbmFsIGN1c3RvbSBvcHRpb25zIGZvciBmaWx0ZXIgZGVzY3JpcHRvcnMsIHN1Y2ggYXMgZGF0ZSBhbmQgbnVtYmVyIGZvcm1hdHRpbmcuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBmaWx0ZXJQcm9wZXJ0eUxvb2t1cFByb3ZpZGVyPFNlcnZpY2U+KFxuICAgIHNlcnZpY2VUeXBlOiBUeXBlPFNlcnZpY2U+LFxuICAgIGxvb2t1cEZuOiBGaWx0ZXJQcm9wZXJ0eUxvb2t1cEZuVHlwZTxTZXJ2aWNlPiB8IENsYXNzRnVuY3Rpb25LZXlzV2l0aFJldHVyblR5cGU8U2VydmljZSwgT2JzZXJ2YWJsZTxGaWx0ZXJHZW5lcmljUHJvcGVydGllc01ldGFkYXRhVHlwZT4+LFxuICAgIG9wdHM/OiBGaWx0ZXJHZW5lcmljUHJvcGVydHlPcHRzVHlwZVxuKSB7XG4gICAgaWYgKHR5cGVvZiBsb29rdXBGbiA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICByZXR1cm4gbG9va3VwRGF0YVByb3ZpZGVyV2l0aFNlcnZpY2U8U2VydmljZSwgRmlsdGVyR2VuZXJpY1Byb3BlcnR5PihzZXJ2aWNlVHlwZSkud2l0aExvb2t1cCgoXywgc2VydmljZSkgPT5cbiAgICAgICAgICAgIHRvT2JzZXJ2YWJsZShsb29rdXBGbihzZXJ2aWNlKSkucGlwZShtYXBUb0ZpbHRlckdlbmVyaWNQcm9wZXJ0aWVzKG9wdHMpKVxuICAgICAgICApO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBsb29rdXBEYXRhUHJvdmlkZXJXaXRoU2VydmljZTxTZXJ2aWNlLCBGaWx0ZXJHZW5lcmljUHJvcGVydHk+KHNlcnZpY2VUeXBlKS53aXRoTG9va3VwKChfLCBzZXJ2aWNlKSA9PlxuICAgICAgICAgICAgKHNlcnZpY2UgYXMgYW55KVtsb29rdXBGbl0oKS5waXBlKG1hcFRvRmlsdGVyR2VuZXJpY1Byb3BlcnRpZXMob3B0cykpXG4gICAgICAgICk7XG4gICAgfVxufVxuXG50eXBlIEZpbHRlclZhbHVlU3VnZ2VzdGlvbkxvb2t1cEZuVHlwZTxTZXJ2aWNlPiA9IChzZXJ2aWNlOiBTZXJ2aWNlLCBmaWVsZDogc3RyaW5nLCBzZWFyY2g/OiBzdHJpbmcpID0+IEl0ZW1Pck9ic2VydmFibGU8c3RyaW5nW10+O1xuXG4vKipcbiAqIENyZWF0ZXMgYSBkYXRhIHByb3ZpZGVyIGZvciBnZW5lcmljIGZpbHRlciB2YWx1ZSBzdWdnZXN0aW9ucyB0aGF0IGNhbiBiZSB1c2VkIHdpdGggdGhlIFRhYmxlRGVzY3JpcHRvcidzIGdlbmVyaWMgZmlsdGVyIGZ1bmN0aW9uYWxpdHkuXG4gKlxuICogQHBhcmFtIHNlcnZpY2UgLSBUaGUgc2VydmljZSB0byB1c2UgZm9yIHN1Z2dlc3RpbmcgZmlsdGVyIHZhbHVlcy5cbiAqIEBwYXJhbSBsb29rdXBGbiAtIFRoZSBmdW5jdGlvbiBuYW1lIG9mIHRoZSBzZXJ2aWNlIHRvIGNhbGwgZm9yIHN1Z2dlc3Rpb24gb3IgZnVuY3Rpb24gaW1wbCByZXR1cm5pbmcgc3VnZ2VzdGlvbnMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBmaWx0ZXJWYWx1ZVN1Z2dlc3Rpb25Mb29rdXBQcm92aWRlcjxTZXJ2aWNlPihcbiAgICBzZXJ2aWNlOiBUeXBlPFNlcnZpY2U+LFxuICAgIGxvb2t1cEZuOiBGaWx0ZXJWYWx1ZVN1Z2dlc3Rpb25Mb29rdXBGblR5cGU8U2VydmljZT4gfCBDbGFzc0Z1bmN0aW9uS2V5c1dpdGhQYXJhbUFuZFJldHVyblR5cGU8U2VydmljZSwge2ZpZWxkOiBzdHJpbmc7IHRleHQ/OiBzdHJpbmd9LCBPYnNlcnZhYmxlPHN0cmluZ1tdPj5cbik6IExvb2t1cERhdGFQcm92aWRlckluc3Q8c3RyaW5nLCBTZXJ2aWNlLCBzdHJpbmcsICdmaWVsZCc+IHtcbiAgICBpZiAodHlwZW9mIGxvb2t1cEZuID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIHJldHVybiBsb29rdXBEYXRhUHJvdmlkZXJXaXRoU2VydmljZTxTZXJ2aWNlLCBzdHJpbmcsIHN0cmluZywgJ2ZpZWxkJz4oc2VydmljZSkud2l0aExvb2t1cCgocGFyYW1zLCBzZXJ2aWNlLCBzZWFyY2g/KSA9PlxuICAgICAgICAgICAgbG9va3VwRm4oc2VydmljZSwgdmFsdWVUb0RlZmluZWQocGFyYW1zPy5maWx0ZXJzPy5bJ2ZpZWxkJ10/LnZhbHVlKSBhcyBzdHJpbmcsIHNlYXJjaClcbiAgICAgICAgKTtcbiAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gbG9va3VwRGF0YVByb3ZpZGVyV2l0aFNlcnZpY2U8U2VydmljZSwgc3RyaW5nLCBzdHJpbmcsICdmaWVsZCc+KHNlcnZpY2UpLndpdGhMb29rdXAoKHBhcmFtcywgc2VydmljZSwgc2VhcmNoPykgPT5cbiAgICAgICAgICAgIChzZXJ2aWNlIGFzIGFueSlbbG9va3VwRm5dKHtcbiAgICAgICAgICAgICAgICBmaWVsZDogdmFsdWVUb0RlZmluZWQocGFyYW1zPy5maWx0ZXJzPy5bJ2ZpZWxkJ10/LnZhbHVlKS50b1N0cmluZygpLFxuICAgICAgICAgICAgICAgIHRleHQ6IHNlYXJjaFxuICAgICAgICAgICAgfSlcbiAgICAgICAgKTtcbiAgICB9XG59XG4iXX0=
|
|
127
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJpYy1maWx0ZXJzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vdGFibGV2aWV3L3NyYy9maWx0ZXIvZ2VuZXJpYy1maWx0ZXJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBQyxVQUFVLEVBQW1CLE1BQU0sTUFBTSxDQUFDO0FBRWxELE9BQU8sRUFBNkYsWUFBWSxFQUFFLGNBQWMsRUFBQyxNQUFNLDZCQUE2QixDQUFDO0FBQ3JLLE9BQU8sRUFBa0UsY0FBYyxFQUFDLE1BQU0sK0JBQStCLENBQUM7QUFDOUgsT0FBTyxFQUF5QixrQkFBa0IsRUFBQyxNQUFNLGlDQUFpQyxDQUFDO0FBTzNGOzs7Ozs7O0dBT0c7QUFDSCxNQUFNLFVBQVUsK0JBQStCLENBQzNDLFlBQXFCLEVBQ3JCLElBQW9DO0lBRXBDLElBQUksVUFBaUMsQ0FBQztJQUN0QyxJQUFJLFVBQWlFLENBQUM7SUFFdEUsUUFBUSxZQUFZLEVBQUUsV0FBVyxFQUFFLEVBQUUsQ0FBQztRQUNsQyxLQUFLLE1BQU07WUFDUCxVQUFVLEdBQUcsY0FBYyxDQUFDLElBQUksQ0FBQztZQUNqQyxVQUFVLEdBQUcsSUFBSSxFQUFFLFFBQVE7Z0JBQ3ZCLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUTtnQkFDZixDQUFDLENBQUM7b0JBQ0ksYUFBYSxFQUFFLFlBQVk7b0JBQzNCLHNCQUFzQixFQUFFLElBQUk7aUJBQy9CLENBQUM7WUFDUixNQUFNO1FBQ1YsS0FBSyxVQUFVLENBQUM7UUFDaEIsS0FBSyxXQUFXLENBQUM7UUFDakIsS0FBSyxXQUFXO1lBQ1osVUFBVSxHQUFHLGNBQWMsQ0FBQyxJQUFJLENBQUM7WUFDakMsVUFBVSxHQUFHLElBQUksRUFBRSxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLEVBQUMsYUFBYSxFQUFFLGtCQUFrQixFQUFFLHNCQUFzQixFQUFFLElBQUksRUFBQyxDQUFDO1lB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eXBlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHtPYnNlcnZhYmxlLCBPcGVyYXRvckZ1bmN0aW9ufSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHtDbGFzc0Z1bmN0aW9uS2V5c1dpdGhQYXJhbUFuZFJldHVyblR5cGUsIENsYXNzRnVuY3Rpb25LZXlzV2l0aFJldHVyblR5cGUsIEl0ZW1Pck9ic2VydmFibGUsIHRvT2JzZXJ2YWJsZSwgdmFsdWVUb0RlZmluZWR9IGZyb20gJ0BtZWRpdXNpbmMvbW5nLWNvbW1vbnMvY29yZSc7XG5pbXBvcnQge0ZpbHRlckRhdGVPcHRzVHlwZSwgRmlsdGVyR2VuZXJpY1Byb3BlcnR5LCBGaWx0ZXJOdW1iZXJPcHRzVHlwZSwgRmlsdGVyVHlwZUVudW19IGZyb20gJ0BtZWRpdXNpbmMvbW5nLWNvbW1vbnMvZmlsdGVyJztcbmltcG9ydCB7TG9va3VwRGF0YVByb3ZpZGVySW5zdCwgbG9va3VwRGF0YVByb3ZpZGVyfSBmcm9tICdAbWVkaXVzaW5jL21uZy1jb21tb25zL2Zvcm0vYXBpJztcblxuZXhwb3J0IGludGVyZmFjZSBGaWx0ZXJHZW5lcmljUHJvcGVydHlPcHRzVHlwZSB7XG4gICAgbnVtYmVyT3B0cz86IEZpbHRlck51bWJlck9wdHNUeXBlO1xuICAgIGRhdGVPcHRzPzogRmlsdGVyRGF0ZU9wdHNUeXBlO1xufVxuXG4vKipcbiAqIE1hcHMgYSBwcm9wZXJ0eSB0eXBlIHRvIGl0cyBjb3JyZXNwb25kaW5nIGZpbHRlciB0eXBlIGVudW0gYW5kIGFwcGxpZXMgZGVmYXVsdFxuICogZmlsdGVyIG9wdGlvbnMgaWYgbm8gY3VzdG9tIG9wdGlvbnMgYXJlIHByb3ZpZGVkLiBJZiB0aGUgcHJvcGVydHkgdHlwZSBpcyBub3QgcmVjb2duaXplZCxcbiAqIGl0IHJldHVybnMgYSBmaWx0ZXIgdHlwZSB2YWx1ZSBvZiBudWxsLlxuICpcbiAqIEBwYXJhbSBwcm9wZXJ0eVR5cGUgLSBUaGUgcHJvcGVydHkgdHlwZSB0byBjb252ZXJ0LlxuICogQHBhcmFtIFtvcHRzXSAtIFRoZSBjdXN0b20gb3B0aW9ucyB0byB1c2UgZm9yIGNvbnZlcnNpb24uXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjb252ZXJ0UHJvcGVydHlUeXBlVG9GaWx0ZXJUeXBlKFxuICAgIHByb3BlcnR5VHlwZT86IHN0cmluZyxcbiAgICBvcHRzPzogRmlsdGVyR2VuZXJpY1Byb3BlcnR5T3B0c1R5cGVcbik6IHtmaWx0ZXJUeXBlOiBGaWx0ZXJUeXBlRW51bSB8IG51bGw7IG9wdHM/OiBGaWx0ZXJEYXRlT3B0c1R5cGUgfCBGaWx0ZXJOdW1iZXJPcHRzVHlwZX0ge1xuICAgIGxldCBmaWx0ZXJUeXBlOiBGaWx0ZXJUeXBlRW51bSB8IG51bGw7XG4gICAgbGV0IHJldHVybk9wdHM6IEZpbHRlckRhdGVPcHRzVHlwZSB8IEZpbHRlck51bWJlck9wdHNUeXBlIHwgdW5kZWZpbmVkO1xuXG4gICAgc3dpdGNoIChwcm9wZXJ0eVR5cGU/LnRvTG93ZXJDYXNlKCkpIHtcbiAgICAgICAgY2FzZSAnZGF0ZSc6XG4gICAgICAgICAgICBmaWx0ZXJUeXBlID0gRmlsdGVyVHlwZUVudW0uRGF0ZTtcbiAgICAgICAgICAgIHJldHVybk9wdHMgPSBvcHRzPy5kYXRlT3B0c1xuICAgICAgICAgICAgICAgID8gb3B0cy5kYXRlT3B0c1xuICAgICAgICAgICAgICAgIDoge1xuICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXlGb3JtYXQ6ICdkZC5NTS5ZWVlZJyxcbiAgICAgICAgICAgICAgICAgICAgICBhcHBseUZyb21EaXNwbGF5Rm9ybWF0OiB0cnVlXG4gICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ2RhdGV0aW1lJzpcbiAgICAgICAgY2FzZSAnZGF0ZV90aW1lJzpcbiAgICAgICAgY2FzZSAnZGF0ZS10aW1lJzpcbiAgICAgICAgICAgIGZpbHRlclR5cGUgPSBGaWx0ZXJUeXBlRW51bS5EYXRlO1xuICAgICAgICAgICAgcmV0dXJuT3B0cyA9IG9wdHM/LmRhdGVPcHRzID8gb3B0cy5kYXRlT3B0cyA6IHtkaXNwbGF5Rm9ybWF0OiAnZGQuTU0uWVlZWSBISDptbScsIGFwcGx5RnJvbURpc3BsYXlGb3JtYXQ6IHRydWV9O1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ3N0cmluZyc6XG4gICAgICAgIGNhc2UgJ3RleHQnOlxuICAgICAgICAgICAgZmlsdGVyVHlwZSA9IEZpbHRlclR5cGVFbnVtLlN0cmluZztcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlICdlbnVtJzpcbiAgICAgICAgICAgIGZpbHRlclR5cGUgPSBGaWx0ZXJUeXBlRW51bS5Mb29rdXBFbnVtO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ2Jvb2xlYW4nOlxuICAgICAgICBjYXNlICdib29sJzpcbiAgICAgICAgICAgIGZpbHRlclR5cGUgPSBGaWx0ZXJUeXBlRW51bS5Cb29sZWFuO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ2Zsb2F0JzpcbiAgICAgICAgY2FzZSAnZG91YmxlJzpcbiAgICAgICAgY2FzZSAnZGVjaW1hbCc6XG4gICAgICAgICAgICBmaWx0ZXJUeXBlID0gRmlsdGVyVHlwZUVudW0uTnVtYmVyO1xuICAgICAgICAgICAgcmV0dXJuT3B0cyA9IG9wdHM/Lm51bWJlck9wdHMgPyBvcHRzLm51bWJlck9wdHMgOiB7ZGlzcGxheUZvcm1hdDogJzEuMS0zMCd9O1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ2ludGVnZXInOlxuICAgICAgICBjYXNlICdpbnQnOlxuICAgICAgICBjYXNlICdsb25nJzpcbiAgICAgICAgICAgIGZpbHRlclR5cGUgPSBGaWx0ZXJUeXBlRW51bS5OdW1iZXI7XG4gICAgICAgICAgICByZXR1cm5PcHRzID0gb3B0cz8ubnVtYmVyT3B0cztcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgZmlsdGVyVHlwZSA9IG51bGw7XG4gICAgfVxuXG4gICAgcmV0dXJuIHtmaWx0ZXJUeXBlLCBvcHRzOiByZXR1cm5PcHRzfTtcbn1cblxudHlwZSBGaWx0ZXJHZW5lcmljUHJvcGVydGllc01ldGFkYXRhVHlwZSA9IHtba2V5OiBzdHJpbmddOiBzdHJpbmcgfCB1bmRlZmluZWR9O1xuXG4vKipcbiAqIENvbnZlcnRzIGFuIG9iamVjdCBvZiBwcm9wZXJ0aWVzIGFuZCB0eXBlcyBpbnRvIGFuIGFycmF5IG9mIGZpbHRlcmFibGUgcHJvcGVydGllcyB3aXRoIHRoZSBjb3JyZXNwb25kaW5nIGZpbHRlciB0eXBlcyBhbmQgb3B0aW9ucy5cbiAqIEBwYXJhbSBwcm9wZXJ0aWVzIC0gVGhlIG9iamVjdCBjb250YWluaW5nIHRoZSBwcm9wZXJ0aWVzLlxuICogQHBhcmFtIFtvcHRzXSAtIEN1c3RvbSBmaWx0ZXIgb3B0aW9ucy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNvbnZlcnRQcm9wZXJ0eVRvRmlsdGVyR2VuZXJpY1Byb3BlcnRpZXMocHJvcGVydGllczogRmlsdGVyR2VuZXJpY1Byb3BlcnRpZXNNZXRhZGF0YVR5cGUsIG9wdHM/OiBGaWx0ZXJHZW5lcmljUHJvcGVydHlPcHRzVHlwZSk6IEZpbHRlckdlbmVyaWNQcm9wZXJ0eVtdIHtcbiAgICByZXR1cm4gT2JqZWN0LmtleXMocHJvcGVydGllcykucmVkdWNlPEFycmF5PEZpbHRlckdlbmVyaWNQcm9wZXJ0eT4+KChmaWx0ZXJhYmxlUHJvcGVydGllcywga2V5KSA9PiB7XG4gICAgICAgIGNvbnN0IHtmaWx0ZXJUeXBlLCBvcHRzOiBmaWx0ZXJPcHRzfSA9IGNvbnZlcnRQcm9wZXJ0eVR5cGVUb0ZpbHRlclR5cGUocHJvcGVydGllc1trZXldLCBvcHRzKTtcbiAgICAgICAgaWYgKGZpbHRlclR5cGUgIT09IG51bGwpIHtcbiAgICAgICAgICAgIGZpbHRlcmFibGVQcm9wZXJ0aWVzLnB1c2goe1xuICAgICAgICAgICAgICAgIHByb3BlcnR5OiBrZXksXG4gICAgICAgICAgICAgICAgdHlwZTogZmlsdGVyVHlwZSxcbiAgICAgICAgICAgICAgICBvcHRzOiBmaWx0ZXJPcHRzXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZmlsdGVyYWJsZVByb3BlcnRpZXM7XG4gICAgfSwgW10pO1xufVxuXG4vKipcbiAqIE1hcHMgYW4gT2JzZXJ2YWJsZSBvZiBwcm9wZXJ0aWVzIHRvIGZpbHRlciBnZW5lcmljIHByb3BlcnRpZXMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBtYXBUb0ZpbHRlckdlbmVyaWNQcm9wZXJ0aWVzKG9wdHM/OiBGaWx0ZXJHZW5lcmljUHJvcGVydHlPcHRzVHlwZSk6IE9wZXJhdG9yRnVuY3Rpb248RmlsdGVyR2VuZXJpY1Byb3BlcnRpZXNNZXRhZGF0YVR5cGUsIEZpbHRlckdlbmVyaWNQcm9wZXJ0eVtdPiB7XG4gICAgcmV0dXJuIGZ1bmN0aW9uIChzb3VyY2U6IE9ic2VydmFibGU8RmlsdGVyR2VuZXJpY1Byb3BlcnRpZXNNZXRhZGF0YVR5cGU+KTogT2JzZXJ2YWJsZTxGaWx0ZXJHZW5lcmljUHJvcGVydHlbXT4ge1xuICAgICAgICByZXR1cm4gbmV3IE9ic2VydmFibGUoc3Vic2NyaWJlciA9PiB7XG4gICAgICAgICAgICByZXR1cm4gc291cmNlLnN1YnNjcmliZSh7XG4gICAgICAgICAgICAgICAgbmV4dCh2YWx1ZSkge1xuICAgICAgICAgICAgICAgICAgICBzdWJzY3JpYmVyLm5leHQoY29udmVydFByb3BlcnR5VG9GaWx0ZXJHZW5lcmljUHJvcGVydGllcyh2YWx1ZSwgb3B0cykpO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgZXJyb3I6IGVyciA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHN1YnNjcmliZXIuZXJyb3IoZXJyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgfTtcbn1cblxudHlwZSBGaWx0ZXJQcm9wZXJ0eUxvb2t1cEZuVHlwZTxTZXJ2aWNlPiA9IChzZXJ2aWNlOiBTZXJ2aWNlKSA9PiBJdGVtT3JPYnNlcnZhYmxlPEZpbHRlckdlbmVyaWNQcm9wZXJ0aWVzTWV0YWRhdGFUeXBlPjtcblxuLyoqXG4gKiBDcmVhdGVzIGEgZGF0YSBwcm92aWRlciBmb3IgZ2VuZXJpYyBmaWx0ZXIgcHJvcGVydGllcyB0aGF0IGNhbiBiZSB1c2VkIHdpdGggdGhlIFRhYmxlRGVzY3JpcHRvcidzIGdlbmVyaWMgZmlsdGVyIGZ1bmN0aW9uYWxpdHkuXG4gKlxuICogQHBhcmFtIHNlcnZpY2VUeXBlIC0gVGhlIHNlcnZpY2UgdG8gZmV0Y2ggdGhlIHByb3BlcnRpZXMgZnJvbS5cbiAqIEBwYXJhbSBsb29rdXBGbiAtIFRoZSBuYW1lIG9mIHRoZSBzZXJ2aWNlIGZ1bmN0aW9uIHRvIGNhbGwgZm9yIHByb3BlcnRpZXMgb3IgZnVuY3Rpb24gaW1wbCByZXR1cm5pbmcgcHJvcGVydGllcy5cbiAqIEBwYXJhbSBbb3B0c10gLSBPcHRpb25hbCBjdXN0b20gb3B0aW9ucyBmb3IgZmlsdGVyIGRlc2NyaXB0b3JzLCBzdWNoIGFzIGRhdGUgYW5kIG51bWJlciBmb3JtYXR0aW5nLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZmlsdGVyUHJvcGVydHlMb29rdXBQcm92aWRlcjxTZXJ2aWNlPihcbiAgICBzZXJ2aWNlVHlwZTogVHlwZTxTZXJ2aWNlPixcbiAgICBsb29rdXBGbjogRmlsdGVyUHJvcGVydHlMb29rdXBGblR5cGU8U2VydmljZT4gfCBDbGFzc0Z1bmN0aW9uS2V5c1dpdGhSZXR1cm5UeXBlPFNlcnZpY2UsIE9ic2VydmFibGU8RmlsdGVyR2VuZXJpY1Byb3BlcnRpZXNNZXRhZGF0YVR5cGU+PixcbiAgICBvcHRzPzogRmlsdGVyR2VuZXJpY1Byb3BlcnR5T3B0c1R5cGVcbikge1xuICAgIGlmICh0eXBlb2YgbG9va3VwRm4gPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgcmV0dXJuIGxvb2t1cERhdGFQcm92aWRlcjxGaWx0ZXJHZW5lcmljUHJvcGVydHksIFNlcnZpY2U+KHtzZXJ2aWNlOiBzZXJ2aWNlVHlwZX0pLndpdGhMb29rdXAoKF8sIHNlcnZpY2UpID0+XG4gICAgICAgICAgICB0b09ic2VydmFibGUobG9va3VwRm4oc2VydmljZSkpLnBpcGUobWFwVG9GaWx0ZXJHZW5lcmljUHJvcGVydGllcyhvcHRzKSlcbiAgICAgICAgKTtcbiAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gbG9va3VwRGF0YVByb3ZpZGVyPEZpbHRlckdlbmVyaWNQcm9wZXJ0eSwgU2VydmljZT4oe3NlcnZpY2U6IHNlcnZpY2VUeXBlfSkud2l0aExvb2t1cCgoXywgc2VydmljZSkgPT5cbiAgICAgICAgICAgIChzZXJ2aWNlIGFzIGFueSlbbG9va3VwRm5dKCkucGlwZShtYXBUb0ZpbHRlckdlbmVyaWNQcm9wZXJ0aWVzKG9wdHMpKVxuICAgICAgICApO1xuICAgIH1cbn1cblxudHlwZSBGaWx0ZXJWYWx1ZVN1Z2dlc3Rpb25Mb29rdXBGblR5cGU8U2VydmljZT4gPSAoc2VydmljZTogU2VydmljZSwgZmllbGQ6IHN0cmluZywgc2VhcmNoPzogc3RyaW5nKSA9PiBJdGVtT3JPYnNlcnZhYmxlPHN0cmluZ1tdPjtcblxuLyoqXG4gKiBDcmVhdGVzIGEgZGF0YSBwcm92aWRlciBmb3IgZ2VuZXJpYyBmaWx0ZXIgdmFsdWUgc3VnZ2VzdGlvbnMgdGhhdCBjYW4gYmUgdXNlZCB3aXRoIHRoZSBUYWJsZURlc2NyaXB0b3IncyBnZW5lcmljIGZpbHRlciBmdW5jdGlvbmFsaXR5LlxuICpcbiAqIEBwYXJhbSBzZXJ2aWNlIC0gVGhlIHNlcnZpY2UgdG8gdXNlIGZvciBzdWdnZXN0aW5nIGZpbHRlciB2YWx1ZXMuXG4gKiBAcGFyYW0gbG9va3VwRm4gLSBUaGUgZnVuY3Rpb24gbmFtZSBvZiB0aGUgc2VydmljZSB0byBjYWxsIGZvciBzdWdnZXN0aW9uIG9yIGZ1bmN0aW9uIGltcGwgcmV0dXJuaW5nIHN1Z2dlc3Rpb25zLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZmlsdGVyVmFsdWVTdWdnZXN0aW9uTG9va3VwUHJvdmlkZXI8U2VydmljZT4oXG4gICAgc2VydmljZTogVHlwZTxTZXJ2aWNlPixcbiAgICBsb29rdXBGbjogRmlsdGVyVmFsdWVTdWdnZXN0aW9uTG9va3VwRm5UeXBlPFNlcnZpY2U+IHwgQ2xhc3NGdW5jdGlvbktleXNXaXRoUGFyYW1BbmRSZXR1cm5UeXBlPFNlcnZpY2UsIHtmaWVsZDogc3RyaW5nOyB0ZXh0Pzogc3RyaW5nfSwgT2JzZXJ2YWJsZTxzdHJpbmdbXT4+XG4pOiBMb29rdXBEYXRhUHJvdmlkZXJJbnN0PHN0cmluZywgU2VydmljZSwgc3RyaW5nLCAnZmllbGQnPiB7XG4gICAgaWYgKHR5cGVvZiBsb29rdXBGbiA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICByZXR1cm4gbG9va3VwRGF0YVByb3ZpZGVyPHN0cmluZywgU2VydmljZSwgc3RyaW5nLCAnZmllbGQnPih7c2VydmljZX0pLndpdGhMb29rdXAoKHBhcmFtcywgc2VydmljZSwgc2VhcmNoPykgPT5cbiAgICAgICAgICAgIGxvb2t1cEZuKHNlcnZpY2UsIHZhbHVlVG9EZWZpbmVkKHBhcmFtcz8uZmlsdGVycz8uWydmaWVsZCddPy52YWx1ZSkgYXMgc3RyaW5nLCBzZWFyY2gpXG4gICAgICAgICk7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIGxvb2t1cERhdGFQcm92aWRlcjxzdHJpbmcsIFNlcnZpY2UsIHN0cmluZywgJ2ZpZWxkJz4oe3NlcnZpY2V9KS53aXRoTG9va3VwKChwYXJhbXMsIHNlcnZpY2UsIHNlYXJjaD8pID0+XG4gICAgICAgICAgICAoc2VydmljZSBhcyBhbnkpW2xvb2t1cEZuXSh7XG4gICAgICAgICAgICAgICAgZmllbGQ6IHZhbHVlVG9EZWZpbmVkKHBhcmFtcz8uZmlsdGVycz8uWydmaWVsZCddPy52YWx1ZSkudG9TdHJpbmcoKSxcbiAgICAgICAgICAgICAgICB0ZXh0OiBzZWFyY2hcbiAgICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgfVxufVxuIl19
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import { map } from 'rxjs';
|
|
2
|
+
import { toGetAllParamsAsUrlQuery } from '@mediusinc/mng-commons-data-api';
|
|
3
|
+
import { LookupDataProviderInst } from '@mediusinc/mng-commons/form/api';
|
|
4
|
+
/**
|
|
5
|
+
* Creates lookup data provider with predefined lookup function based on API service GetAll function.
|
|
6
|
+
*
|
|
7
|
+
* @param {ServiceClassType<Service>} service - The API service instance used to perform the `getAll` call.
|
|
8
|
+
* @param {GetAllFn} getAllFn - The function key of the `getAll` method in the service to be invoked.
|
|
9
|
+
* @param [opts] - Optional configuration for the lookup.
|
|
10
|
+
* @param [opts.search] - Search parameter definition for mapping to filter property or global search property - both cannot be used at the same time.
|
|
11
|
+
* @param {ExtractGetAllParamsFilterType<ApiServiceGetAllFilterType<Service, any, GetAllFn>>} [opts.search.filter.property] - The filter field used for search criteria.
|
|
12
|
+
* @param {FilterMatchModeType} [opts.search.filter.matchMode] - The match mode used for the filter (e.g., contains, startsWith, etc.).
|
|
13
|
+
* @param {FilterMatchModeType} [opts.search.globalSearch] - If search term is to be applied to global filter.
|
|
14
|
+
* @param {Array<DataListSort<ExtractGetAllParamsSortType<ApiServiceGetAllFilterType<Service, any, GetAllFn>>>>} [opts.sorts] - The sorting options to order the fetched data.
|
|
15
|
+
* @param {number} [opts.limit] - The number of records to fetch.
|
|
16
|
+
* @return {LookupDataProviderInst<ExtractServiceGetAllDataType<Service, GetAllFn>, Service, ExtractGetAllParamsSortType<ApiServiceGetAllFilterType<Service, any, GetAllFn>>, ExtractGetAllParamsFilterType<ApiServiceGetAllFilterType<Service, any, GetAllFn>>>} The lookup data provider instance configured with the lookup function.
|
|
17
|
+
*/
|
|
18
|
+
export function lookupWithApiServiceGetAll(service, getAllFn, opts) {
|
|
19
|
+
return new LookupDataProviderInst(service).withLookup((params, service, search) => {
|
|
20
|
+
if (search != null && search.length > 0) {
|
|
21
|
+
if (opts?.search?.filter) {
|
|
22
|
+
params = {
|
|
23
|
+
offset: params?.offset,
|
|
24
|
+
limit: params?.limit,
|
|
25
|
+
sort: params?.sort,
|
|
26
|
+
filters: {
|
|
27
|
+
...{
|
|
28
|
+
[opts.search.filter.property]: {
|
|
29
|
+
value: search,
|
|
30
|
+
matchMode: opts.search.filter.matchMode ?? 'equals'
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
else if (opts?.search?.globalFilter) {
|
|
37
|
+
params = {
|
|
38
|
+
offset: params?.offset,
|
|
39
|
+
limit: params?.limit,
|
|
40
|
+
sort: params?.sort,
|
|
41
|
+
search: search
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
if (opts?.sort && opts.sort.length > 0) {
|
|
46
|
+
params = {
|
|
47
|
+
...params,
|
|
48
|
+
sort: opts?.sort
|
|
49
|
+
};
|
|
50
|
+
}
|
|
51
|
+
if (opts?.limit != null) {
|
|
52
|
+
params = {
|
|
53
|
+
...params,
|
|
54
|
+
limit: opts?.limit
|
|
55
|
+
};
|
|
56
|
+
}
|
|
57
|
+
return service[getAllFn](toGetAllParamsAsUrlQuery(params ?? {})).pipe(map(res => res.data ?? []));
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9va3VwLWdldC1hbGwtY3JlYXRlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vdGFibGV2aWV3L3NyYy9oZWxwZXJzL2xvb2t1cC1nZXQtYWxsLWNyZWF0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWEsR0FBRyxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBRXJDLE9BQU8sRUFNSCx3QkFBd0IsRUFDM0IsTUFBTSxpQ0FBaUMsQ0FBQztBQUV6QyxPQUFPLEVBQUMsc0JBQXNCLEVBQUMsTUFBTSxpQ0FBaUMsQ0FBQztBQUV2RTs7Ozs7Ozs7Ozs7OztHQWFHO0FBQ0gsTUFBTSxVQUFVLDBCQUEwQixDQUN0QyxPQUFrQyxFQUNsQyxRQUFrQixFQUNsQixJQVVDO0lBT0QsT0FBTyxJQUFJLHNCQUFzQixDQUsvQixPQUFvQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsTUFBTSxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsRUFBRTtRQUMzRSxJQUFJLE1BQU0sSUFBSSxJQUFJLElBQUksTUFBTSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUN0QyxJQUFJLElBQUksRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLENBQUM7Z0JBQ3ZCLE1BQU0sR0FBRztvQkFDTCxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU07b0JBQ3RCLEtBQUssRUFBRSxNQUFNLEVBQUUsS0FBSztvQkFDcEIsSUFBSSxFQUFFLE1BQU0sRUFBRSxJQUFJO29CQUNsQixPQUFPLEVBQTBHO3dCQUM3RyxHQUFHOzRCQUNDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLEVBQUU7Z0NBQzNCLEtBQUssRUFBRSxNQUFNO2dDQUNiLFNBQVMsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxTQUFTLElBQUksUUFBUTs2QkFDdEQ7eUJBQ0o7cUJBQ0o7aUJBQ0osQ0FBQztZQUNOLENBQUM7aUJBQU0sSUFBSSxJQUFJLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxDQUFDO2dCQUNwQyxNQUFNLEdBQUc7b0JBQ0wsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNO29CQUN0QixLQUFLLEVBQUUsTUFBTSxFQUFFLEtBQUs7b0JBQ3BCLElBQUksRUFBRSxNQUFNLEVBQUUsSUFBSTtvQkFDbEIsTUFBTSxFQUFFLE1BQU07aUJBQ2pCLENBQUM7WUFDTixDQUFDO1FBQ0wsQ0FBQztRQUNELElBQUksSUFBSSxFQUFFLElBQUksSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUNyQyxNQUFNLEdBQUc7Z0JBQ0wsR0FBRyxNQUFNO2dCQUNULElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSTthQUNuQixDQUFDO1FBQ04sQ0FBQztRQUNELElBQUksSUFBSSxFQUFFLEtBQUssSUFBSSxJQUFJLEVBQUUsQ0FBQztZQUN0QixNQUFNLEdBQUc7Z0JBQ0wsR0FBRyxNQUFNO2dCQUNULEtBQUssRUFBRSxJQUFJLEVBQUUsS0FBSzthQUNyQixDQUFDO1FBQ04sQ0FBQztRQUNELE9BQ0ssT0FBZSxDQUFDLFFBQXdCLENBQUMsQ0FBQyx3QkFBd0IsQ0FBQyxNQUFNLElBQUksRUFBRSxDQUFDLENBSXBGLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxJQUFJLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQztJQUN2QyxDQUFDLENBQUMsQ0FBQztBQUNQLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge09ic2VydmFibGUsIG1hcH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7XG4gICAgQXBpU2VydmljZUdldEFsbEZpbHRlclR5cGUsXG4gICAgRXh0cmFjdEdldEFsbFBhcmFtc0ZpbHRlclR5cGUsXG4gICAgRXh0cmFjdEdldEFsbFBhcmFtc1NvcnRUeXBlLFxuICAgIEV4dHJhY3RTZXJ2aWNlR2V0QWxsRGF0YVR5cGUsXG4gICAgR2V0QWxsSHR0cFJlc3BvbnNlVHlwZSxcbiAgICB0b0dldEFsbFBhcmFtc0FzVXJsUXVlcnlcbn0gZnJvbSAnQG1lZGl1c2luYy9tbmctY29tbW9ucy1kYXRhLWFwaSc7XG5pbXBvcnQge0NsYXNzRnVuY3Rpb25LZXlzV2l0aEFueUFyZ3NBbmRSZXR1cm5UeXBlLCBEYXRhTGlzdEZpbHRlcnNUeXBlLCBEYXRhTGlzdFNvcnQsIEZpbHRlck1hdGNoTW9kZUV4dGVuZGVkVHlwZSwgU2VydmljZUNsYXNzVHlwZX0gZnJvbSAnQG1lZGl1c2luYy9tbmctY29tbW9ucy9jb3JlJztcbmltcG9ydCB7TG9va3VwRGF0YVByb3ZpZGVySW5zdH0gZnJvbSAnQG1lZGl1c2luYy9tbmctY29tbW9ucy9mb3JtL2FwaSc7XG5cbi8qKlxuICogQ3JlYXRlcyBsb29rdXAgZGF0YSBwcm92aWRlciB3aXRoIHByZWRlZmluZWQgbG9va3VwIGZ1bmN0aW9uIGJhc2VkIG9uIEFQSSBzZXJ2aWNlIEdldEFsbCBmdW5jdGlvbi5cbiAqXG4gKiBAcGFyYW0ge1NlcnZpY2VDbGFzc1R5cGU8U2VydmljZT59IHNlcnZpY2UgLSBUaGUgQVBJIHNlcnZpY2UgaW5zdGFuY2UgdXNlZCB0byBwZXJmb3JtIHRoZSBgZ2V0QWxsYCBjYWxsLlxuICogQHBhcmFtIHtHZXRBbGxGbn0gZ2V0QWxsRm4gLSBUaGUgZnVuY3Rpb24ga2V5IG9mIHRoZSBgZ2V0QWxsYCBtZXRob2QgaW4gdGhlIHNlcnZpY2UgdG8gYmUgaW52b2tlZC5cbiAqIEBwYXJhbSBbb3B0c10gLSBPcHRpb25hbCBjb25maWd1cmF0aW9uIGZvciB0aGUgbG9va3VwLlxuICogQHBhcmFtIFtvcHRzLnNlYXJjaF0gLSBTZWFyY2ggcGFyYW1ldGVyIGRlZmluaXRpb24gZm9yIG1hcHBpbmcgdG8gZmlsdGVyIHByb3BlcnR5IG9yIGdsb2JhbCBzZWFyY2ggcHJvcGVydHkgLSBib3RoIGNhbm5vdCBiZSB1c2VkIGF0IHRoZSBzYW1lIHRpbWUuXG4gKiBAcGFyYW0ge0V4dHJhY3RHZXRBbGxQYXJhbXNGaWx0ZXJUeXBlPEFwaVNlcnZpY2VHZXRBbGxGaWx0ZXJUeXBlPFNlcnZpY2UsIGFueSwgR2V0QWxsRm4+Pn0gW29wdHMuc2VhcmNoLmZpbHRlci5wcm9wZXJ0eV0gLSBUaGUgZmlsdGVyIGZpZWxkIHVzZWQgZm9yIHNlYXJjaCBjcml0ZXJpYS5cbiAqIEBwYXJhbSB7RmlsdGVyTWF0Y2hNb2RlVHlwZX0gW29wdHMuc2VhcmNoLmZpbHRlci5tYXRjaE1vZGVdIC0gVGhlIG1hdGNoIG1vZGUgdXNlZCBmb3IgdGhlIGZpbHRlciAoZS5nLiwgY29udGFpbnMsIHN0YXJ0c1dpdGgsIGV0Yy4pLlxuICogQHBhcmFtIHtGaWx0ZXJNYXRjaE1vZGVUeXBlfSBbb3B0cy5zZWFyY2guZ2xvYmFsU2VhcmNoXSAtIElmIHNlYXJjaCB0ZXJtIGlzIHRvIGJlIGFwcGxpZWQgdG8gZ2xvYmFsIGZpbHRlci5cbiAqIEBwYXJhbSB7QXJyYXk8RGF0YUxpc3RTb3J0PEV4dHJhY3RHZXRBbGxQYXJhbXNTb3J0VHlwZTxBcGlTZXJ2aWNlR2V0QWxsRmlsdGVyVHlwZTxTZXJ2aWNlLCBhbnksIEdldEFsbEZuPj4+Pn0gW29wdHMuc29ydHNdIC0gVGhlIHNvcnRpbmcgb3B0aW9ucyB0byBvcmRlciB0aGUgZmV0Y2hlZCBkYXRhLlxuICogQHBhcmFtIHtudW1iZXJ9IFtvcHRzLmxpbWl0XSAtIFRoZSBudW1iZXIgb2YgcmVjb3JkcyB0byBmZXRjaC5cbiAqIEByZXR1cm4ge0xvb2t1cERhdGFQcm92aWRlckluc3Q8RXh0cmFjdFNlcnZpY2VHZXRBbGxEYXRhVHlwZTxTZXJ2aWNlLCBHZXRBbGxGbj4sIFNlcnZpY2UsIEV4dHJhY3RHZXRBbGxQYXJhbXNTb3J0VHlwZTxBcGlTZXJ2aWNlR2V0QWxsRmlsdGVyVHlwZTxTZXJ2aWNlLCBhbnksIEdldEFsbEZuPj4sIEV4dHJhY3RHZXRBbGxQYXJhbXNGaWx0ZXJUeXBlPEFwaVNlcnZpY2VHZXRBbGxGaWx0ZXJUeXBlPFNlcnZpY2UsIGFueSwgR2V0QWxsRm4+Pj59IFRoZSBsb29rdXAgZGF0YSBwcm92aWRlciBpbnN0YW5jZSBjb25maWd1cmVkIHdpdGggdGhlIGxvb2t1cCBmdW5jdGlvbi5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGxvb2t1cFdpdGhBcGlTZXJ2aWNlR2V0QWxsPFNlcnZpY2UsIEdldEFsbEZuIGV4dGVuZHMgQ2xhc3NGdW5jdGlvbktleXNXaXRoQW55QXJnc0FuZFJldHVyblR5cGU8U2VydmljZSwgT2JzZXJ2YWJsZTxHZXRBbGxIdHRwUmVzcG9uc2VUeXBlPGFueT4+Pj4oXG4gICAgc2VydmljZTogU2VydmljZUNsYXNzVHlwZTxTZXJ2aWNlPixcbiAgICBnZXRBbGxGbjogR2V0QWxsRm4sXG4gICAgb3B0cz86IHtcbiAgICAgICAgc2VhcmNoPzoge1xuICAgICAgICAgICAgZmlsdGVyPzoge1xuICAgICAgICAgICAgICAgIHByb3BlcnR5OiBFeHRyYWN0R2V0QWxsUGFyYW1zRmlsdGVyVHlwZTxBcGlTZXJ2aWNlR2V0QWxsRmlsdGVyVHlwZTxTZXJ2aWNlLCBhbnksIEdldEFsbEZuPj47XG4gICAgICAgICAgICAgICAgbWF0Y2hNb2RlPzogRmlsdGVyTWF0Y2hNb2RlRXh0ZW5kZWRUeXBlO1xuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIGdsb2JhbEZpbHRlcj86IGJvb2xlYW47XG4gICAgICAgIH07XG4gICAgICAgIHNvcnQ/OiBEYXRhTGlzdFNvcnQ8RXh0cmFjdEdldEFsbFBhcmFtc1NvcnRUeXBlPEFwaVNlcnZpY2VHZXRBbGxGaWx0ZXJUeXBlPFNlcnZpY2UsIGFueSwgR2V0QWxsRm4+Pj5bXTtcbiAgICAgICAgbGltaXQ/OiBudW1iZXI7XG4gICAgfVxuKTogTG9va3VwRGF0YVByb3ZpZGVySW5zdDxcbiAgICBFeHRyYWN0U2VydmljZUdldEFsbERhdGFUeXBlPFNlcnZpY2UsIEdldEFsbEZuPixcbiAgICBTZXJ2aWNlLFxuICAgIEV4dHJhY3RHZXRBbGxQYXJhbXNTb3J0VHlwZTxBcGlTZXJ2aWNlR2V0QWxsRmlsdGVyVHlwZTxTZXJ2aWNlLCBhbnksIEdldEFsbEZuPj4sXG4gICAgRXh0cmFjdEdldEFsbFBhcmFtc0ZpbHRlclR5cGU8QXBpU2VydmljZUdldEFsbEZpbHRlclR5cGU8U2VydmljZSwgYW55LCBHZXRBbGxGbj4+XG4+IHtcbiAgICByZXR1cm4gbmV3IExvb2t1cERhdGFQcm92aWRlckluc3Q8XG4gICAgICAgIEV4dHJhY3RTZXJ2aWNlR2V0QWxsRGF0YVR5cGU8U2VydmljZSwgR2V0QWxsRm4+LFxuICAgICAgICBTZXJ2aWNlLFxuICAgICAgICBFeHRyYWN0R2V0QWxsUGFyYW1zU29ydFR5cGU8QXBpU2VydmljZUdldEFsbEZpbHRlclR5cGU8U2VydmljZSwgYW55LCBHZXRBbGxGbj4+LFxuICAgICAgICBFeHRyYWN0R2V0QWxsUGFyYW1zRmlsdGVyVHlwZTxBcGlTZXJ2aWNlR2V0QWxsRmlsdGVyVHlwZTxTZXJ2aWNlLCBhbnksIEdldEFsbEZuPj5cbiAgICA+KHNlcnZpY2UgYXMgU2VydmljZUNsYXNzVHlwZTxTZXJ2aWNlPikud2l0aExvb2t1cCgocGFyYW1zLCBzZXJ2aWNlLCBzZWFyY2gpID0+IHtcbiAgICAgICAgaWYgKHNlYXJjaCAhPSBudWxsICYmIHNlYXJjaC5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICBpZiAob3B0cz8uc2VhcmNoPy5maWx0ZXIpIHtcbiAgICAgICAgICAgICAgICBwYXJhbXMgPSB7XG4gICAgICAgICAgICAgICAgICAgIG9mZnNldDogcGFyYW1zPy5vZmZzZXQsXG4gICAgICAgICAgICAgICAgICAgIGxpbWl0OiBwYXJhbXM/LmxpbWl0LFxuICAgICAgICAgICAgICAgICAgICBzb3J0OiBwYXJhbXM/LnNvcnQsXG4gICAgICAgICAgICAgICAgICAgIGZpbHRlcnM6IDxEYXRhTGlzdEZpbHRlcnNUeXBlPEV4dHJhY3RHZXRBbGxQYXJhbXNGaWx0ZXJUeXBlPEFwaVNlcnZpY2VHZXRBbGxGaWx0ZXJUeXBlPFNlcnZpY2UsIGFueSwgR2V0QWxsRm4+Pj4+e1xuICAgICAgICAgICAgICAgICAgICAgICAgLi4ue1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtvcHRzLnNlYXJjaC5maWx0ZXIucHJvcGVydHldOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiBzZWFyY2gsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hdGNoTW9kZTogb3B0cy5zZWFyY2guZmlsdGVyLm1hdGNoTW9kZSA/PyAnZXF1YWxzJ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICB9IGVsc2UgaWYgKG9wdHM/LnNlYXJjaD8uZ2xvYmFsRmlsdGVyKSB7XG4gICAgICAgICAgICAgICAgcGFyYW1zID0ge1xuICAgICAgICAgICAgICAgICAgICBvZmZzZXQ6IHBhcmFtcz8ub2Zmc2V0LFxuICAgICAgICAgICAgICAgICAgICBsaW1pdDogcGFyYW1zPy5saW1pdCxcbiAgICAgICAgICAgICAgICAgICAgc29ydDogcGFyYW1zPy5zb3J0LFxuICAgICAgICAgICAgICAgICAgICBzZWFyY2g6IHNlYXJjaFxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG9wdHM/LnNvcnQgJiYgb3B0cy5zb3J0Lmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIHBhcmFtcyA9IHtcbiAgICAgICAgICAgICAgICAuLi5wYXJhbXMsXG4gICAgICAgICAgICAgICAgc29ydDogb3B0cz8uc29ydFxuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgICAgICBpZiAob3B0cz8ubGltaXQgIT0gbnVsbCkge1xuICAgICAgICAgICAgcGFyYW1zID0ge1xuICAgICAgICAgICAgICAgIC4uLnBhcmFtcyxcbiAgICAgICAgICAgICAgICBsaW1pdDogb3B0cz8ubGltaXRcbiAgICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIChzZXJ2aWNlIGFzIGFueSlbZ2V0QWxsRm4gYXMga2V5b2Ygb2JqZWN0XSh0b0dldEFsbFBhcmFtc0FzVXJsUXVlcnkocGFyYW1zID8/IHt9KSkgYXMgT2JzZXJ2YWJsZTx7XG4gICAgICAgICAgICAgICAgZGF0YT86IEV4dHJhY3RTZXJ2aWNlR2V0QWxsRGF0YVR5cGU8U2VydmljZSwgR2V0QWxsRm4+W107XG4gICAgICAgICAgICAgICAgdG90YWxDb3VudD86IG51bWJlcjtcbiAgICAgICAgICAgIH0+XG4gICAgICAgICkucGlwZShtYXAocmVzID0+IHJlcy5kYXRhID8/IFtdKSk7XG4gICAgfSk7XG59XG4iXX0=
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import { Injector, inject } from '@angular/core';
|
|
2
|
+
import { apiServiceGetAll } from '@mediusinc/mng-commons-data-api';
|
|
3
|
+
import { TableviewDataProviderInst, TableviewDescriptorInst, TableviewInputBuilder } from '@mediusinc/mng-commons/tableview/api';
|
|
4
|
+
/**
|
|
5
|
+
* Creates a tableview with a given model, service and sorts/filters extracted from Data API Get All request params, service, and optional build function.
|
|
6
|
+
*
|
|
7
|
+
* @param {ModelDescriptor<Model>} model - The model descriptor.
|
|
8
|
+
* @param {ServiceClassType<Service>} service - The class type of the service.
|
|
9
|
+
* @param {TypeDescriptor<RequestParam> | TableviewWithGetAllParamsOpts<RequestParam, TableModel>} paramsOrOpts - The request param of get all request. Filters and sorts will be taken from here.
|
|
10
|
+
* @param {(builder: TableviewBuilder) => void} [buildFn] - The optional callback function to customize the tableview using the prepared builder.
|
|
11
|
+
*
|
|
12
|
+
* @returns A tableview instance with descriptor, data provider and actions.
|
|
13
|
+
*/
|
|
14
|
+
export function tableviewWithGetAllParams(model, service, params, buildFn) {
|
|
15
|
+
const builder = new TableviewInputBuilder(new TableviewDescriptorInst(model), new TableviewDataProviderInst(service), inject(Injector));
|
|
16
|
+
buildFn?.(builder);
|
|
17
|
+
return builder.build();
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Creates a tableview with a mulit-model (separate for add, edit and details), service and sorts/filters from API service's provided getAll function.
|
|
21
|
+
*
|
|
22
|
+
* @param {ModelDescriptor<Model>} model - The model descriptor.
|
|
23
|
+
* @param {ServiceClassType<Service>} service - The class type of the service.
|
|
24
|
+
* @param {TableviewWithGetAllParamsOpts} opts - Options providing get all request parameters and models for table, add and edit.
|
|
25
|
+
* @param {(builder: TableviewBuilder) => void} [buildFn] - The optional callback function to customize the tableview using the prepared builder.
|
|
26
|
+
*
|
|
27
|
+
* @returns A tableview instance with descriptor, data provider and actions.
|
|
28
|
+
*/
|
|
29
|
+
export function tableviewMultiModelWithGetAllParams(model, service, opts, buildFn) {
|
|
30
|
+
const builder = new TableviewInputBuilder(new TableviewDescriptorInst(model, opts), new TableviewDataProviderInst(service), inject(Injector));
|
|
31
|
+
buildFn?.(builder);
|
|
32
|
+
return builder.build();
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Creates a tableview with a given model, service and sorts/filters from API service's provided getAll function.
|
|
36
|
+
*
|
|
37
|
+
* @param {ModelDescriptor<Model>} model - The model descriptor.
|
|
38
|
+
* @param {ServiceClassType<Service>} service - The class type of the service.
|
|
39
|
+
* @param {GetAllFn} getAllFn - The function from service for executing getAll requests. Filters and sorts will be taken from here.
|
|
40
|
+
* @param {(builder: TableviewBuilder) => void} [buildFn] - The optional callback function to customize the tableview using the prepared builder.
|
|
41
|
+
*
|
|
42
|
+
* @returns A tableview instance with descriptor, data provider and actions.
|
|
43
|
+
*/
|
|
44
|
+
export function tableviewWithApiServiceGetAll(model, service, getAllFn, buildFn) {
|
|
45
|
+
const builder = new TableviewInputBuilder(new TableviewDescriptorInst(model), new TableviewDataProviderInst(service), inject(Injector));
|
|
46
|
+
builder.withAdjustDataProvider(dataProvider => dataProvider.withGetAll((params, service) => apiServiceGetAll(service, getAllFn, params)));
|
|
47
|
+
buildFn?.(builder);
|
|
48
|
+
return builder.build();
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Creates a tableview with a given model, service and sorts/filters from API service's provided getAll function.
|
|
52
|
+
*
|
|
53
|
+
* @param {ModelDescriptor<Model>} model - The model descriptor.
|
|
54
|
+
* @param {ServiceClassType<Service>} service - The class type of the service.
|
|
55
|
+
* @param {GetAllFn} serviceGetAllFn - The function from service for executing getAll requests. Filters and sorts will be taken from here.
|
|
56
|
+
* @param {Required<TableviewDescriptorInstConstructorOpts<TableModel, AddModel, EditModel>>} - Required options: all remaining models for multi-tableview must be defined here.
|
|
57
|
+
* @param {(builder: TableviewBuilder) => void} [buildFn] - The optional callback function to customize the tableview using the prepared builder.
|
|
58
|
+
*
|
|
59
|
+
* @returns A tableview instance with descriptor, data provider and actions.
|
|
60
|
+
*/
|
|
61
|
+
export function tableviewMultiModelWithApiServiceGetAll(model, service, serviceGetAllFn, opts, buildFn) {
|
|
62
|
+
const builder = new TableviewInputBuilder(new TableviewDescriptorInst(model, opts), new TableviewDataProviderInst(service), inject(Injector));
|
|
63
|
+
builder.withAdjustDataProvider(dataProvider => dataProvider.withGetAll((params, service) => apiServiceGetAll(service, serviceGetAllFn, params)));
|
|
64
|
+
buildFn?.(builder);
|
|
65
|
+
return builder.build();
|
|
66
|
+
}
|
|
67
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGV2aWV3LWdldC1hbGwtcGFyYW1zLWNyZWF0ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3RhYmxldmlldy9zcmMvaGVscGVycy90YWJsZXZpZXctZ2V0LWFsbC1wYXJhbXMtY3JlYXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxRQUFRLEVBQUUsTUFBTSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBSS9DLE9BQU8sRUFPSCxnQkFBZ0IsRUFDbkIsTUFBTSxpQ0FBaUMsQ0FBQztBQUd6QyxPQUFPLEVBQ0gseUJBQXlCLEVBRXpCLHVCQUF1QixFQUV2QixxQkFBcUIsRUFDeEIsTUFBTSxzQ0FBc0MsQ0FBQztBQU05Qzs7Ozs7Ozs7O0dBU0c7QUFDSCxNQUFNLFVBQVUseUJBQXlCLENBT3JDLEtBQTZCLEVBQzdCLE9BQWtDLEVBQ2xDLE1BQW9DLEVBQ3BDLE9BYVM7SUFFVCxNQUFNLE9BQU8sR0FBRyxJQUFJLHFCQUFxQixDQVlyQyxJQUFJLHVCQUF1QixDQUErRCxLQUFLLENBQUMsRUFDaEcsSUFBSSx5QkFBeUIsQ0FBaUMsT0FBTyxDQUFDLEVBQ3RFLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FDbkIsQ0FBQztJQUNGLE9BQU8sRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ25CLE9BQU8sT0FBTyxDQUFDLEtBQUssRUFBRSxDQUFDO0FBQzNCLENBQUM7QUFFRDs7Ozs7Ozs7O0dBU0c7QUFDSCxNQUFNLFVBQVUsbUNBQW1DLENBVy9DLEtBQTZCLEVBQzdCLE9BQWtDLEVBQ2xDLElBQTRGLEVBQzVGLE9BYVM7SUFFVCxNQUFNLE9BQU8sR0FBRyxJQUFJLHFCQUFxQixDQVlyQyxJQUFJLHVCQUF1QixDQUFpRixLQUFLLEVBQUUsSUFBSSxDQUFDLEVBQ3hILElBQUkseUJBQXlCLENBQTZGLE9BQU8sQ0FBQyxFQUNsSSxNQUFNLENBQUMsUUFBUSxDQUFDLENBQ25CLENBQUM7SUFDRixPQUFPLEVBQUUsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNuQixPQUFPLE9BQU8sQ0FBQyxLQUFLLEVBQUUsQ0FBQztBQUMzQixDQUFDO0FBRUQ7Ozs7Ozs7OztHQVNHO0FBQ0gsTUFBTSxVQUFVLDZCQUE2QixDQVN6QyxLQUE2QixFQUM3QixPQUFrQyxFQUNsQyxRQUFrQixFQUNsQixPQWFTO0lBRVQsTUFBTSxPQUFPLEdBQUcsSUFBSSxxQkFBcUIsQ0FZckMsSUFBSSx1QkFBdUIsQ0FBb0UsS0FBSyxDQUFDLEVBQ3JHLElBQUkseUJBQXlCLENBQXdFLE9BQU8sQ0FBQyxFQUM3RyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQ25CLENBQUM7SUFDRixPQUFPLENBQUMsc0JBQXNCLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQyxZQUFZLENBQUMsVUFBVSxDQUFDLENBQUMsTUFBTSxFQUFFLE9BQU8sRUFBRSxFQUFFLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxFQUFFLFFBQWUsRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDakosT0FBTyxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDbkIsT0FBTyxPQUFPLENBQUMsS0FBSyxFQUFFLENBQUM7QUFDM0IsQ0FBQztBQUVEOzs7Ozs7Ozs7O0dBVUc7QUFDSCxNQUFNLFVBQVUsdUNBQXVDLENBWW5ELEtBQTZCLEVBQzdCLE9BQWtDLEVBQ2xDLGVBQWdDLEVBQ2hDLElBQXVGLEVBQ3ZGLE9BYVM7SUFFVCxNQUFNLE9BQU8sR0FBRyxJQUFJLHFCQUFxQixDQVlyQyxJQUFJLHVCQUF1QixDQUFpRixLQUFLLEVBQUUsSUFBSSxDQUFDLEVBQ3hILElBQUkseUJBQXlCLENBQTZGLE9BQU8sQ0FBQyxFQUNsSSxNQUFNLENBQUMsUUFBUSxDQUFDLENBQ25CLENBQUM7SUFDRixPQUFPLENBQUMsc0JBQXNCLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQyxZQUFZLENBQUMsVUFBVSxDQUFDLENBQUMsTUFBTSxFQUFFLE9BQU8sRUFBRSxFQUFFLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxFQUFFLGVBQXNCLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3hKLE9BQU8sRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ25CLE9BQU8sT0FBTyxDQUFDLEtBQUssRUFBRSxDQUFDO0FBQzNCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0luamVjdG9yLCBpbmplY3R9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQge09ic2VydmFibGV9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQge1xuICAgIEFwaVNlcnZpY2VHZXRBbGxGaWx0ZXJUeXBlLFxuICAgIEV4dHJhY3RHZXRBbGxQYXJhbXNGaWx0ZXJUeXBlLFxuICAgIEV4dHJhY3RHZXRBbGxQYXJhbXNTb3J0VHlwZSxcbiAgICBFeHRyYWN0U2VydmljZUdldEFsbERhdGFUeXBlLFxuICAgIEdldEFsbEh0dHBSZXNwb25zZVR5cGUsXG4gICAgR2V0QWxsUGFyYW1zRGVmYXVsdFdvRmlsdGVyc1R5cGUsXG4gICAgYXBpU2VydmljZUdldEFsbFxufSBmcm9tICdAbWVkaXVzaW5jL21uZy1jb21tb25zLWRhdGEtYXBpJztcbmltcG9ydCB7Q2xhc3NGdW5jdGlvbktleXNXaXRoQW55QXJnc0FuZFJldHVyblR5cGUsIFNlcnZpY2VDbGFzc1R5cGV9IGZyb20gJ0BtZWRpdXNpbmMvbW5nLWNvbW1vbnMvY29yZSc7XG5pbXBvcnQge01vZGVsRGVzY3JpcHRvciwgVHlwZURlc2NyaXB0b3J9IGZyb20gJ0BtZWRpdXNpbmMvbW5nLWNvbW1vbnMvbW9kZWwnO1xuaW1wb3J0IHtcbiAgICBUYWJsZXZpZXdEYXRhUHJvdmlkZXJJbnN0LFxuICAgIFRhYmxldmlld0Rlc2NyaXB0b3JGaWVsZHNNYW5hZ2VNdWx0aVR5cGUsXG4gICAgVGFibGV2aWV3RGVzY3JpcHRvckluc3QsXG4gICAgVGFibGV2aWV3RGVzY3JpcHRvckluc3RDb25zdHJ1Y3Rvck9wdHMsXG4gICAgVGFibGV2aWV3SW5wdXRCdWlsZGVyXG59IGZyb20gJ0BtZWRpdXNpbmMvbW5nLWNvbW1vbnMvdGFibGV2aWV3L2FwaSc7XG5cbnR5cGUgVGFibGV2aWV3V2l0aEdldEFsbFBhcmFtc09wdHM8UmVxdWVzdFBhcmFtLCBUYWJsZU1vZGVsLCBBZGRNb2RlbCwgRWRpdE1vZGVsPiA9IHtcbiAgICByZXF1ZXN0UGFyYW1zVHlwZTogVHlwZURlc2NyaXB0b3I8UmVxdWVzdFBhcmFtPjtcbn0gJiBUYWJsZXZpZXdEZXNjcmlwdG9ySW5zdENvbnN0cnVjdG9yT3B0czxUYWJsZU1vZGVsLCBBZGRNb2RlbCwgRWRpdE1vZGVsPjtcblxuLyoqXG4gKiBDcmVhdGVzIGEgdGFibGV2aWV3IHdpdGggYSBnaXZlbiBtb2RlbCwgc2VydmljZSBhbmQgc29ydHMvZmlsdGVycyBleHRyYWN0ZWQgZnJvbSBEYXRhIEFQSSBHZXQgQWxsIHJlcXVlc3QgcGFyYW1zLCBzZXJ2aWNlLCBhbmQgb3B0aW9uYWwgYnVpbGQgZnVuY3Rpb24uXG4gKlxuICogQHBhcmFtIHtNb2RlbERlc2NyaXB0b3I8TW9kZWw+fSBtb2RlbCAtIFRoZSBtb2RlbCBkZXNjcmlwdG9yLlxuICogQHBhcmFtIHtTZXJ2aWNlQ2xhc3NUeXBlPFNlcnZpY2U+fSBzZXJ2aWNlIC0gVGhlIGNsYXNzIHR5cGUgb2YgdGhlIHNlcnZpY2UuXG4gKiBAcGFyYW0ge1R5cGVEZXNjcmlwdG9yPFJlcXVlc3RQYXJhbT4gfCBUYWJsZXZpZXdXaXRoR2V0QWxsUGFyYW1zT3B0czxSZXF1ZXN0UGFyYW0sIFRhYmxlTW9kZWw+fSBwYXJhbXNPck9wdHMgLSBUaGUgcmVxdWVzdCBwYXJhbSBvZiBnZXQgYWxsIHJlcXVlc3QuIEZpbHRlcnMgYW5kIHNvcnRzIHdpbGwgYmUgdGFrZW4gZnJvbSBoZXJlLlxuICogQHBhcmFtIHsoYnVpbGRlcjogVGFibGV2aWV3QnVpbGRlcikgPT4gdm9pZH0gW2J1aWxkRm5dIC0gVGhlIG9wdGlvbmFsIGNhbGxiYWNrIGZ1bmN0aW9uIHRvIGN1c3RvbWl6ZSB0aGUgdGFibGV2aWV3IHVzaW5nIHRoZSBwcmVwYXJlZCBidWlsZGVyLlxuICpcbiAqIEByZXR1cm5zIEEgdGFibGV2aWV3IGluc3RhbmNlIHdpdGggZGVzY3JpcHRvciwgZGF0YSBwcm92aWRlciBhbmQgYWN0aW9ucy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRhYmxldmlld1dpdGhHZXRBbGxQYXJhbXM8XG4gICAgTW9kZWwsXG4gICAgU2VydmljZSxcbiAgICBSZXF1ZXN0UGFyYW0gZXh0ZW5kcyBHZXRBbGxQYXJhbXNEZWZhdWx0V29GaWx0ZXJzVHlwZSxcbiAgICBTb3J0cyA9IEV4dHJhY3RHZXRBbGxQYXJhbXNTb3J0VHlwZTxSZXF1ZXN0UGFyYW0+LFxuICAgIEZpbHRlcnMgZXh0ZW5kcyBrZXlvZiBhbnkgPSBFeHRyYWN0R2V0QWxsUGFyYW1zRmlsdGVyVHlwZTxSZXF1ZXN0UGFyYW0+XG4+KFxuICAgIG1vZGVsOiBNb2RlbERlc2NyaXB0b3I8TW9kZWw+LFxuICAgIHNlcnZpY2U6IFNlcnZpY2VDbGFzc1R5cGU8U2VydmljZT4sXG4gICAgcGFyYW1zOiBUeXBlRGVzY3JpcHRvcjxSZXF1ZXN0UGFyYW0+LFxuICAgIGJ1aWxkRm4/OiAoXG4gICAgICAgIGJ1aWxkZXI6IFRhYmxldmlld0lucHV0QnVpbGRlcjxcbiAgICAgICAgICAgIE1vZGVsLFxuICAgICAgICAgICAgU2VydmljZSxcbiAgICAgICAgICAgIFRhYmxldmlld0Rlc2NyaXB0b3JJbnN0PE1vZGVsLCBTb3J0cywgRmlsdGVycywgdW5kZWZpbmVkLCBNb2RlbCwgTW9kZWwsIE1vZGVsLCBNb2RlbD4sXG4gICAgICAgICAgICBUYWJsZXZpZXdEYXRhUHJvdmlkZXJJbnN0PE1vZGVsLCBTZXJ2aWNlLCBTb3J0cywgRmlsdGVycz4sXG4gICAgICAgICAgICBTb3J0cyxcbiAgICAgICAgICAgIEZpbHRlcnMsXG4gICAgICAgICAgICBNb2RlbCxcbiAgICAgICAgICAgIE1vZGVsLFxuICAgICAgICAgICAgTW9kZWwsXG4gICAgICAgICAgICBNb2RlbFxuICAgICAgICA+XG4gICAgKSA9PiB2b2lkXG4pIHtcbiAgICBjb25zdCBidWlsZGVyID0gbmV3IFRhYmxldmlld0lucHV0QnVpbGRlcjxcbiAgICAgICAgTW9kZWwsXG4gICAgICAgIFNlcnZpY2UsXG4gICAgICAgIFRhYmxldmlld0Rlc2NyaXB0b3JJbnN0PE1vZGVsLCBTb3J0cywgRmlsdGVycywgdW5kZWZpbmVkLCBNb2RlbCwgTW9kZWwsIE1vZGVsLCBNb2RlbD4sXG4gICAgICAgIFRhYmxldmlld0RhdGFQcm92aWRlckluc3Q8TW9kZWwsIFNlcnZpY2UsIFNvcnRzLCBGaWx0ZXJzPixcbiAgICAgICAgU29ydHMsXG4gICAgICAgIEZpbHRlcnMsXG4gICAgICAgIE1vZGVsLFxuICAgICAgICBNb2RlbCxcbiAgICAgICAgTW9kZWwsXG4gICAgICAgIE1vZGVsXG4gICAgPihcbiAgICAgICAgbmV3IFRhYmxldmlld0Rlc2NyaXB0b3JJbnN0PE1vZGVsLCBTb3J0cywgRmlsdGVycywgdW5kZWZpbmVkLCBNb2RlbCwgTW9kZWwsIE1vZGVsLCBNb2RlbD4obW9kZWwpLFxuICAgICAgICBuZXcgVGFibGV2aWV3RGF0YVByb3ZpZGVySW5zdDxNb2RlbCwgU2VydmljZSwgU29ydHMsIEZpbHRlcnM+KHNlcnZpY2UpLFxuICAgICAgICBpbmplY3QoSW5qZWN0b3IpXG4gICAgKTtcbiAgICBidWlsZEZuPy4oYnVpbGRlcik7XG4gICAgcmV0dXJuIGJ1aWxkZXIuYnVpbGQoKTtcbn1cblxuLyoqXG4gKiBDcmVhdGVzIGEgdGFibGV2aWV3IHdpdGggYSBtdWxpdC1tb2RlbCAoc2VwYXJhdGUgZm9yIGFkZCwgZWRpdCBhbmQgZGV0YWlscyksIHNlcnZpY2UgYW5kIHNvcnRzL2ZpbHRlcnMgZnJvbSBBUEkgc2VydmljZSdzIHByb3ZpZGVkIGdldEFsbCBmdW5jdGlvbi5cbiAqXG4gKiBAcGFyYW0ge01vZGVsRGVzY3JpcHRvcjxNb2RlbD59IG1vZGVsIC0gVGhlIG1vZGVsIGRlc2NyaXB0b3IuXG4gKiBAcGFyYW0ge1NlcnZpY2VDbGFzc1R5cGU8U2VydmljZT59IHNlcnZpY2UgLSBUaGUgY2xhc3MgdHlwZSBvZiB0aGUgc2VydmljZS5cbiAqIEBwYXJhbSB7VGFibGV2aWV3V2l0aEdldEFsbFBhcmFtc09wdHN9IG9wdHMgLSBPcHRpb25zIHByb3ZpZGluZyBnZXQgYWxsIHJlcXVlc3QgcGFyYW1ldGVycyBhbmQgbW9kZWxzIGZvciB0YWJsZSwgYWRkIGFuZCBlZGl0LlxuICogQHBhcmFtIHsoYnVpbGRlcjogVGFibGV2aWV3QnVpbGRlcikgPT4gdm9pZH0gW2J1aWxkRm5dIC0gVGhlIG9wdGlvbmFsIGNhbGxiYWNrIGZ1bmN0aW9uIHRvIGN1c3RvbWl6ZSB0aGUgdGFibGV2aWV3IHVzaW5nIHRoZSBwcmVwYXJlZCBidWlsZGVyLlxuICpcbiAqIEByZXR1cm5zIEEgdGFibGV2aWV3IGluc3RhbmNlIHdpdGggZGVzY3JpcHRvciwgZGF0YSBwcm92aWRlciBhbmQgYWN0aW9ucy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRhYmxldmlld011bHRpTW9kZWxXaXRoR2V0QWxsUGFyYW1zPFxuICAgIE1vZGVsLFxuICAgIFNlcnZpY2UsXG4gICAgUmVxdWVzdFBhcmFtIGV4dGVuZHMgR2V0QWxsUGFyYW1zRGVmYXVsdFdvRmlsdGVyc1R5cGUsXG4gICAgU29ydHMgPSBFeHRyYWN0R2V0QWxsUGFyYW1zU29ydFR5cGU8UmVxdWVzdFBhcmFtPixcbiAgICBGaWx0ZXJzIGV4dGVuZHMga2V5b2YgYW55ID0gRXh0cmFjdEdldEFsbFBhcmFtc0ZpbHRlclR5cGU8UmVxdWVzdFBhcmFtPixcbiAgICBUYWJsZU1vZGVsID0gTW9kZWwsXG4gICAgQWRkTW9kZWwgPSBNb2RlbCxcbiAgICBFZGl0TW9kZWwgPSBNb2RlbCxcbiAgICBGaWVsZHNNb2RlbCA9IFRhYmxldmlld0Rlc2NyaXB0b3JGaWVsZHNNYW5hZ2VNdWx0aVR5cGU8TW9kZWwsIEFkZE1vZGVsLCBFZGl0TW9kZWw+XG4+KFxuICAgIG1vZGVsOiBNb2RlbERlc2NyaXB0b3I8TW9kZWw+LFxuICAgIHNlcnZpY2U6IFNlcnZpY2VDbGFzc1R5cGU8U2VydmljZT4sXG4gICAgb3B0czogUmVxdWlyZWQ8VGFibGV2aWV3V2l0aEdldEFsbFBhcmFtc09wdHM8UmVxdWVzdFBhcmFtLCBUYWJsZU1vZGVsLCBBZGRNb2RlbCwgRWRpdE1vZGVsPj4sXG4gICAgYnVpbGRGbj86IChcbiAgICAgICAgYnVpbGRlcjogVGFibGV2aWV3SW5wdXRCdWlsZGVyPFxuICAgICAgICAgICAgTW9kZWwsXG4gICAgICAgICAgICBTZXJ2aWNlLFxuICAgICAgICAgICAgVGFibGV2aWV3RGVzY3JpcHRvckluc3Q8TW9kZWwsIFNvcnRzLCBGaWx0ZXJzLCB1bmRlZmluZWQsIFRhYmxlTW9kZWwsIEFkZE1vZGVsLCBFZGl0TW9kZWwsIEZpZWxkc01vZGVsPixcbiAgICAgICAgICAgIFRhYmxldmlld0RhdGFQcm92aWRlckluc3Q8TW9kZWwsIFNlcnZpY2UsIFNvcnRzLCBGaWx0ZXJzLCBTZXJ2aWNlQ2xhc3NUeXBlPFNlcnZpY2U+LCBUYWJsZU1vZGVsLCBBZGRNb2RlbCwgRWRpdE1vZGVsPixcbiAgICAgICAgICAgIFNvcnRzLFxuICAgICAgICAgICAgRmlsdGVycyxcbiAgICAgICAgICAgIFRhYmxlTW9kZWwsXG4gICAgICAgICAgICBBZGRNb2RlbCxcbiAgICAgICAgICAgIEVkaXRNb2RlbCxcbiAgICAgICAgICAgIEZpZWxkc01vZGVsXG4gICAgICAgID5cbiAgICApID0+IHZvaWRcbikge1xuICAgIGNvbnN0IGJ1aWxkZXIgPSBuZXcgVGFibGV2aWV3SW5wdXRCdWlsZGVyPFxuICAgICAgICBNb2RlbCxcbiAgICAgICAgU2VydmljZSxcbiAgICAgICAgVGFibGV2aWV3RGVzY3JpcHRvckluc3Q8TW9kZWwsIFNvcnRzLCBGaWx0ZXJzLCB1bmRlZmluZWQsIFRhYmxlTW9kZWwsIEFkZE1vZGVsLCBFZGl0TW9kZWwsIEZpZWxkc01vZGVsPixcbiAgICAgICAgVGFibGV2aWV3RGF0YVByb3ZpZGVySW5zdDxNb2RlbCwgU2VydmljZSwgU29ydHMsIEZpbHRlcnMsIFNlcnZpY2VDbGFzc1R5cGU8U2VydmljZT4sIFRhYmxlTW9kZWwsIEFkZE1vZGVsLCBFZGl0TW9kZWw+LFxuICAgICAgICBTb3J0cyxcbiAgICAgICAgRmlsdGVycyxcbiAgICAgICAgVGFibGVNb2RlbCxcbiAgICAgICAgQWRkTW9kZWwsXG4gICAgICAgIEVkaXRNb2RlbCxcbiAgICAgICAgRmllbGRzTW9kZWxcbiAgICA+KFxuICAgICAgICBuZXcgVGFibGV2aWV3RGVzY3JpcHRvckluc3Q8TW9kZWwsIFNvcnRzLCBGaWx0ZXJzLCB1bmRlZmluZWQsIFRhYmxlTW9kZWwsIEFkZE1vZGVsLCBFZGl0TW9kZWwsIEZpZWxkc01vZGVsPihtb2RlbCwgb3B0cyksXG4gICAgICAgIG5ldyBUYWJsZXZpZXdEYXRhUHJvdmlkZXJJbnN0PE1vZGVsLCBTZXJ2aWNlLCBTb3J0cywgRmlsdGVycywgU2VydmljZUNsYXNzVHlwZTxTZXJ2aWNlPiwgVGFibGVNb2RlbCwgQWRkTW9kZWwsIEVkaXRNb2RlbD4oc2VydmljZSksXG4gICAgICAgIGluamVjdChJbmplY3RvcilcbiAgICApO1xuICAgIGJ1aWxkRm4/LihidWlsZGVyKTtcbiAgICByZXR1cm4gYnVpbGRlci5idWlsZCgpO1xufVxuXG4vKipcbiAqIENyZWF0ZXMgYSB0YWJsZXZpZXcgd2l0aCBhIGdpdmVuIG1vZGVsLCBzZXJ2aWNlIGFuZCBzb3J0cy9maWx0ZXJzIGZyb20gQVBJIHNlcnZpY2UncyBwcm92aWRlZCBnZXRBbGwgZnVuY3Rpb24uXG4gKlxuICogQHBhcmFtIHtNb2RlbERlc2NyaXB0b3I8TW9kZWw+fSBtb2RlbCAtIFRoZSBtb2RlbCBkZXNjcmlwdG9yLlxuICogQHBhcmFtIHtTZXJ2aWNlQ2xhc3NUeXBlPFNlcnZpY2U+fSBzZXJ2aWNlIC0gVGhlIGNsYXNzIHR5cGUgb2YgdGhlIHNlcnZpY2UuXG4gKiBAcGFyYW0ge0dldEFsbEZufSBnZXRBbGxGbiAtIFRoZSBmdW5jdGlvbiBmcm9tIHNlcnZpY2UgZm9yIGV4ZWN1dGluZyBnZXRBbGwgcmVxdWVzdHMuIEZpbHRlcnMgYW5kIHNvcnRzIHdpbGwgYmUgdGFrZW4gZnJvbSBoZXJlLlxuICogQHBhcmFtIHsoYnVpbGRlcjogVGFibGV2aWV3QnVpbGRlcikgPT4gdm9pZH0gW2J1aWxkRm5dIC0gVGhlIG9wdGlvbmFsIGNhbGxiYWNrIGZ1bmN0aW9uIHRvIGN1c3RvbWl6ZSB0aGUgdGFibGV2aWV3IHVzaW5nIHRoZSBwcmVwYXJlZCBidWlsZGVyLlxuICpcbiAqIEByZXR1cm5zIEEgdGFibGV2aWV3IGluc3RhbmNlIHdpdGggZGVzY3JpcHRvciwgZGF0YSBwcm92aWRlciBhbmQgYWN0aW9ucy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRhYmxldmlld1dpdGhBcGlTZXJ2aWNlR2V0QWxsPFxuICAgIE1vZGVsLFxuICAgIFNlcnZpY2UsXG4gICAgR2V0QWxsRm4gZXh0ZW5kcyBDbGFzc0Z1bmN0aW9uS2V5c1dpdGhBbnlBcmdzQW5kUmV0dXJuVHlwZTxTZXJ2aWNlLCBPYnNlcnZhYmxlPEdldEFsbEh0dHBSZXNwb25zZVR5cGU8VGFibGVNb2RlbD4+PixcbiAgICBUYWJsZU1vZGVsID0gRXh0cmFjdFNlcnZpY2VHZXRBbGxEYXRhVHlwZTxTZXJ2aWNlLCBHZXRBbGxGbj4sXG4gICAgUmVxdWVzdFBhcmFtcyBleHRlbmRzIEdldEFsbFBhcmFtc0RlZmF1bHRXb0ZpbHRlcnNUeXBlID0gQXBpU2VydmljZUdldEFsbEZpbHRlclR5cGU8U2VydmljZSwgVGFibGVNb2RlbCwgR2V0QWxsRm4+LFxuICAgIFNvcnRzID0gRXh0cmFjdEdldEFsbFBhcmFtc1NvcnRUeXBlPFJlcXVlc3RQYXJhbXM+LFxuICAgIEZpbHRlcnMgZXh0ZW5kcyBrZXlvZiBhbnkgPSBFeHRyYWN0R2V0QWxsUGFyYW1zRmlsdGVyVHlwZTxSZXF1ZXN0UGFyYW1zPlxuPihcbiAgICBtb2RlbDogTW9kZWxEZXNjcmlwdG9yPE1vZGVsPixcbiAgICBzZXJ2aWNlOiBTZXJ2aWNlQ2xhc3NUeXBlPFNlcnZpY2U+LFxuICAgIGdldEFsbEZuOiBHZXRBbGxGbixcbiAgICBidWlsZEZuPzogKFxuICAgICAgICBidWlsZGVyOiBUYWJsZXZpZXdJbnB1dEJ1aWxkZXI8XG4gICAgICAgICAgICBNb2RlbCxcbiAgICAgICAgICAgIFNlcnZpY2UsXG4gICAgICAgICAgICBUYWJsZXZpZXdEZXNjcmlwdG9ySW5zdDxNb2RlbCwgU29ydHMsIEZpbHRlcnMsIHVuZGVmaW5lZCwgVGFibGVNb2RlbCwgTW9kZWwsIE1vZGVsLCBNb2RlbD4sXG4gICAgICAgICAgICBUYWJsZXZpZXdEYXRhUHJvdmlkZXJJbnN0PE1vZGVsLCBTZXJ2aWNlLCBTb3J0cywgRmlsdGVycywgU2VydmljZUNsYXNzVHlwZTxTZXJ2aWNlPiwgVGFibGVNb2RlbD4sXG4gICAgICAgICAgICBTb3J0cyxcbiAgICAgICAgICAgIEZpbHRlcnMsXG4gICAgICAgICAgICBUYWJsZU1vZGVsLFxuICAgICAgICAgICAgTW9kZWwsXG4gICAgICAgICAgICBNb2RlbCxcbiAgICAgICAgICAgIE1vZGVsXG4gICAgICAgID5cbiAgICApID0+IHZvaWRcbikge1xuICAgIGNvbnN0IGJ1aWxkZXIgPSBuZXcgVGFibGV2aWV3SW5wdXRCdWlsZGVyPFxuICAgICAgICBNb2RlbCxcbiAgICAgICAgU2VydmljZSxcbiAgICAgICAgVGFibGV2aWV3RGVzY3JpcHRvckluc3Q8TW9kZWwsIFNvcnRzLCBGaWx0ZXJzLCB1bmRlZmluZWQsIFRhYmxlTW9kZWwsIE1vZGVsLCBNb2RlbCwgTW9kZWw+LFxuICAgICAgICBUYWJsZXZpZXdEYXRhUHJvdmlkZXJJbnN0PE1vZGVsLCBTZXJ2aWNlLCBTb3J0cywgRmlsdGVycywgU2VydmljZUNsYXNzVHlwZTxTZXJ2aWNlPiwgVGFibGVNb2RlbD4sXG4gICAgICAgIFNvcnRzLFxuICAgICAgICBGaWx0ZXJzLFxuICAgICAgICBUYWJsZU1vZGVsLFxuICAgICAgICBNb2RlbCxcbiAgICAgICAgTW9kZWwsXG4gICAgICAgIE1vZGVsXG4gICAgPihcbiAgICAgICAgbmV3IFRhYmxldmlld0Rlc2NyaXB0b3JJbnN0PE1vZGVsLCBTb3J0cywgRmlsdGVycywgdW5kZWZpbmVkLCBUYWJsZU1vZGVsLCBNb2RlbCwgTW9kZWwsIE1vZGVsPihtb2RlbCksXG4gICAgICAgIG5ldyBUYWJsZXZpZXdEYXRhUHJvdmlkZXJJbnN0PE1vZGVsLCBTZXJ2aWNlLCBTb3J0cywgRmlsdGVycywgU2VydmljZUNsYXNzVHlwZTxTZXJ2aWNlPiwgVGFibGVNb2RlbD4oc2VydmljZSksXG4gICAgICAgIGluamVjdChJbmplY3RvcilcbiAgICApO1xuICAgIGJ1aWxkZXIud2l0aEFkanVzdERhdGFQcm92aWRlcihkYXRhUHJvdmlkZXIgPT4gZGF0YVByb3ZpZGVyLndpdGhHZXRBbGwoKHBhcmFtcywgc2VydmljZSkgPT4gYXBpU2VydmljZUdldEFsbChzZXJ2aWNlLCBnZXRBbGxGbiBhcyBhbnksIHBhcmFtcykpKTtcbiAgICBidWlsZEZuPy4oYnVpbGRlcik7XG4gICAgcmV0dXJuIGJ1aWxkZXIuYnVpbGQoKTtcbn1cblxuLyoqXG4gKiBDcmVhdGVzIGEgdGFibGV2aWV3IHdpdGggYSBnaXZlbiBtb2RlbCwgc2VydmljZSBhbmQgc29ydHMvZmlsdGVycyBmcm9tIEFQSSBzZXJ2aWNlJ3MgcHJvdmlkZWQgZ2V0QWxsIGZ1bmN0aW9uLlxuICpcbiAqIEBwYXJhbSB7TW9kZWxEZXNjcmlwdG9yPE1vZGVsPn0gbW9kZWwgLSBUaGUgbW9kZWwgZGVzY3JpcHRvci5cbiAqIEBwYXJhbSB7U2VydmljZUNsYXNzVHlwZTxTZXJ2aWNlPn0gc2VydmljZSAtIFRoZSBjbGFzcyB0eXBlIG9mIHRoZSBzZXJ2aWNlLlxuICogQHBhcmFtIHtHZXRBbGxGbn0gc2VydmljZUdldEFsbEZuIC0gVGhlIGZ1bmN0aW9uIGZyb20gc2VydmljZSBmb3IgZXhlY3V0aW5nIGdldEFsbCByZXF1ZXN0cy4gRmlsdGVycyBhbmQgc29ydHMgd2lsbCBiZSB0YWtlbiBmcm9tIGhlcmUuXG4gKiBAcGFyYW0ge1JlcXVpcmVkPFRhYmxldmlld0Rlc2NyaXB0b3JJbnN0Q29uc3RydWN0b3JPcHRzPFRhYmxlTW9kZWwsIEFkZE1vZGVsLCBFZGl0TW9kZWw+Pn0gLSBSZXF1aXJlZCBvcHRpb25zOiBhbGwgcmVtYWluaW5nIG1vZGVscyBmb3IgbXVsdGktdGFibGV2aWV3IG11c3QgYmUgZGVmaW5lZCBoZXJlLlxuICogQHBhcmFtIHsoYnVpbGRlcjogVGFibGV2aWV3QnVpbGRlcikgPT4gdm9pZH0gW2J1aWxkRm5dIC0gVGhlIG9wdGlvbmFsIGNhbGxiYWNrIGZ1bmN0aW9uIHRvIGN1c3RvbWl6ZSB0aGUgdGFibGV2aWV3IHVzaW5nIHRoZSBwcmVwYXJlZCBidWlsZGVyLlxuICpcbiAqIEByZXR1cm5zIEEgdGFibGV2aWV3IGluc3RhbmNlIHdpdGggZGVzY3JpcHRvciwgZGF0YSBwcm92aWRlciBhbmQgYWN0aW9ucy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRhYmxldmlld011bHRpTW9kZWxXaXRoQXBpU2VydmljZUdldEFsbDxcbiAgICBNb2RlbCxcbiAgICBTZXJ2aWNlLFxuICAgIFNlcnZpY2VHZXRBbGxGbiBleHRlbmRzIENsYXNzRnVuY3Rpb25LZXlzV2l0aEFueUFyZ3NBbmRSZXR1cm5UeXBlPFNlcnZpY2UsIE9ic2VydmFibGU8R2V0QWxsSHR0cFJlc3BvbnNlVHlwZTxUYWJsZU1vZGVsPj4+LFxuICAgIFRhYmxlTW9kZWwsXG4gICAgQWRkTW9kZWwsXG4gICAgRWRpdE1vZGVsLFxuICAgIFNlcnZpY2VHZXRBbGxSZXF1ZXN0UGFyYW1zIGV4dGVuZHMgR2V0QWxsUGFyYW1zRGVmYXVsdFdvRmlsdGVyc1R5cGUgPSBBcGlTZXJ2aWNlR2V0QWxsRmlsdGVyVHlwZTxTZXJ2aWNlLCBUYWJsZU1vZGVsLCBTZXJ2aWNlR2V0QWxsRm4+LFxuICAgIFNvcnRzID0gRXh0cmFjdEdldEFsbFBhcmFtc1NvcnRUeXBlPFNlcnZpY2VHZXRBbGxSZXF1ZXN0UGFyYW1zPixcbiAgICBGaWx0ZXJzIGV4dGVuZHMga2V5b2YgYW55ID0gRXh0cmFjdEdldEFsbFBhcmFtc0ZpbHRlclR5cGU8U2VydmljZUdldEFsbFJlcXVlc3RQYXJhbXM+LFxuICAgIEZpZWxkc01vZGVsID0gVGFibGV2aWV3RGVzY3JpcHRvckZpZWxkc01hbmFnZU11bHRpVHlwZTxNb2RlbCwgQWRkTW9kZWwsIEVkaXRNb2RlbD5cbj4oXG4gICAgbW9kZWw6IE1vZGVsRGVzY3JpcHRvcjxNb2RlbD4sXG4gICAgc2VydmljZTogU2VydmljZUNsYXNzVHlwZTxTZXJ2aWNlPixcbiAgICBzZXJ2aWNlR2V0QWxsRm46IFNlcnZpY2VHZXRBbGxGbixcbiAgICBvcHRzOiBSZXF1aXJlZDxUYWJsZXZpZXdEZXNjcmlwdG9ySW5zdENvbnN0cnVjdG9yT3B0czxUYWJsZU1vZGVsLCBBZGRNb2RlbCwgRWRpdE1vZGVsPj4sXG4gICAgYnVpbGRGbj86IChcbiAgICAgICAgYnVpbGRlcjogVGFibGV2aWV3SW5wdXRCdWlsZGVyPFxuICAgICAgICAgICAgTW9kZWwsXG4gICAgICAgICAgICBTZXJ2aWNlLFxuICAgICAgICAgICAgVGFibGV2aWV3RGVzY3JpcHRvckluc3Q8TW9kZWwsIFNvcnRzLCBGaWx0ZXJzLCB1bmRlZmluZWQsIFRhYmxlTW9kZWwsIEFkZE1vZGVsLCBFZGl0TW9kZWwsIEZpZWxkc01vZGVsPixcbiAgICAgICAgICAgIFRhYmxldmlld0RhdGFQcm92aWRlckluc3Q8TW9kZWwsIFNlcnZpY2UsIFNvcnRzLCBGaWx0ZXJzLCBTZXJ2aWNlQ2xhc3NUeXBlPFNlcnZpY2U+LCBUYWJsZU1vZGVsLCBBZGRNb2RlbCwgRWRpdE1vZGVsPixcbiAgICAgICAgICAgIFNvcnRzLFxuICAgICAgICAgICAgRmlsdGVycyxcbiAgICAgICAgICAgIFRhYmxlTW9kZWwsXG4gICAgICAgICAgICBBZGRNb2RlbCxcbiAgICAgICAgICAgIEVkaXRNb2RlbCxcbiAgICAgICAgICAgIEZpZWxkc01vZGVsXG4gICAgICAgID5cbiAgICApID0+IHZvaWRcbikge1xuICAgIGNvbnN0IGJ1aWxkZXIgPSBuZXcgVGFibGV2aWV3SW5wdXRCdWlsZGVyPFxuICAgICAgICBNb2RlbCxcbiAgICAgICAgU2VydmljZSxcbiAgICAgICAgVGFibGV2aWV3RGVzY3JpcHRvckluc3Q8TW9kZWwsIFNvcnRzLCBGaWx0ZXJzLCB1bmRlZmluZWQsIFRhYmxlTW9kZWwsIEFkZE1vZGVsLCBFZGl0TW9kZWwsIEZpZWxkc01vZGVsPixcbiAgICAgICAgVGFibGV2aWV3RGF0YVByb3ZpZGVySW5zdDxNb2RlbCwgU2VydmljZSwgU29ydHMsIEZpbHRlcnMsIFNlcnZpY2VDbGFzc1R5cGU8U2VydmljZT4sIFRhYmxlTW9kZWwsIEFkZE1vZGVsLCBFZGl0TW9kZWw+LFxuICAgICAgICBTb3J0cyxcbiAgICAgICAgRmlsdGVycyxcbiAgICAgICAgVGFibGVNb2RlbCxcbiAgICAgICAgQWRkTW9kZWwsXG4gICAgICAgIEVkaXRNb2RlbCxcbiAgICAgICAgRmllbGRzTW9kZWxcbiAgICA+KFxuICAgICAgICBuZXcgVGFibGV2aWV3RGVzY3JpcHRvckluc3Q8TW9kZWwsIFNvcnRzLCBGaWx0ZXJzLCB1bmRlZmluZWQsIFRhYmxlTW9kZWwsIEFkZE1vZGVsLCBFZGl0TW9kZWwsIEZpZWxkc01vZGVsPihtb2RlbCwgb3B0cyksXG4gICAgICAgIG5ldyBUYWJsZXZpZXdEYXRhUHJvdmlkZXJJbnN0PE1vZGVsLCBTZXJ2aWNlLCBTb3J0cywgRmlsdGVycywgU2VydmljZUNsYXNzVHlwZTxTZXJ2aWNlPiwgVGFibGVNb2RlbCwgQWRkTW9kZWwsIEVkaXRNb2RlbD4oc2VydmljZSksXG4gICAgICAgIGluamVjdChJbmplY3RvcilcbiAgICApO1xuICAgIGJ1aWxkZXIud2l0aEFkanVzdERhdGFQcm92aWRlcihkYXRhUHJvdmlkZXIgPT4gZGF0YVByb3ZpZGVyLndpdGhHZXRBbGwoKHBhcmFtcywgc2VydmljZSkgPT4gYXBpU2VydmljZUdldEFsbChzZXJ2aWNlLCBzZXJ2aWNlR2V0QWxsRm4gYXMgYW55LCBwYXJhbXMpKSk7XG4gICAgYnVpbGRGbj8uKGJ1aWxkZXIpO1xuICAgIHJldHVybiBidWlsZGVyLmJ1aWxkKCk7XG59XG4iXX0=
|
|
@@ -1,8 +1,10 @@
|
|
|
1
|
-
export * from './tableview-get-all-params-create';
|
|
2
1
|
// schema
|
|
3
2
|
export * from './schema/columns-from-schema';
|
|
4
3
|
export * from './schema/enum-from-schema';
|
|
5
4
|
export * from './schema/fields-from-schema';
|
|
5
|
+
// helpers
|
|
6
|
+
export * from './helpers/lookup-get-all-create';
|
|
7
|
+
export * from './helpers/tableview-get-all-params-create';
|
|
6
8
|
// filter
|
|
7
9
|
export * from './filter/generic-filters';
|
|
8
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
10
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi90YWJsZXZpZXcvc3JjL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLFNBQVM7QUFDVCxjQUFjLDhCQUE4QixDQUFDO0FBQzdDLGNBQWMsMkJBQTJCLENBQUM7QUFDMUMsY0FBYyw2QkFBNkIsQ0FBQztBQUU1QyxVQUFVO0FBQ1YsY0FBYyxpQ0FBaUMsQ0FBQztBQUNoRCxjQUFjLDJDQUEyQyxDQUFDO0FBRTFELFNBQVM7QUFDVCxjQUFjLDBCQUEwQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gc2NoZW1hXG5leHBvcnQgKiBmcm9tICcuL3NjaGVtYS9jb2x1bW5zLWZyb20tc2NoZW1hJztcbmV4cG9ydCAqIGZyb20gJy4vc2NoZW1hL2VudW0tZnJvbS1zY2hlbWEnO1xuZXhwb3J0ICogZnJvbSAnLi9zY2hlbWEvZmllbGRzLWZyb20tc2NoZW1hJztcblxuLy8gaGVscGVyc1xuZXhwb3J0ICogZnJvbSAnLi9oZWxwZXJzL2xvb2t1cC1nZXQtYWxsLWNyZWF0ZSc7XG5leHBvcnQgKiBmcm9tICcuL2hlbHBlcnMvdGFibGV2aWV3LWdldC1hbGwtcGFyYW1zLWNyZWF0ZSc7XG5cbi8vIGZpbHRlclxuZXhwb3J0ICogZnJvbSAnLi9maWx0ZXIvZ2VuZXJpYy1maWx0ZXJzJztcbiJdfQ==
|
|
@@ -176,4 +176,4 @@ export function addColumnFromSchema(descriptor, property, propertySchema, opts)
|
|
|
176
176
|
column.withGetter(opts?.getter);
|
|
177
177
|
return column;
|
|
178
178
|
}
|
|
179
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sdW1ucy1mcm9tLXNjaGVtYS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3RhYmxldmlldy9zcmMvc2NoZW1hL2NvbHVtbnMtZnJvbS1zY2hlbWEudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBTUEsT0FBTyxFQUFDLG1CQUFtQixFQUFDLE1BQU0sb0JBQW9CLENBQUM7QUFDdkQsT0FBTyxFQUFDLGtDQUFrQyxFQUFDLE1BQU0sK0JBQStCLENBQUM7QUE2QmpGLE1BQU0sYUFBYSxHQUFzQixLQUFLLENBQUMsRUFBRTtJQUM3QyxJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsRUFBRSxDQUFDO1FBQzVCLE1BQU0sUUFBUSxHQUFHLEtBQWUsQ0FBQztRQUNqQyxPQUFPLENBQ0gsUUFBUSxDQUFDLE9BQXVCLENBQUM7WUFDakMsUUFBUSxDQUFDLE1BQXNCLENBQUM7WUFDaEMsUUFBUSxDQUFDLE9BQXVCLENBQUM7WUFDakMsUUFBUSxDQUFDLE1BQXNCLENBQUM7WUFDaEMsUUFBUSxDQUFDLE9BQXVCLENBQUM7WUFDakMsUUFBUSxDQUFDLElBQW9CLENBQUM7WUFDOUIsUUFBUSxDQUFDLE1BQXNCLENBQUM7WUFDaEMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFpQixDQUFDLENBQ3JELENBQUM7SUFDTixDQUFDO1NBQU0sQ0FBQztRQUNKLE9BQU8sS0FBSyxDQUFDO0lBQ2pCLENBQUM7QUFDTCxDQUFDLENBQUM7QUFFRjs7OztHQUlHO0FBQ0gsTUFBTSxPQUFPLG9CQUFvQjtJQUM3QixZQUNxQixVQUFnRyxFQUNoRyxNQUE2QixFQUN0QyxJQUEwQztRQUZqQyxlQUFVLEdBQVYsVUFBVSxDQUFzRjtRQUNoRyxXQUFNLEdBQU4sTUFBTSxDQUF1QjtRQUN0QyxTQUFJLEdBQUosSUFBSSxDQUFzQztJQUNuRCxDQUFDO0lBRUksZ0JBQWdCLENBQUMsUUFBYSxFQUFFLElBQWdDO1FB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UHJvcGVydHl9IGZyb20gJ0BtZWRpdXNpbmMvbW5nLWNvbW1vbnMtZGF0YS1hcGknO1xuaW1wb3J0IHtHZXR0ZXJGbn0gZnJvbSAnQG1lZGl1c2luYy9tbmctY29tbW9ucy9jb3JlJztcbmltcG9ydCB7RW51bURlc2NyaXB0b3J9IGZyb20gJ0BtZWRpdXNpbmMvbW5nLWNvbW1vbnMvbW9kZWwnO1xuaW1wb3J0IHtDb2x1bW5EZXNjcmlwdG9yLCBUYWJsZURlc2NyaXB0b3JJbnN0fSBmcm9tICdAbWVkaXVzaW5jL21uZy1jb21tb25zL3RhYmxlL2FwaSc7XG5pbXBvcnQge1RhYmxldmlld0Rlc2NyaXB0b3JJbnN0fSBmcm9tICdAbWVkaXVzaW5jL21uZy1jb21tb25zL3RhYmxldmlldy9hcGknO1xuXG5pbXBvcnQge2VudW1Nb2RlbEZyb21TY2hlbWF9IGZyb20gJy4vZW51bS1mcm9tLXNjaGVtYSc7XG5pbXBvcnQge2Zyb21TY2hlbWFGaWx0ZXJOb25BcnJheVByb3BlcnRpZXN9IGZyb20gJy4vaW50ZXJuYWwvY29tbW9uLWZyb20tc2NoZW1hJztcblxudHlwZSBDb2x1bW5UeXBlID0gJ251bWJlcicgfCAnY3VycmVuY3knIHwgJ2Jvb2xlYW4nIHwgJ3N0cmluZycgfCAndGV4dCcgfCAndGV4dGFyZWEnIHwgJ2RhdGUnIHwgJ2RhdGUtdGltZScgfCAnZW51bScgfCAnb2JqZWN0JztcblxudHlwZSBDb2x1bW5Gcm9tU2NoZW1hQ29tbW9uT3B0c1R5cGU8TW9kZWw+ID0ge1xuICAgIGN1cnJlbmN5UHJvcGVydHk/OiBrZXlvZiBNb2RlbDtcbiAgICBjdXJyZW5jeT86IHN0cmluZztcbiAgICBjdXJyZW5jeURpc3BsYXk/OiAnc3ltYm9sJyB8ICdjb2RlJyB8ICduYW1lJztcbiAgICBkYXRlRm9ybWF0Pzogc3RyaW5nO1xuICAgIGRhdGVUaW1lRm9ybWF0Pzogc3RyaW5nO1xuICAgIG51bWJlck1pbkludGVnZXJEaWdpdHM/OiBudW1iZXI7XG4gICAgbnVtYmVyTWluRnJhY3Rpb25EaWdpdHM/OiBudW1iZXI7XG4gICAgbnVtYmVyTWF4RnJhY3Rpb25EaWdpdHM/OiBudW1iZXI7XG59O1xuXG50eXBlIENvbHVtbnNGcm9tU2NoZW1hT3B0c1R5cGU8TW9kZWwgPSBhbnk+ID0gQ29sdW1uRnJvbVNjaGVtYUNvbW1vbk9wdHNUeXBlPE1vZGVsPiAmIHtcbiAgICBjb2x1bW5UeXBlcz86IFBhcnRpYWw8UmVjb3JkPGtleW9mIE1vZGVsLCBDb2x1bW5UeXBlPj47XG4gICAgZW51bU1vZGVscz86IFBhcnRpYWw8UmVjb3JkPGtleW9mIE1vZGVsLCBFbnVtRGVzY3JpcHRvcjxhbnk+Pj47XG4gICAgZW51bVNjaGVtYXM/OiBQYXJ0aWFsPFJlY29yZDxrZXlvZiBNb2RlbCwgU2NoZW1hRW51bTxhbnk+Pj47XG4gICAgZ2V0dGVycz86IHtbSyBpbiBrZXlvZiBNb2RlbF0/OiBHZXR0ZXJGbjxNb2RlbFtLXSwgTW9kZWw+fTtcbn07XG5cbnR5cGUgQ29sdW1uRnJvbVNjaGVtYU9wdHNUeXBlPENvbHVtbiA9IGFueSwgTW9kZWwgPSBhbnksIEVudW0gPSBhbnk+ID0gQ29sdW1uRnJvbVNjaGVtYUNvbW1vbk9wdHNUeXBlPE1vZGVsPiAmIHtcbiAgICBjb2x1bW5UeXBlPzogQ29sdW1uVHlwZTtcbiAgICBnZXR0ZXI/OiBHZXR0ZXJGbjxDb2x1bW4sIE1vZGVsPjtcbiAgICBlbnVtTW9kZWw/OiBFbnVtRGVzY3JpcHRvcjxFbnVtPjtcbiAgICBlbnVtU2NoZW1hPzogU2NoZW1hRW51bTxFbnVtPjtcbn07XG5cbmNvbnN0IGRlZmF1bHRHZXR0ZXI6IEdldHRlckZuPHVua25vd24+ID0gdmFsdWUgPT4ge1xuICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnKSB7XG4gICAgICAgIGNvbnN0IHZhbHVlT2JqID0gdmFsdWUgYXMgb2JqZWN0O1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgdmFsdWVPYmpbJ3RpdGxlJyBhcyBrZXlvZiBvYmplY3RdID8/XG4gICAgICAgICAgICB2YWx1ZU9ialsnbmFtZScgYXMga2V5b2Ygb2JqZWN0XSA/P1xuICAgICAgICAgICAgdmFsdWVPYmpbJ25heml2JyBhcyBrZXlvZiBvYmplY3RdID8/XG4gICAgICAgICAgICB2YWx1ZU9ialsnY29kZScgYXMga2V5b2Ygb2JqZWN0XSA/P1xuICAgICAgICAgICAgdmFsdWVPYmpbJ3NpZnJhJyBhcyBrZXlvZiBvYmplY3RdID8/XG4gICAgICAgICAgICB2YWx1ZU9ialsnaWQnIGFzIGtleW9mIG9iamVjdF0gPz9cbiAgICAgICAgICAgIHZhbHVlT2JqWyd1dWlkJyBhcyBrZXlvZiBvYmplY3RdID8/XG4gICAgICAgICAgICB2YWx1ZU9ialtPYmplY3Qua2V5cyh2YWx1ZU9iailbMF0gYXMga2V5b2Ygb2JqZWN0XVxuICAgICAgICApO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICB9XG59O1xuXG4vKipcbiAqIDxlbT5FeHBlcmltZW50YWw6PC9lbT4gQnVpbGRlciBmb3IgYWRkaW5nIGNvbHVtbnMgdG8gdGFibGUuXG4gKlxuICogQGV4cGVyaW1lbnRhbFxuICovXG5leHBvcnQgY2xhc3MgU2NoZW1hQ29sdW1uc0J1aWxkZXI8TW9kZWwsIFNjaE1vZGVsID0gTW9kZWw+IHtcbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBkZXNjcmlwdG9yOiBUYWJsZXZpZXdEZXNjcmlwdG9ySW5zdDxNb2RlbCwgYW55LCBhbnksIGFueT4gfCBUYWJsZURlc2NyaXB0b3JJbnN0PE1vZGVsLCBhbnksIGFueT4sXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgc2NoZW1hOiBTY2hlbWFNb2RlbDxTY2hNb2RlbD4sXG4gICAgICAgIHByaXZhdGUgb3B0cz86IENvbHVtbnNGcm9tU2NoZW1hT3B0c1R5cGU8U2NoTW9kZWw+XG4gICAgKSB7fVxuXG4gICAgcHJpdmF0ZSBtZXJnZUNvbHVtbnNPcHRzKHByb3BlcnR5OiBhbnksIG9wdHM/OiBDb2x1bW5zRnJvbVNjaGVtYU9wdHNUeXBlKSB7XG4gICAgICAgIHJldHVybiA8Q29sdW1uRnJvbVNjaGVtYU9wdHNUeXBlPntcbiAgICAgICAgICAgIC4uLnRoaXMub3B0cyxcbiAgICAgICAgICAgIGNvbHVtblR5cGU6IHRoaXMub3B0cz8uY29sdW1uVHlwZXM/Lltwcm9wZXJ0eSBhcyBrZXlvZiBvYmplY3RdLFxuICAgICAgICAgICAgZ2V0dGVyOiBvcHRzPy5nZXR0ZXJzPy5bcHJvcGVydHldID8/IHRoaXMub3B0cz8uZ2V0dGVycz8uW3Byb3BlcnR5IGFzIGtleW9mIG9iamVjdF0sXG4gICAgICAgICAgICBlbnVtTW9kZWw6IG9wdHM/LmVudW1Nb2RlbHM/Lltwcm9wZXJ0eV0gPz8gdGhpcy5vcHRzPy5lbnVtTW9kZWxzPy5bcHJvcGVydHkgYXMga2V5b2Ygb2JqZWN0XSxcbiAgICAgICAgICAgIGVudW1TY2hlbWE6IG9wdHM/LmVudW1TY2hlbWFzPy5bcHJvcGVydHldID8/IHRoaXMub3B0cz8uZW51bVNjaGVtYXM/Lltwcm9wZXJ0eSBhcyBrZXlvZiBvYmplY3RdLFxuICAgICAgICAgICAgLi4ub3B0c1xuICAgICAgICB9O1xuICAgIH1cblxuICAgIHByaXZhdGUgbWVyZ2VDb2x1bW5PcHRzKHByb3BlcnR5OiBhbnksIG9wdHM/OiBDb2x1bW5Gcm9tU2NoZW1hT3B0c1R5cGUpIHtcbiAgICAgICAgcmV0dXJuIDxDb2x1bW5Gcm9tU2NoZW1hT3B0c1R5cGU+e1xuICAgICAgICAgICAgLi4udGhpcy5vcHRzLFxuICAgICAgICAgICAgY29sdW1uVHlwZTogdGhpcy5vcHRzPy5jb2x1bW5UeXBlcz8uW3Byb3BlcnR5IGFzIGtleW9mIG9iamVjdF0sXG4gICAgICAgICAgICBnZXR0ZXI6IHRoaXMub3B0cz8uZ2V0dGVycz8uW3Byb3BlcnR5IGFzIGtleW9mIG9iamVjdF0sXG4gICAgICAgICAgICBlbnVtTW9kZWw6IHRoaXMub3B0cz8uZW51bU1vZGVscz8uW3Byb3BlcnR5IGFzIGtleW9mIG9iamVjdF0sXG4gICAgICAgICAgICBlbnVtU2NoZW1hOiB0aGlzLm9wdHM/LmVudW1TY2hlbWFzPy5bcHJvcGVydHkgYXMga2V5b2Ygb2JqZWN0XSxcbiAgICAgICAgICAgIC4uLm9wdHNcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiA8ZW0+RXhwZXJpbWVudGFsOjwvZW0+IEFkZHMgYSBzaW5nbGUgY29sdW1uIHZpYSB7YWRkQ29sdW1uRnJvbVNjaGVtYX0uXG4gICAgICpcbiAgICAgKiBAZXhwZXJpbWVudGFsXG4gICAgICpcbiAgICAgKiBAcGFyYW0ge1Byb3BlcnR5fSBwcm9wZXJ0eSAtIFRoZSBwcm9wZXJ0eSB0byBhZGQgdGhlIGNvbHVtbiBmb3IuXG4gICAgICogQHBhcmFtIHtDb2x1bW5Gcm9tU2NoZW1hT3B0c1R5cGU8U2NoTW9kZWxbUHJvcGVydHldLCBTY2hNb2RlbCwgYW55LCBNb2RlbD59IG9wdHMgLSBBZGRpdGlvbmFsIG9wdGlvbnMuXG4gICAgICpcbiAgICAgKiBAcmV0dXJuIHtDb2x1bW5EZXNjcmlwdG9yPE5vbk51bGxhYmxlPE1vZGVsW1Byb3BlcnR5XT4sIE1vZGVsLCBNb2RlbFtQcm9wZXJ0eV0+fSBUaGUgYWRkZWQgY29sdW1uIGRlc2NyaXB0b3IuXG4gICAgICovXG4gICAgcHVibGljIGFkZDxQcm9wZXJ0eSBleHRlbmRzIEV4dHJhY3Q8a2V5b2YgTW9kZWwsIGtleW9mIFNjaE1vZGVsPj4oXG4gICAgICAgIHByb3BlcnR5OiBQcm9wZXJ0eSxcbiAgICAgICAgb3B0cz86IENvbHVtbkZyb21TY2hlbWFPcHRzVHlwZTxTY2hNb2RlbFtQcm9wZXJ0eV0sIFNjaE1vZGVsLCBhbnk+XG4gICAgKTogQ29sdW1uRGVzY3JpcHRvcjxOb25OdWxsYWJsZTxNb2RlbFtQcm9wZXJ0eV0+LCBNb2RlbCwgTW9kZWxbUHJvcGVydHldPiB7XG4gICAgICAgIHJldHVybiBhZGRDb2x1bW5Gcm9tU2NoZW1hKFxuICAgICAgICAgICAgdGhpcy5kZXNjcmlwdG9yLFxuICAgICAgICAgICAgcHJvcGVydHksXG4gICAgICAgICAgICB0aGlzLnNjaGVtYS5wcm9wZXJ0aWVzW3Byb3BlcnR5XSxcbiAgICAgICAgICAgIHRoaXMubWVyZ2VDb2x1bW5PcHRzKHByb3BlcnR5LCBvcHRzKSBhcyBDb2x1bW5Gcm9tU2NoZW1hT3B0c1R5cGU8TW9kZWxbUHJvcGVydHldLCBNb2RlbCwgYW55PiB8IHVuZGVmaW5lZFxuICAgICAgICApIGFzIHVua25vd24gYXMgQ29sdW1uRGVzY3JpcHRvcjxOb25OdWxsYWJsZTxNb2RlbFtQcm9wZXJ0eV0+LCBNb2RlbCwgTW9kZWxbUHJvcGVydHldPjtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiA8ZW0+RXhwZXJpbWVudGFsOjwvZW0+IEFkZHMgYWxsIGNvbHVtbnMgZnJvbSB0aGUgbm9uLWFycmF5IHNjaGVtYSBwcm9wZXJ0aWVzIHZpYSB7YWRkQ29sdW1uRnJvbVNjaGVtYX0uXG4gICAgICpcbiAgICAgKiBAZXhwZXJpbWVudGFsXG4gICAgICpcbiAgICAgKiBAcGFyYW0ge0NvbHVtbnNGcm9tU2NoZW1hT3B0c1R5cGU8U2NoTW9kZWw+fSBvcHRzIC0gQWRkaXRpb25hbCBvcHRpb25zLlxuICAgICAqXG4gICAgICogQHJldHVybiB7dGhpc30gLSBUaGUgY3VycmVudCBpbnN0YW5jZSBvZiB0aGUgYnVpbGRlci5cbiAgICAgKi9cbiAgICBwdWJsaWMgd2l0aEFkZEFsbChvcHRzPzogQ29sdW1uc0Zyb21TY2hlbWFPcHRzVHlwZTxTY2hNb2RlbD4pOiB0aGlzIHtcbiAgICAgICAgdGhpcy5hZGRDb2x1bW5zKHVuZGVmaW5lZCwgb3B0cyk7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIDxlbT5FeHBlcmltZW50YWw6PC9lbT4gQWRkcyBjb2x1bW5zIGZvciBwcm9wZXJ0aWVzIHZpYSB7YWRkQ29sdW1uRnJvbVNjaGVtYX0uXG4gICAgICpcbiAgICAgKiBAZXhwZXJpbWVudGFsXG4gICAgICpcbiAgICAgKiBAcGFyYW0ge0NvbHVtbnNGcm9tU2NoZW1hT3B0c1R5cGU8U2NoTW9kZWw+fSBvcHRzIC0gQWRkaXRpb25hbCBvcHRpb25zLlxuICAgICAqIEBwYXJhbSB7Li4uUHJvcGVydHlbXX0gcHJvcGVydGllcyAtIFByb3BlcnRpZXMgdG8gYWRkIGNvbHVtbnMgZm9yLiBJZiBub24gcHJvdmlkZWQsIGFsbCBub24tYXJyYXkgcHJvcGVydGllcyBmcm9tIHNjaGVtYSB3aWxsIGJlIGFkZGVkLlxuICAgICAqXG4gICAgICogQHJldHVybiB7dGhpc30gLSBUaGUgY3VycmVudCBpbnN0YW5jZSBvZiB0aGUgYnVpbGRlci5cbiAgICAgKi9cbiAgICBwdWJsaWMgd2l0aEFkZDxQcm9wZXJ0eSBleHRlbmRzIEV4dHJhY3Q8a2V5b2YgTW9kZWwsIGtleW9mIFNjaE1vZGVsPj4ob3B0czogQ29sdW1uc0Zyb21TY2hlbWFPcHRzVHlwZTxTY2hNb2RlbD4sIC4uLnByb3BlcnRpZXM6IFByb3BlcnR5W10pOiB0aGlzO1xuICAgIC8qKlxuICAgICAqIDxlbT5FeHBlcmltZW50YWw6PC9lbT4gQWRkcyBjb2x1bW5zIGZvciBwcm9wZXJ0aWVzIHZpYSB7YWRkQ29sdW1uRnJvbVNjaGVtYX0uXG4gICAgICpcbiAgICAgKiBAZXhwZXJpbWVudGFsXG4gICAgICpcbiAgICAgKiBAcGFyYW0gey4uLlByb3BlcnR5W119IHByb3BlcnRpZXMgLSBQcm9wZXJ0aWVzIHRvIGFkZCBjb2x1bW5zIGZvci4gSWYgbm9uIHByb3ZpZGVkLCBhbGwgbm9uLWFycmF5IHByb3BlcnRpZXMgZnJvbSBzY2hlbWEgd2lsbCBiZSBhZGRlZC5cbiAgICAgKlxuICAgICAqIEByZXR1cm4ge3RoaXN9IC0gVGhlIGN1cnJlbnQgaW5zdGFuY2Ugb2YgdGhlIGJ1aWxkZXIuXG4gICAgICovXG4gICAgcHVibGljIHdpdGhBZGQ8UHJvcGVydHkgZXh0ZW5kcyBFeHRyYWN0PGtleW9mIE1vZGVsLCBrZXlvZiBTY2hNb2RlbD4+KC4uLnByb3BlcnRpZXM6IFByb3BlcnR5W10pOiB0aGlzO1xuICAgIHB1YmxpYyB3aXRoQWRkPFByb3BlcnR5IGV4dGVuZHMgRXh0cmFjdDxrZXlvZiBNb2RlbCwga2V5b2YgU2NoTW9kZWw+Pihwcm9wT3JPcHRzOiBDb2x1bW5zRnJvbVNjaGVtYU9wdHNUeXBlPFNjaE1vZGVsPiB8IFByb3BlcnR5LCAuLi5wcm9wZXJ0aWVzOiBQcm9wZXJ0eVtdKTogdGhpcyB7XG4gICAgICAgIGlmICh0eXBlb2YgcHJvcE9yT3B0cyA9PT0gJ29iamVjdCcpIHtcbiAgICAgICAgICAgIHRoaXMuYWRkQ29sdW1ucyhwcm9wZXJ0aWVzLmxlbmd0aCA9PT0gMCA/IHVuZGVmaW5lZCA6IHByb3BlcnRpZXMsIHByb3BPck9wdHMpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5hZGRDb2x1bW5zKFtwcm9wT3JPcHRzLCAuLi5wcm9wZXJ0aWVzXSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogPGVtPkV4cGVyaW1lbnRhbDo8L2VtPiBBZGRzIGEgc2luZ2xlIGNvbHVtbiB2aWEge2FkZENvbHVtbkZyb21TY2hlbWF9IHdoZXJlIHByb3BlcnR5IHNjaGVtYSBpcyBtYW51YWxseSBwcm92aWRlZC5cbiAgICAgKlxuICAgICAqIEBleHBlcmltZW50YWxcbiAgICAgKlxuICAgICAqIEBwYXJhbSB7UHJvcGVydHl9IHByb3BlcnR5IC0gVGhlIHByb3BlcnR5IHRvIGFkZCB0aGUgY29sdW1uIGZvci5cbiAgICAgKiBAcGFyYW0ge1NjaGVtYVByb3BlcnR5fSBzY2hlbWFQcm9wZXJ0eSAtIE1hbnVhbGx5IHByb3ZpZGVkIHNjaGVtYSBwcm9wZXJ0eS5cbiAgICAgKiBAcGFyYW0ge0NvbHVtbkZyb21TY2hlbWFPcHRzVHlwZX0gb3B0cyAtIEFkZGl0aW9uYWwgb3B0aW9ucy5cbiAgICAgKlxuICAgICAqIEByZXR1cm4ge0NvbHVtbkRlc2NyaXB0b3I8Tm9uTnVsbGFibGU8TW9kZWxbUHJvcGVydHldPiwgTW9kZWwsIE1vZGVsW1Byb3BlcnR5XT59IFRoZSBhZGRlZCBjb2x1bW4gZGVzY3JpcHRvci5cbiAgICAgKi9cbiAgICBwdWJsaWMgYWRkRnJvbVNjaGVtYTxQcm9wZXJ0eSBleHRlbmRzIGtleW9mIE1vZGVsPihcbiAgICAgICAgcHJvcGVydHk6IFByb3BlcnR5LFxuICAgICAgICBzY2hlbWFQcm9wZXJ0eTogU2NoZW1hUHJvcGVydHksXG4gICAgICAgIG9wdHM/OiBDb2x1bW5Gcm9tU2NoZW1hT3B0c1R5cGU8TW9kZWxbUHJvcGVydHldLCBNb2RlbD5cbiAgICApOiBDb2x1bW5EZXNjcmlwdG9yPE5vbk51bGxhYmxlPE1vZGVsW1Byb3BlcnR5XT4sIE1vZGVsLCBNb2RlbFtQcm9wZXJ0eV0+IHtcbiAgICAgICAgcmV0dXJuIGFkZENvbHVtbkZyb21TY2hlbWEoXG4gICAgICAgICAgICB0aGlzLmRlc2NyaXB0b3IsXG4gICAgICAgICAgICBwcm9wZXJ0eSxcbiAgICAgICAgICAgIHNjaGVtYVByb3BlcnR5LFxuICAgICAgICAgICAgdGhpcy5tZXJnZUNvbHVtbk9wdHMocHJvcGVydHksIG9wdHMpIGFzIENvbHVtbkZyb21TY2hlbWFPcHRzVHlwZTxNb2RlbFtQcm9wZXJ0eV0sIE1vZGVsLCBhbnk+IHwgdW5kZWZpbmVkXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBhZGRDb2x1bW5zPFByb3BlcnR5IGV4dGVuZHMgRXh0cmFjdDxrZXlvZiBNb2RlbCwga2V5b2YgU2NoTW9kZWw+Pihwcm9wZXJ0aWVzPzogUHJvcGVydHlbXSwgb3B0cz86IENvbHVtbnNGcm9tU2NoZW1hT3B0c1R5cGU8U2NoTW9kZWw+KSB7XG4gICAgICAgIGNvbnN0IGFkZFByb3BlcnRpZXMgPSBwcm9wZXJ0aWVzID8/IGZyb21TY2hlbWFGaWx0ZXJOb25BcnJheVByb3BlcnRpZXM8U2NoTW9kZWw+KHRoaXMuc2NoZW1hLnByb3BlcnRpZXMpO1xuXG4gICAgICAgIGlmIChhZGRQcm9wZXJ0aWVzKSB7XG4gICAgICAgICAgICBhZGRQcm9wZXJ0aWVzLmZvckVhY2gocHJvcGVydHkgPT4ge1xuICAgICAgICAgICAgICAgIGFkZENvbHVtbkZyb21TY2hlbWEoXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZGVzY3JpcHRvcixcbiAgICAgICAgICAgICAgICAgICAgcHJvcGVydHkgYXMgYW55LFxuICAgICAgICAgICAgICAgICAgICB0aGlzLnNjaGVtYS5wcm9wZXJ0aWVzW3Byb3BlcnR5XSxcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5tZXJnZUNvbHVtbnNPcHRzKHByb3BlcnR5IGFzIHVua25vd24gYXMga2V5b2YgTW9kZWwsIG9wdHMpIGFzIENvbHVtbkZyb21TY2hlbWFPcHRzVHlwZTxNb2RlbFtQcm9wZXJ0eV0sIE1vZGVsLCBhbnk+IHwgdW5kZWZpbmVkXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4vKipcbiAqIDxlbT5FeHBlcmltZW50YWw6PC9lbT4gQ3JlYXRlcyBidWlsZGVyIGZvciBhZGRpbmcgY29sdW1ucyB0byBkZXNjcmlwdG9yIGJhc2VkIG9uIHByb3ZpZGVkIG1vZGVsIHNjaGVtYS5cbiAqXG4gKiBAZXhwZXJpbWVudGFsXG4gKlxuICogQHBhcmFtIHtUYWJsZXZpZXdEZXNjcmlwdG9ySW5zdDxNb2RlbCwgYW55LCBhbnksIGFueT4gfCBUYWJsZURlc2NyaXB0b3JJbnN0PE1vZGVsLCBhbnksIGFueT59IGRlc2NyaXB0b3IgLSBEZXNjcmlwdG9yIHRvIGFkZCBjb2x1bW5zIHRvLlxuICogQHBhcmFtIHtTY2hlbWFNb2RlbDxTY2hNb2RlbD59IHNjaGVtYSAtIFRoZSBzY2hlbWEgd2l0aCBtZXRhZGF0YSBhYm91dCBwcm9wZXJ0aWVzIGZvciBmaWVsZHMuXG4gKiBAcGFyYW0ge0NvbHVtbnNGcm9tU2NoZW1hT3B0c1R5cGU8U2NoTW9kZWw+fSBbb3B0c10gLSBBZGRpdGlvbmFsIG9wdGlvbnMuXG4gKlxuICogQHJldHVybiB7U2NoZW1hQ29sdW1uc0J1aWxkZXI8TW9kZWwsIFNjaE1vZGVsPn0gLSBUaGUgY29sdW1uIHNjaGVtYSBidWlsZGVyIGluc3RhbmNlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gY29sdW1uc0Zyb21TY2hlbWE8TW9kZWwsIFNjaE1vZGVsID0gTW9kZWw+KFxuICAgIGRlc2NyaXB0b3I6IFRhYmxldmlld0Rlc2NyaXB0b3JJbnN0PE1vZGVsLCBhbnksIGFueSwgYW55PiB8IFRhYmxlRGVzY3JpcHRvckluc3Q8TW9kZWwsIGFueSwgYW55PixcbiAgICBzY2hlbWE6IFNjaGVtYU1vZGVsPFNjaE1vZGVsPixcbiAgICBvcHRzPzogQ29sdW1uc0Zyb21TY2hlbWFPcHRzVHlwZTxTY2hNb2RlbD5cbik6IFNjaGVtYUNvbHVtbnNCdWlsZGVyPE1vZGVsLCBTY2hNb2RlbD4ge1xuICAgIHJldHVybiBuZXcgU2NoZW1hQ29sdW1uc0J1aWxkZXI8TW9kZWwsIFNjaE1vZGVsPihkZXNjcmlwdG9yLCBzY2hlbWEsIG9wdHMpO1xufVxuXG4vKipcbiAqIDxlbT5FeHBlcmltZW50YWw6PC9lbT4gQWRkcyBhIGNvbHVtbiB0byB0YWJsZSBkZXNjcmlwdG9yIGJhc2VkIG9uIHRoZSBnaXZlbiBzY2hlbWEgcHJvcGVydHkgYW5kIG9wdGlvbnMuXG4gKlxuICogQHBhcmFtIHtUYWJsZXZpZXdEZXNjcmlwdG9ySW5zdDxNb2RlbCwgYW55LCBhbnksIGFueT4gfCBUYWJsZURlc2NyaXB0b3JJbnN0PE1vZGVsLCBhbnksIGFueT59IGRlc2NyaXB0b3IgLSBUaGUgdGFibGUgdmlldyBkZXNjcmlwdG9yIG9yIHRhYmxlIGRlc2NyaXB0b3IgdG8gYWRkIHRoZSBjb2x1bW4gdG8uXG4gKiBAcGFyYW0ge1Byb3BlcnR5fSBwcm9wZXJ0eSAtIFRoZSBwcm9wZXJ0eSBrZXkgb2YgdGhlIG1vZGVsIHRvIGNyZWF0ZSB0aGUgY29sdW1uIGZvci5cbiAqIEBwYXJhbSB7U2NoZW1hUHJvcGVydHl9IHByb3BlcnR5U2NoZW1hIC0gVGhlIHNjaGVtYSBwcm9wZXJ0eSBmb3IgdGhlIHByb3BlcnR5LlxuICogQHBhcmFtIHtDb2x1bW5Gcm9tU2NoZW1hT3B0c1R5cGU8TW9kZWxbUHJvcGVydHldLCBNb2RlbCwgYW55LCBNb2RlbD59IFtvcHRzXSAtIFRoZSBvcHRpb25zIGZvciB0aGUgY29sdW1uLlxuICpcbiAqIEByZXR1cm4ge0NvbHVtbkRlc2NyaXB0b3I8Tm9uTnVsbGFibGU8TW9kZWxbUHJvcGVydHldPiwgTW9kZWwsIE1vZGVsW1Byb3BlcnR5XT59IC0gVGhlIGFkZGVkIGNvbHVtbiBkZXNjcmlwdG9yLlxuICovXG5leHBvcnQgZnVuY3Rpb24gYWRkQ29sdW1uRnJvbVNjaGVtYTxQcm9wZXJ0eSBleHRlbmRzIGtleW9mIE1vZGVsLCBNb2RlbD4oXG4gICAgZGVzY3JpcHRvcjogVGFibGV2aWV3RGVzY3JpcHRvckluc3Q8TW9kZWwsIGFueSwgYW55LCBhbnk+IHwgVGFibGVEZXNjcmlwdG9ySW5zdDxNb2RlbCwgYW55LCBhbnk+LFxuICAgIHByb3BlcnR5OiBQcm9wZXJ0eSxcbiAgICBwcm9wZXJ0eVNjaGVtYTogU2NoZW1hUHJvcGVydHksXG4gICAgb3B0cz86IENvbHVtbkZyb21TY2hlbWFPcHRzVHlwZTxNb2RlbFtQcm9wZXJ0eV0sIE1vZGVsLCBhbnk+XG4pOiBDb2x1bW5EZXNjcmlwdG9yPE5vbk51bGxhYmxlPE1vZGVsW1Byb3BlcnR5XT4sIE1vZGVsLCBNb2RlbFtQcm9wZXJ0eV0+IHtcbiAgICBjb25zdCBwcm9wZXJ0eVR5cGUgPSBvcHRzPy5jb2x1bW5UeXBlID8/IHByb3BlcnR5U2NoZW1hPy50eXBlO1xuXG4gICAgY29uc3QgY29sdW1uID0gZGVzY3JpcHRvci5hZGRDb2x1bW4ocHJvcGVydHkpO1xuXG4gICAgLy8gSGFuZGxlIGRpZmZlcmVudCBwcm9wZXJ0eSB0eXBlc1xuICAgIHN3aXRjaCAocHJvcGVydHlUeXBlKSB7XG4gICAgICAgIGNhc2UgJ251bWJlcic6XG4gICAgICAgICAgICBjb2x1bW4uYXNOdW1iZXIoe1xuICAgICAgICAgICAgICAgIG1pbkZyYWN0aW9uRGlnaXRzOiBvcHRzPy5udW1iZXJNaW5GcmFjdGlvbkRpZ2l0cyxcbiAgICAgICAgICAgICAgICBtYXhGcmFjdGlvbkRpZ2l0czogb3B0cz8ubnVtYmVyTWF4RnJhY3Rpb25EaWdpdHMsXG4gICAgICAgICAgICAgICAgbWluSW50ZWdlckRpZ2l0czogb3B0cz8ubnVtYmVyTWluSW50ZWdlckRpZ2l0c1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAnYm9vbGVhbic6XG4gICAgICAgICAgICBjb2x1bW4uYXNCb29sZWFuKHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB0cnVlKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlICdkYXRlJzpcbiAgICAgICAgICAgIGNvbHVtbi5hc0RhdGUob3B0cz8uZGF0ZUZvcm1hdCA/PyAnZGQuTU0uWVlZWScpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ2VudW0nOlxuICAgICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWNhc2UtZGVjbGFyYXRpb25zXG4gICAgICAgICAgICBjb25zdCBlbnVtTW9kZWwgPSBvcHRzPy5lbnVtU2NoZW1hID8gZW51bU1vZGVsRnJvbVNjaGVtYShvcHRzLmVudW1TY2hlbWEpIDogb3B0cz8uZW51bU1vZGVsO1xuICAgICAgICAgICAgaWYgKGVudW1Nb2RlbCkge1xuICAgICAgICAgICAgICAgIGNvbHVtbi5hc0VudW1VbnNhZmUoZW51bU1vZGVsKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlICdkYXRlLXRpbWUnOlxuICAgICAgICAgICAgY29sdW1uLmFzRGF0ZShvcHRzPy5kYXRlVGltZUZvcm1hdCA/PyAnZGQuTU0uWVlZWSBISDptbScpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ2N1cnJlbmN5JzpcbiAgICAgICAgICAgIGNvbHVtbi5hc0N1cnJlbmN5KHtcbiAgICAgICAgICAgICAgICBjdXJyZW5jeTogb3B0cz8uY3VycmVuY3ksXG4gICAgICAgICAgICAgICAgY3VycmVuY3lEaXNwbGF5OiBvcHRzPy5jdXJyZW5jeURpc3BsYXksXG4gICAgICAgICAgICAgICAgY3VycmVuY3lQcm9wZXJ0eTogb3B0cz8uY3VycmVuY3lQcm9wZXJ0eSxcbiAgICAgICAgICAgICAgICBtaW5GcmFjdGlvbkRpZ2l0czogb3B0cz8ubnVtYmVyTWluRnJhY3Rpb25EaWdpdHMsXG4gICAgICAgICAgICAgICAgbWF4RnJhY3Rpb25EaWdpdHM6IG9wdHM/Lm51bWJlck1heEZyYWN0aW9uRGlnaXRzLFxuICAgICAgICAgICAgICAgIG1pbkludGVnZXJEaWdpdHM6IG9wdHM/Lm51bWJlck1pbkludGVnZXJEaWdpdHNcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ29iamVjdCc6XG4gICAgICAgICAgICBjb2x1bW4ud2l0aEdldHRlcihkZWZhdWx0R2V0dGVyKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgIH1cblxuICAgIC8vIEFkZCBvcHRpb25hbCBmaWx0ZXIsIHNvcnQgYW5kIGdldHRlcnNcbiAgICBpZiAob3B0cz8uZ2V0dGVyKSBjb2x1bW4ud2l0aEdldHRlcihvcHRzPy5nZXR0ZXIpO1xuXG4gICAgcmV0dXJuIGNvbHVtbjtcbn1cbiJdfQ==
|
|
179
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sdW1ucy1mcm9tLXNjaGVtYS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3RhYmxldmlldy9zcmMvc2NoZW1hL2NvbHVtbnMtZnJvbS1zY2hlbWEudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBTUEsT0FBTyxFQUFDLG1CQUFtQixFQUFDLE1BQU0sb0JBQW9CLENBQUM7QUFDdkQsT0FBTyxFQUFDLGtDQUFrQyxFQUFDLE1BQU0sK0JBQStCLENBQUM7QUE2QmpGLE1BQU0sYUFBYSxHQUFzQixLQUFLLENBQUMsRUFBRTtJQUM3QyxJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsRUFBRSxDQUFDO1FBQzVCLE1BQU0sUUFBUSxHQUFHLEtBQWUsQ0FBQztRQUNqQyxPQUFPLENBQ0gsUUFBUSxDQUFDLE9BQXVCLENBQUM7WUFDakMsUUFBUSxDQUFDLE1BQXNCLENBQUM7WUFDaEMsUUFBUSxDQUFDLE9BQXVCLENBQUM7WUFDakMsUUFBUSxDQUFDLE1BQXNCLENBQUM7WUFDaEMsUUFBUSxDQUFDLE9BQXVCLENBQUM7WUFDakMsUUFBUSxDQUFDLElBQW9CLENBQUM7WUFDOUIsUUFBUSxDQUFDLE1BQXNCLENBQUM7WUFDaEMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFpQixDQUFDLENBQ3JELENBQUM7SUFDTixDQUFDO1NBQU0sQ0FBQztRQUNKLE9BQU8sS0FBSyxDQUFDO0lBQ2pCLENBQUM7QUFDTCxDQUFDLENBQUM7QUFFRjs7OztHQUlHO0FBQ0gsTUFBTSxPQUFPLG9CQUFvQjtJQUM3QixZQUNxQixVQUFnRyxFQUNoRyxNQUE2QixFQUN0QyxJQUEwQztRQUZqQyxlQUFVLEdBQVYsVUFBVSxDQUFzRjtRQUNoRyxXQUFNLEdBQU4sTUFBTSxDQUF1QjtRQUN0QyxTQUFJLEdBQUosSUFBSSxDQUFzQztJQUNuRCxDQUFDO0lBRUksZ0JBQWdCLENBQUMsUUFBYSxFQUFFLElBQWdDO1FB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UHJvcGVydHl9IGZyb20gJ0BtZWRpdXNpbmMvbW5nLWNvbW1vbnMtZGF0YS1hcGknO1xuaW1wb3J0IHtHZXR0ZXJGbn0gZnJvbSAnQG1lZGl1c2luYy9tbmctY29tbW9ucy9jb3JlJztcbmltcG9ydCB7RW51bURlc2NyaXB0b3J9IGZyb20gJ0BtZWRpdXNpbmMvbW5nLWNvbW1vbnMvbW9kZWwnO1xuaW1wb3J0IHtDb2x1bW5EZXNjcmlwdG9yLCBUYWJsZURlc2NyaXB0b3JJbnN0fSBmcm9tICdAbWVkaXVzaW5jL21uZy1jb21tb25zL3RhYmxlL2FwaSc7XG5pbXBvcnQge1RhYmxldmlld0Rlc2NyaXB0b3JJbnN0fSBmcm9tICdAbWVkaXVzaW5jL21uZy1jb21tb25zL3RhYmxldmlldy9hcGknO1xuXG5pbXBvcnQge2VudW1Nb2RlbEZyb21TY2hlbWF9IGZyb20gJy4vZW51bS1mcm9tLXNjaGVtYSc7XG5pbXBvcnQge2Zyb21TY2hlbWFGaWx0ZXJOb25BcnJheVByb3BlcnRpZXN9IGZyb20gJy4vaW50ZXJuYWwvY29tbW9uLWZyb20tc2NoZW1hJztcblxudHlwZSBDb2x1bW5UeXBlID0gJ251bWJlcicgfCAnY3VycmVuY3knIHwgJ2Jvb2xlYW4nIHwgJ3N0cmluZycgfCAndGV4dCcgfCAndGV4dGFyZWEnIHwgJ2RhdGUnIHwgJ2RhdGUtdGltZScgfCAnZW51bScgfCAnb2JqZWN0JztcblxudHlwZSBDb2x1bW5Gcm9tU2NoZW1hQ29tbW9uT3B0c1R5cGU8TW9kZWw+ID0ge1xuICAgIGN1cnJlbmN5UHJvcGVydHk/OiBrZXlvZiBNb2RlbDtcbiAgICBjdXJyZW5jeT86IHN0cmluZztcbiAgICBjdXJyZW5jeURpc3BsYXk/OiAnc3ltYm9sJyB8ICdjb2RlJyB8ICduYW1lJztcbiAgICBkYXRlRm9ybWF0Pzogc3RyaW5nO1xuICAgIGRhdGVUaW1lRm9ybWF0Pzogc3RyaW5nO1xuICAgIG51bWJlck1pbkludGVnZXJEaWdpdHM/OiBudW1iZXI7XG4gICAgbnVtYmVyTWluRnJhY3Rpb25EaWdpdHM/OiBudW1iZXI7XG4gICAgbnVtYmVyTWF4RnJhY3Rpb25EaWdpdHM/OiBudW1iZXI7XG59O1xuXG50eXBlIENvbHVtbnNGcm9tU2NoZW1hT3B0c1R5cGU8TW9kZWwgPSBhbnk+ID0gQ29sdW1uRnJvbVNjaGVtYUNvbW1vbk9wdHNUeXBlPE1vZGVsPiAmIHtcbiAgICBjb2x1bW5UeXBlcz86IFBhcnRpYWw8UmVjb3JkPGtleW9mIE1vZGVsLCBDb2x1bW5UeXBlPj47XG4gICAgZW51bU1vZGVscz86IFBhcnRpYWw8UmVjb3JkPGtleW9mIE1vZGVsLCBFbnVtRGVzY3JpcHRvcjxhbnk+Pj47XG4gICAgZW51bVNjaGVtYXM/OiBQYXJ0aWFsPFJlY29yZDxrZXlvZiBNb2RlbCwgU2NoZW1hRW51bTxhbnk+Pj47XG4gICAgZ2V0dGVycz86IHtbSyBpbiBrZXlvZiBNb2RlbF0/OiBHZXR0ZXJGbjxNb2RlbFtLXSwgTW9kZWw+fTtcbn07XG5cbnR5cGUgQ29sdW1uRnJvbVNjaGVtYU9wdHNUeXBlPENvbHVtbiA9IGFueSwgTW9kZWwgPSBhbnksIEVudW0gPSBhbnk+ID0gQ29sdW1uRnJvbVNjaGVtYUNvbW1vbk9wdHNUeXBlPE1vZGVsPiAmIHtcbiAgICBjb2x1bW5UeXBlPzogQ29sdW1uVHlwZTtcbiAgICBnZXR0ZXI/OiBHZXR0ZXJGbjxDb2x1bW4sIE1vZGVsPjtcbiAgICBlbnVtTW9kZWw/OiBFbnVtRGVzY3JpcHRvcjxFbnVtPjtcbiAgICBlbnVtU2NoZW1hPzogU2NoZW1hRW51bTxFbnVtPjtcbn07XG5cbmNvbnN0IGRlZmF1bHRHZXR0ZXI6IEdldHRlckZuPHVua25vd24+ID0gdmFsdWUgPT4ge1xuICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnKSB7XG4gICAgICAgIGNvbnN0IHZhbHVlT2JqID0gdmFsdWUgYXMgb2JqZWN0O1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgdmFsdWVPYmpbJ3RpdGxlJyBhcyBrZXlvZiBvYmplY3RdID8/XG4gICAgICAgICAgICB2YWx1ZU9ialsnbmFtZScgYXMga2V5b2Ygb2JqZWN0XSA/P1xuICAgICAgICAgICAgdmFsdWVPYmpbJ25heml2JyBhcyBrZXlvZiBvYmplY3RdID8/XG4gICAgICAgICAgICB2YWx1ZU9ialsnY29kZScgYXMga2V5b2Ygb2JqZWN0XSA/P1xuICAgICAgICAgICAgdmFsdWVPYmpbJ3NpZnJhJyBhcyBrZXlvZiBvYmplY3RdID8/XG4gICAgICAgICAgICB2YWx1ZU9ialsnaWQnIGFzIGtleW9mIG9iamVjdF0gPz9cbiAgICAgICAgICAgIHZhbHVlT2JqWyd1dWlkJyBhcyBrZXlvZiBvYmplY3RdID8/XG4gICAgICAgICAgICB2YWx1ZU9ialtPYmplY3Qua2V5cyh2YWx1ZU9iailbMF0gYXMga2V5b2Ygb2JqZWN0XVxuICAgICAgICApO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICB9XG59O1xuXG4vKipcbiAqIDxlbT5FeHBlcmltZW50YWw6PC9lbT4gQnVpbGRlciBmb3IgYWRkaW5nIGNvbHVtbnMgdG8gdGFibGUuXG4gKlxuICogQGV4cGVyaW1lbnRhbFxuICovXG5leHBvcnQgY2xhc3MgU2NoZW1hQ29sdW1uc0J1aWxkZXI8TW9kZWwsIFNjaE1vZGVsID0gTW9kZWw+IHtcbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBkZXNjcmlwdG9yOiBUYWJsZXZpZXdEZXNjcmlwdG9ySW5zdDxNb2RlbCwgYW55LCBhbnksIGFueT4gfCBUYWJsZURlc2NyaXB0b3JJbnN0PE1vZGVsLCBhbnksIGFueT4sXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgc2NoZW1hOiBTY2hlbWFNb2RlbDxTY2hNb2RlbD4sXG4gICAgICAgIHByaXZhdGUgb3B0cz86IENvbHVtbnNGcm9tU2NoZW1hT3B0c1R5cGU8U2NoTW9kZWw+XG4gICAgKSB7fVxuXG4gICAgcHJpdmF0ZSBtZXJnZUNvbHVtbnNPcHRzKHByb3BlcnR5OiBhbnksIG9wdHM/OiBDb2x1bW5zRnJvbVNjaGVtYU9wdHNUeXBlKSB7XG4gICAgICAgIHJldHVybiA8Q29sdW1uRnJvbVNjaGVtYU9wdHNUeXBlPntcbiAgICAgICAgICAgIC4uLnRoaXMub3B0cyxcbiAgICAgICAgICAgIGNvbHVtblR5cGU6IHRoaXMub3B0cz8uY29sdW1uVHlwZXM/Lltwcm9wZXJ0eSBhcyBrZXlvZiBvYmplY3RdLFxuICAgICAgICAgICAgZ2V0dGVyOiBvcHRzPy5nZXR0ZXJzPy5bcHJvcGVydHldID8/IHRoaXMub3B0cz8uZ2V0dGVycz8uW3Byb3BlcnR5IGFzIGtleW9mIG9iamVjdF0sXG4gICAgICAgICAgICBlbnVtTW9kZWw6IG9wdHM/LmVudW1Nb2RlbHM/Lltwcm9wZXJ0eV0gPz8gdGhpcy5vcHRzPy5lbnVtTW9kZWxzPy5bcHJvcGVydHkgYXMga2V5b2Ygb2JqZWN0XSxcbiAgICAgICAgICAgIGVudW1TY2hlbWE6IG9wdHM/LmVudW1TY2hlbWFzPy5bcHJvcGVydHldID8/IHRoaXMub3B0cz8uZW51bVNjaGVtYXM/Lltwcm9wZXJ0eSBhcyBrZXlvZiBvYmplY3RdLFxuICAgICAgICAgICAgLi4ub3B0c1xuICAgICAgICB9O1xuICAgIH1cblxuICAgIHByaXZhdGUgbWVyZ2VDb2x1bW5PcHRzKHByb3BlcnR5OiBhbnksIG9wdHM/OiBDb2x1bW5Gcm9tU2NoZW1hT3B0c1R5cGUpIHtcbiAgICAgICAgcmV0dXJuIDxDb2x1bW5Gcm9tU2NoZW1hT3B0c1R5cGU+e1xuICAgICAgICAgICAgLi4udGhpcy5vcHRzLFxuICAgICAgICAgICAgY29sdW1uVHlwZTogdGhpcy5vcHRzPy5jb2x1bW5UeXBlcz8uW3Byb3BlcnR5IGFzIGtleW9mIG9iamVjdF0sXG4gICAgICAgICAgICBnZXR0ZXI6IHRoaXMub3B0cz8uZ2V0dGVycz8uW3Byb3BlcnR5IGFzIGtleW9mIG9iamVjdF0sXG4gICAgICAgICAgICBlbnVtTW9kZWw6IHRoaXMub3B0cz8uZW51bU1vZGVscz8uW3Byb3BlcnR5IGFzIGtleW9mIG9iamVjdF0sXG4gICAgICAgICAgICBlbnVtU2NoZW1hOiB0aGlzLm9wdHM/LmVudW1TY2hlbWFzPy5bcHJvcGVydHkgYXMga2V5b2Ygb2JqZWN0XSxcbiAgICAgICAgICAgIC4uLm9wdHNcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiA8ZW0+RXhwZXJpbWVudGFsOjwvZW0+IEFkZHMgYSBzaW5nbGUgY29sdW1uIHZpYSB7YWRkQ29sdW1uRnJvbVNjaGVtYX0uXG4gICAgICpcbiAgICAgKiBAZXhwZXJpbWVudGFsXG4gICAgICpcbiAgICAgKiBAcGFyYW0ge1Byb3BlcnR5fSBwcm9wZXJ0eSAtIFRoZSBwcm9wZXJ0eSB0byBhZGQgdGhlIGNvbHVtbiBmb3IuXG4gICAgICogQHBhcmFtIHtDb2x1bW5Gcm9tU2NoZW1hT3B0c1R5cGU8U2NoTW9kZWxbUHJvcGVydHldLCBTY2hNb2RlbCwgYW55LCBNb2RlbD59IG9wdHMgLSBBZGRpdGlvbmFsIG9wdGlvbnMuXG4gICAgICpcbiAgICAgKiBAcmV0dXJuIHtDb2x1bW5EZXNjcmlwdG9yPE5vbk51bGxhYmxlPE1vZGVsW1Byb3BlcnR5XT4sIE1vZGVsLCBNb2RlbFtQcm9wZXJ0eV0+fSBUaGUgYWRkZWQgY29sdW1uIGRlc2NyaXB0b3IuXG4gICAgICovXG4gICAgcHVibGljIGFkZDxQcm9wZXJ0eSBleHRlbmRzIEV4dHJhY3Q8a2V5b2YgTW9kZWwsIGtleW9mIFNjaE1vZGVsPj4oXG4gICAgICAgIHByb3BlcnR5OiBQcm9wZXJ0eSxcbiAgICAgICAgb3B0cz86IENvbHVtbkZyb21TY2hlbWFPcHRzVHlwZTxTY2hNb2RlbFtQcm9wZXJ0eV0sIFNjaE1vZGVsLCBhbnk+XG4gICAgKTogQ29sdW1uRGVzY3JpcHRvcjxOb25OdWxsYWJsZTxNb2RlbFtQcm9wZXJ0eV0+LCBNb2RlbCwgTW9kZWxbUHJvcGVydHldPiB7XG4gICAgICAgIHJldHVybiBhZGRDb2x1bW5Gcm9tU2NoZW1hKFxuICAgICAgICAgICAgdGhpcy5kZXNjcmlwdG9yLFxuICAgICAgICAgICAgcHJvcGVydHksXG4gICAgICAgICAgICB0aGlzLnNjaGVtYS5wcm9wZXJ0aWVzW3Byb3BlcnR5XSxcbiAgICAgICAgICAgIHRoaXMubWVyZ2VDb2x1bW5PcHRzKHByb3BlcnR5LCBvcHRzKSBhcyBDb2x1bW5Gcm9tU2NoZW1hT3B0c1R5cGU8TW9kZWxbUHJvcGVydHldLCBNb2RlbCwgYW55PiB8IHVuZGVmaW5lZFxuICAgICAgICApIGFzIHVua25vd24gYXMgQ29sdW1uRGVzY3JpcHRvcjxOb25OdWxsYWJsZTxNb2RlbFtQcm9wZXJ0eV0+LCBNb2RlbCwgTW9kZWxbUHJvcGVydHldPjtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiA8ZW0+RXhwZXJpbWVudGFsOjwvZW0+IEFkZHMgYWxsIGNvbHVtbnMgZnJvbSB0aGUgbm9uLWFycmF5IHNjaGVtYSBwcm9wZXJ0aWVzIHZpYSB7YWRkQ29sdW1uRnJvbVNjaGVtYX0uXG4gICAgICpcbiAgICAgKiBAZXhwZXJpbWVudGFsXG4gICAgICpcbiAgICAgKiBAcGFyYW0ge0NvbHVtbnNGcm9tU2NoZW1hT3B0c1R5cGU8U2NoTW9kZWw+fSBvcHRzIC0gQWRkaXRpb25hbCBvcHRpb25zLlxuICAgICAqXG4gICAgICogQHJldHVybiB7dGhpc30gLSBUaGUgY3VycmVudCBpbnN0YW5jZSBvZiB0aGUgYnVpbGRlci5cbiAgICAgKi9cbiAgICBwdWJsaWMgd2l0aEFkZEFsbChvcHRzPzogQ29sdW1uc0Zyb21TY2hlbWFPcHRzVHlwZTxTY2hNb2RlbD4pOiB0aGlzIHtcbiAgICAgICAgdGhpcy5hZGRDb2x1bW5zKHVuZGVmaW5lZCwgb3B0cyk7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIDxlbT5FeHBlcmltZW50YWw6PC9lbT4gQWRkcyBjb2x1bW5zIGZvciBwcm9wZXJ0aWVzIHZpYSB7YWRkQ29sdW1uRnJvbVNjaGVtYX0uXG4gICAgICpcbiAgICAgKiBAZXhwZXJpbWVudGFsXG4gICAgICpcbiAgICAgKiBAcGFyYW0ge0NvbHVtbnNGcm9tU2NoZW1hT3B0c1R5cGU8U2NoTW9kZWw+fSBvcHRzIC0gQWRkaXRpb25hbCBvcHRpb25zLlxuICAgICAqIEBwYXJhbSB7Li4uUHJvcGVydHlbXX0gcHJvcGVydGllcyAtIFByb3BlcnRpZXMgdG8gYWRkIGNvbHVtbnMgZm9yLiBJZiBub24gcHJvdmlkZWQsIGFsbCBub24tYXJyYXkgcHJvcGVydGllcyBmcm9tIHNjaGVtYSB3aWxsIGJlIGFkZGVkLlxuICAgICAqXG4gICAgICogQHJldHVybiB7dGhpc30gLSBUaGUgY3VycmVudCBpbnN0YW5jZSBvZiB0aGUgYnVpbGRlci5cbiAgICAgKi9cbiAgICBwdWJsaWMgd2l0aEFkZDxQcm9wZXJ0eSBleHRlbmRzIEV4dHJhY3Q8a2V5b2YgTW9kZWwsIGtleW9mIFNjaE1vZGVsPj4ob3B0czogQ29sdW1uc0Zyb21TY2hlbWFPcHRzVHlwZTxTY2hNb2RlbD4sIC4uLnByb3BlcnRpZXM6IFByb3BlcnR5W10pOiB0aGlzO1xuICAgIC8qKlxuICAgICAqIDxlbT5FeHBlcmltZW50YWw6PC9lbT4gQWRkcyBjb2x1bW5zIGZvciBwcm9wZXJ0aWVzIHZpYSB7YWRkQ29sdW1uRnJvbVNjaGVtYX0uXG4gICAgICpcbiAgICAgKiBAZXhwZXJpbWVudGFsXG4gICAgICpcbiAgICAgKiBAcGFyYW0gey4uLlByb3BlcnR5W119IHByb3BlcnRpZXMgLSBQcm9wZXJ0aWVzIHRvIGFkZCBjb2x1bW5zIGZvci4gSWYgbm9uIHByb3ZpZGVkLCBhbGwgbm9uLWFycmF5IHByb3BlcnRpZXMgZnJvbSBzY2hlbWEgd2lsbCBiZSBhZGRlZC5cbiAgICAgKlxuICAgICAqIEByZXR1cm4ge3RoaXN9IC0gVGhlIGN1cnJlbnQgaW5zdGFuY2Ugb2YgdGhlIGJ1aWxkZXIuXG4gICAgICovXG4gICAgcHVibGljIHdpdGhBZGQ8UHJvcGVydHkgZXh0ZW5kcyBFeHRyYWN0PGtleW9mIE1vZGVsLCBrZXlvZiBTY2hNb2RlbD4+KC4uLnByb3BlcnRpZXM6IFByb3BlcnR5W10pOiB0aGlzO1xuICAgIHB1YmxpYyB3aXRoQWRkPFByb3BlcnR5IGV4dGVuZHMgRXh0cmFjdDxrZXlvZiBNb2RlbCwga2V5b2YgU2NoTW9kZWw+Pihwcm9wT3JPcHRzOiBDb2x1bW5zRnJvbVNjaGVtYU9wdHNUeXBlPFNjaE1vZGVsPiB8IFByb3BlcnR5LCAuLi5wcm9wZXJ0aWVzOiBQcm9wZXJ0eVtdKTogdGhpcyB7XG4gICAgICAgIGlmICh0eXBlb2YgcHJvcE9yT3B0cyA9PT0gJ29iamVjdCcpIHtcbiAgICAgICAgICAgIHRoaXMuYWRkQ29sdW1ucyhwcm9wZXJ0aWVzLmxlbmd0aCA9PT0gMCA/IHVuZGVmaW5lZCA6IHByb3BlcnRpZXMsIHByb3BPck9wdHMpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5hZGRDb2x1bW5zKFtwcm9wT3JPcHRzLCAuLi5wcm9wZXJ0aWVzXSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogPGVtPkV4cGVyaW1lbnRhbDo8L2VtPiBBZGRzIGEgc2luZ2xlIGNvbHVtbiB2aWEge2FkZENvbHVtbkZyb21TY2hlbWF9IHdoZXJlIHByb3BlcnR5IHNjaGVtYSBpcyBtYW51YWxseSBwcm92aWRlZC5cbiAgICAgKlxuICAgICAqIEBleHBlcmltZW50YWxcbiAgICAgKlxuICAgICAqIEBwYXJhbSB7UHJvcGVydHl9IHByb3BlcnR5IC0gVGhlIHByb3BlcnR5IHRvIGFkZCB0aGUgY29sdW1uIGZvci5cbiAgICAgKiBAcGFyYW0ge1NjaGVtYVByb3BlcnR5fSBzY2hlbWFQcm9wZXJ0eSAtIE1hbnVhbGx5IHByb3ZpZGVkIHNjaGVtYSBwcm9wZXJ0eS5cbiAgICAgKiBAcGFyYW0ge0NvbHVtbkZyb21TY2hlbWFPcHRzVHlwZX0gb3B0cyAtIEFkZGl0aW9uYWwgb3B0aW9ucy5cbiAgICAgKlxuICAgICAqIEByZXR1cm4ge0NvbHVtbkRlc2NyaXB0b3I8Tm9uTnVsbGFibGU8TW9kZWxbUHJvcGVydHldPiwgTW9kZWwsIE1vZGVsW1Byb3BlcnR5XT59IFRoZSBhZGRlZCBjb2x1bW4gZGVzY3JpcHRvci5cbiAgICAgKi9cbiAgICBwdWJsaWMgYWRkRnJvbVNjaGVtYTxQcm9wZXJ0eSBleHRlbmRzIGtleW9mIE1vZGVsPihcbiAgICAgICAgcHJvcGVydHk6IFByb3BlcnR5LFxuICAgICAgICBzY2hlbWFQcm9wZXJ0eTogU2NoZW1hUHJvcGVydHksXG4gICAgICAgIG9wdHM/OiBDb2x1bW5Gcm9tU2NoZW1hT3B0c1R5cGU8TW9kZWxbUHJvcGVydHldLCBNb2RlbD5cbiAgICApOiBDb2x1bW5EZXNjcmlwdG9yPE5vbk51bGxhYmxlPE1vZGVsW1Byb3BlcnR5XT4sIE1vZGVsLCBNb2RlbFtQcm9wZXJ0eV0+IHtcbiAgICAgICAgcmV0dXJuIGFkZENvbHVtbkZyb21TY2hlbWEoXG4gICAgICAgICAgICB0aGlzLmRlc2NyaXB0b3IsXG4gICAgICAgICAgICBwcm9wZXJ0eSxcbiAgICAgICAgICAgIHNjaGVtYVByb3BlcnR5LFxuICAgICAgICAgICAgdGhpcy5tZXJnZUNvbHVtbk9wdHMocHJvcGVydHksIG9wdHMpIGFzIENvbHVtbkZyb21TY2hlbWFPcHRzVHlwZTxNb2RlbFtQcm9wZXJ0eV0sIE1vZGVsLCBhbnk+IHwgdW5kZWZpbmVkXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBhZGRDb2x1bW5zPFByb3BlcnR5IGV4dGVuZHMgRXh0cmFjdDxrZXlvZiBNb2RlbCwga2V5b2YgU2NoTW9kZWw+Pihwcm9wZXJ0aWVzPzogUHJvcGVydHlbXSwgb3B0cz86IENvbHVtbnNGcm9tU2NoZW1hT3B0c1R5cGU8U2NoTW9kZWw+KSB7XG4gICAgICAgIGNvbnN0IGFkZFByb3BlcnRpZXMgPSBwcm9wZXJ0aWVzID8/IGZyb21TY2hlbWFGaWx0ZXJOb25BcnJheVByb3BlcnRpZXM8U2NoTW9kZWw+KHRoaXMuc2NoZW1hLnByb3BlcnRpZXMpO1xuXG4gICAgICAgIGlmIChhZGRQcm9wZXJ0aWVzKSB7XG4gICAgICAgICAgICBhZGRQcm9wZXJ0aWVzLmZvckVhY2gocHJvcGVydHkgPT4ge1xuICAgICAgICAgICAgICAgIGFkZENvbHVtbkZyb21TY2hlbWEoXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZGVzY3JpcHRvcixcbiAgICAgICAgICAgICAgICAgICAgcHJvcGVydHkgYXMgYW55LFxuICAgICAgICAgICAgICAgICAgICB0aGlzLnNjaGVtYS5wcm9wZXJ0aWVzW3Byb3BlcnR5XSxcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5tZXJnZUNvbHVtbnNPcHRzKHByb3BlcnR5IGFzIHVua25vd24gYXMga2V5b2YgTW9kZWwsIG9wdHMpIGFzIENvbHVtbkZyb21TY2hlbWFPcHRzVHlwZTxNb2RlbFtQcm9wZXJ0eV0sIE1vZGVsLCBhbnk+IHwgdW5kZWZpbmVkXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4vKipcbiAqIDxlbT5FeHBlcmltZW50YWw6PC9lbT4gQ3JlYXRlcyBidWlsZGVyIGZvciBhZGRpbmcgY29sdW1ucyB0byBkZXNjcmlwdG9yIGJhc2VkIG9uIHByb3ZpZGVkIG1vZGVsIHNjaGVtYS5cbiAqXG4gKiBAZXhwZXJpbWVudGFsXG4gKlxuICogQHBhcmFtIHtUYWJsZXZpZXdEZXNjcmlwdG9ySW5zdDxNb2RlbCwgYW55LCBhbnksIGFueT4gfCBUYWJsZURlc2NyaXB0b3JJbnN0PE1vZGVsLCBhbnksIGFueT59IGRlc2NyaXB0b3IgLSBEZXNjcmlwdG9yIHRvIGFkZCBjb2x1bW5zIHRvLlxuICogQHBhcmFtIHtTY2hlbWFNb2RlbDxTY2hNb2RlbD59IHNjaGVtYSAtIFRoZSBzY2hlbWEgd2l0aCBtZXRhZGF0YSBhYm91dCBwcm9wZXJ0aWVzIGZvciBmaWVsZHMuXG4gKiBAcGFyYW0ge0NvbHVtbnNGcm9tU2NoZW1hT3B0c1R5cGU8U2NoTW9kZWw+fSBbb3B0c10gLSBBZGRpdGlvbmFsIG9wdGlvbnMuXG4gKlxuICogQHJldHVybiB7U2NoZW1hQ29sdW1uc0J1aWxkZXI8TW9kZWwsIFNjaE1vZGVsPn0gLSBUaGUgY29sdW1uIHNjaGVtYSBidWlsZGVyIGluc3RhbmNlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gY29sdW1uc0Zyb21TY2hlbWE8TW9kZWwsIFNjaE1vZGVsID0gTW9kZWw+KFxuICAgIGRlc2NyaXB0b3I6IFRhYmxldmlld0Rlc2NyaXB0b3JJbnN0PGFueSwgYW55LCBhbnksIGFueSwgTW9kZWwsIGFueSwgYW55LCBhbnk+IHwgVGFibGVEZXNjcmlwdG9ySW5zdDxNb2RlbCwgYW55LCBhbnk+LFxuICAgIHNjaGVtYTogU2NoZW1hTW9kZWw8U2NoTW9kZWw+LFxuICAgIG9wdHM/OiBDb2x1bW5zRnJvbVNjaGVtYU9wdHNUeXBlPFNjaE1vZGVsPlxuKTogU2NoZW1hQ29sdW1uc0J1aWxkZXI8TW9kZWwsIFNjaE1vZGVsPiB7XG4gICAgcmV0dXJuIG5ldyBTY2hlbWFDb2x1bW5zQnVpbGRlcjxNb2RlbCwgU2NoTW9kZWw+KGRlc2NyaXB0b3IsIHNjaGVtYSwgb3B0cyk7XG59XG5cbi8qKlxuICogPGVtPkV4cGVyaW1lbnRhbDo8L2VtPiBBZGRzIGEgY29sdW1uIHRvIHRhYmxlIGRlc2NyaXB0b3IgYmFzZWQgb24gdGhlIGdpdmVuIHNjaGVtYSBwcm9wZXJ0eSBhbmQgb3B0aW9ucy5cbiAqXG4gKiBAcGFyYW0ge1RhYmxldmlld0Rlc2NyaXB0b3JJbnN0PE1vZGVsLCBhbnksIGFueSwgYW55PiB8IFRhYmxlRGVzY3JpcHRvckluc3Q8TW9kZWwsIGFueSwgYW55Pn0gZGVzY3JpcHRvciAtIFRoZSB0YWJsZSB2aWV3IGRlc2NyaXB0b3Igb3IgdGFibGUgZGVzY3JpcHRvciB0byBhZGQgdGhlIGNvbHVtbiB0by5cbiAqIEBwYXJhbSB7UHJvcGVydHl9IHByb3BlcnR5IC0gVGhlIHByb3BlcnR5IGtleSBvZiB0aGUgbW9kZWwgdG8gY3JlYXRlIHRoZSBjb2x1bW4gZm9yLlxuICogQHBhcmFtIHtTY2hlbWFQcm9wZXJ0eX0gcHJvcGVydHlTY2hlbWEgLSBUaGUgc2NoZW1hIHByb3BlcnR5IGZvciB0aGUgcHJvcGVydHkuXG4gKiBAcGFyYW0ge0NvbHVtbkZyb21TY2hlbWFPcHRzVHlwZTxNb2RlbFtQcm9wZXJ0eV0sIE1vZGVsLCBhbnksIE1vZGVsPn0gW29wdHNdIC0gVGhlIG9wdGlvbnMgZm9yIHRoZSBjb2x1bW4uXG4gKlxuICogQHJldHVybiB7Q29sdW1uRGVzY3JpcHRvcjxOb25OdWxsYWJsZTxNb2RlbFtQcm9wZXJ0eV0+LCBNb2RlbCwgTW9kZWxbUHJvcGVydHldPn0gLSBUaGUgYWRkZWQgY29sdW1uIGRlc2NyaXB0b3IuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBhZGRDb2x1bW5Gcm9tU2NoZW1hPFByb3BlcnR5IGV4dGVuZHMga2V5b2YgVGFibGVNb2RlbCwgTW9kZWwsIFRhYmxlTW9kZWwgPSBNb2RlbD4oXG4gICAgZGVzY3JpcHRvcjogVGFibGV2aWV3RGVzY3JpcHRvckluc3Q8TW9kZWwsIGFueSwgYW55LCBhbnksIFRhYmxlTW9kZWwsIGFueSwgYW55LCBhbnk+IHwgVGFibGVEZXNjcmlwdG9ySW5zdDxUYWJsZU1vZGVsLCBhbnksIGFueT4sXG4gICAgcHJvcGVydHk6IFByb3BlcnR5LFxuICAgIHByb3BlcnR5U2NoZW1hOiBTY2hlbWFQcm9wZXJ0eSxcbiAgICBvcHRzPzogQ29sdW1uRnJvbVNjaGVtYU9wdHNUeXBlPFRhYmxlTW9kZWxbUHJvcGVydHldLCBUYWJsZU1vZGVsLCBhbnk+XG4pOiBDb2x1bW5EZXNjcmlwdG9yPE5vbk51bGxhYmxlPFRhYmxlTW9kZWxbUHJvcGVydHldPiwgVGFibGVNb2RlbCwgVGFibGVNb2RlbFtQcm9wZXJ0eV0+IHtcbiAgICBjb25zdCBwcm9wZXJ0eVR5cGUgPSBvcHRzPy5jb2x1bW5UeXBlID8/IHByb3BlcnR5U2NoZW1hPy50eXBlO1xuXG4gICAgY29uc3QgY29sdW1uID0gZGVzY3JpcHRvci5hZGRDb2x1bW4ocHJvcGVydHkpO1xuXG4gICAgLy8gSGFuZGxlIGRpZmZlcmVudCBwcm9wZXJ0eSB0eXBlc1xuICAgIHN3aXRjaCAocHJvcGVydHlUeXBlKSB7XG4gICAgICAgIGNhc2UgJ251bWJlcic6XG4gICAgICAgICAgICBjb2x1bW4uYXNOdW1iZXIoe1xuICAgICAgICAgICAgICAgIG1pbkZyYWN0aW9uRGlnaXRzOiBvcHRzPy5udW1iZXJNaW5GcmFjdGlvbkRpZ2l0cyxcbiAgICAgICAgICAgICAgICBtYXhGcmFjdGlvbkRpZ2l0czogb3B0cz8ubnVtYmVyTWF4RnJhY3Rpb25EaWdpdHMsXG4gICAgICAgICAgICAgICAgbWluSW50ZWdlckRpZ2l0czogb3B0cz8ubnVtYmVyTWluSW50ZWdlckRpZ2l0c1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAnYm9vbGVhbic6XG4gICAgICAgICAgICBjb2x1bW4uYXNCb29sZWFuKHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB0cnVlKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlICdkYXRlJzpcbiAgICAgICAgICAgIGNvbHVtbi5hc0RhdGUob3B0cz8uZGF0ZUZvcm1hdCA/PyAnZGQuTU0uWVlZWScpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ2VudW0nOlxuICAgICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWNhc2UtZGVjbGFyYXRpb25zXG4gICAgICAgICAgICBjb25zdCBlbnVtTW9kZWwgPSBvcHRzPy5lbnVtU2NoZW1hID8gZW51bU1vZGVsRnJvbVNjaGVtYShvcHRzLmVudW1TY2hlbWEpIDogb3B0cz8uZW51bU1vZGVsO1xuICAgICAgICAgICAgaWYgKGVudW1Nb2RlbCkge1xuICAgICAgICAgICAgICAgIGNvbHVtbi5hc0VudW1VbnNhZmUoZW51bU1vZGVsKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlICdkYXRlLXRpbWUnOlxuICAgICAgICAgICAgY29sdW1uLmFzRGF0ZShvcHRzPy5kYXRlVGltZUZvcm1hdCA/PyAnZGQuTU0uWVlZWSBISDptbScpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ2N1cnJlbmN5JzpcbiAgICAgICAgICAgIGNvbHVtbi5hc0N1cnJlbmN5KHtcbiAgICAgICAgICAgICAgICBjdXJyZW5jeTogb3B0cz8uY3VycmVuY3ksXG4gICAgICAgICAgICAgICAgY3VycmVuY3lEaXNwbGF5OiBvcHRzPy5jdXJyZW5jeURpc3BsYXksXG4gICAgICAgICAgICAgICAgY3VycmVuY3lQcm9wZXJ0eTogb3B0cz8uY3VycmVuY3lQcm9wZXJ0eSxcbiAgICAgICAgICAgICAgICBtaW5GcmFjdGlvbkRpZ2l0czogb3B0cz8ubnVtYmVyTWluRnJhY3Rpb25EaWdpdHMsXG4gICAgICAgICAgICAgICAgbWF4RnJhY3Rpb25EaWdpdHM6IG9wdHM/Lm51bWJlck1heEZyYWN0aW9uRGlnaXRzLFxuICAgICAgICAgICAgICAgIG1pbkludGVnZXJEaWdpdHM6IG9wdHM/Lm51bWJlck1pbkludGVnZXJEaWdpdHNcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ29iamVjdCc6XG4gICAgICAgICAgICBjb2x1bW4ud2l0aEdldHRlcihkZWZhdWx0R2V0dGVyKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgIH1cblxuICAgIC8vIEFkZCBvcHRpb25hbCBmaWx0ZXIsIHNvcnQgYW5kIGdldHRlcnNcbiAgICBpZiAob3B0cz8uZ2V0dGVyKSBjb2x1bW4ud2l0aEdldHRlcihvcHRzPy5nZXR0ZXIpO1xuXG4gICAgcmV0dXJuIGNvbHVtbjtcbn1cbiJdfQ==
|