@elderbyte/ngx-starter 12.12.1 → 12.13.1
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/bundles/elderbyte-ngx-starter.umd.js +364 -107
- package/bundles/elderbyte-ngx-starter.umd.js.map +1 -1
- package/elderbyte-ngx-starter.d.ts +7 -6
- package/elderbyte-ngx-starter.metadata.json +1 -1
- package/esm2015/elderbyte-ngx-starter.js +8 -7
- package/esm2015/lib/common/data/data-context/data-context-active-page.js +1 -1
- package/esm2015/lib/common/data/data-context/data-context-auto-starter.js +74 -0
- package/esm2015/lib/common/data/data-context/data-context-base.js +10 -2
- package/esm2015/lib/common/data/data-context/data-context-builder.js +32 -5
- package/esm2015/lib/common/data/data-context/data-context-continuable-base.js +1 -1
- package/esm2015/lib/common/data/data-context/data-context-continuable-paged.js +1 -1
- package/esm2015/lib/common/data/data-context/data-context-continuable-token.js +2 -2
- package/esm2015/lib/common/data/data-context/data-context-life-cycle-binding.js +30 -0
- package/esm2015/lib/common/data/data-context/data-context-simple.js +1 -1
- package/esm2015/lib/common/data/data-context/data-context-source-auto-reloader.js +12 -0
- package/esm2015/lib/common/data/data-context/data-context.js +1 -1
- package/esm2015/lib/common/data/data-context/public_api.js +4 -2
- package/esm2015/lib/common/data/required-filter-evaluator.js +70 -0
- package/esm2015/lib/components/auditing/audited-entity/elder-audited-entity.component.js +2 -2
- package/esm2015/lib/components/data-view/base/elder-data-view-base.js +46 -3
- package/esm2015/lib/components/data-view/common/data-context-state-indicator/data-context-state-indicator.component.js +45 -0
- package/esm2015/lib/components/data-view/common/elder-data-common.module.js +6 -3
- package/esm2015/lib/components/data-view/grid/elder-grid/elder-grid.component.js +3 -22
- package/esm2015/lib/components/data-view/table/elder-table/elder-table.component.js +5 -48
- package/esm2015/lib/components/files/blob-viewer/elder-blob-viewer.component.js +4 -3
- package/fesm2015/elderbyte-ngx-starter.js +305 -84
- package/fesm2015/elderbyte-ngx-starter.js.map +1 -1
- package/lib/common/data/data-context/data-context-auto-starter.d.ts +41 -0
- package/lib/common/data/data-context/data-context-base.d.ts +7 -1
- package/lib/common/data/data-context/data-context-builder.d.ts +9 -1
- package/lib/common/data/data-context/data-context-continuable-token.d.ts +1 -1
- package/lib/common/data/data-context/data-context-life-cycle-binding.d.ts +33 -0
- package/lib/common/data/data-context/data-context-source-auto-reloader.d.ts +8 -0
- package/lib/common/data/data-context/data-context.d.ts +4 -0
- package/lib/common/data/data-context/public_api.d.ts +3 -1
- package/lib/common/data/required-filter-evaluator.d.ts +46 -0
- package/lib/components/data-view/base/elder-data-view-base.d.ts +11 -1
- package/lib/components/data-view/common/data-context-state-indicator/data-context-state-indicator.component.d.ts +29 -0
- package/lib/components/data-view/grid/elder-grid/elder-grid.component.d.ts +0 -5
- package/lib/components/data-view/table/elder-table/elder-table.component.d.ts +5 -10
- package/package.json +1 -1
- package/src/lib/components/data-view/common/data-context-state-indicator/data-context-state-indicator.component.scss +0 -0
- package/esm2015/lib/common/data/data-context/data-source-to-data-context-binding.js +0 -20
- package/lib/common/data/data-context/data-source-to-data-context-binding.d.ts +0 -12
|
@@ -3,13 +3,14 @@
|
|
|
3
3
|
*/
|
|
4
4
|
export * from './public_api';
|
|
5
5
|
export { ELDER_DATA_VIEW as ɵf } from './lib/components/data-view/base/elder-data-view';
|
|
6
|
-
export {
|
|
7
|
-
export {
|
|
8
|
-
export {
|
|
6
|
+
export { DataContextStateIndicatorComponent as ɵh } from './lib/components/data-view/common/data-context-state-indicator/data-context-state-indicator.component';
|
|
7
|
+
export { ElderPaginatorIntl as ɵl } from './lib/components/data-view/table/elder-paginator-intl';
|
|
8
|
+
export { ElderTableColumnDirective as ɵj } from './lib/components/data-view/table/elder-table-column.directive';
|
|
9
|
+
export { ElderTableRowDirective as ɵk } from './lib/components/data-view/table/elder-table-row.directive';
|
|
9
10
|
export { provideForm as ɵc } from './lib/components/forms/directives/elder-plug-parent-form.directive';
|
|
10
|
-
export { ElderTripleStateCheckboxDirective as
|
|
11
|
+
export { ElderTripleStateCheckboxDirective as ɵi } from './lib/components/forms/directives/elder-triple-state-checkbox.directive';
|
|
11
12
|
export { ElderPanelComponentBase as ɵa, _ElderPanelMixinBase as ɵb } from './lib/components/panels/flat/elder-panel.component';
|
|
12
|
-
export { ElderSelectBase as
|
|
13
|
+
export { ElderSelectBase as ɵn } from './lib/components/select/elder-select-base';
|
|
13
14
|
export { createDataViewSelection as ɵe, createSelectionModel as ɵd } from './lib/components/select/popup/selection-model-popup.directive';
|
|
14
|
-
export { StandardToastComponent as
|
|
15
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
15
|
+
export { StandardToastComponent as ɵm } from './lib/components/toasts/standard-toast/standard-toast.component';
|
|
16
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxkZXJieXRlLW5neC1zdGFydGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvZWxkZXJieXRlL25neC1zdGFydGVyL3NyYy9lbGRlcmJ5dGUtbmd4LXN0YXJ0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLGNBQWMsQ0FBQztBQUU3QixPQUFPLEVBQUMsZUFBZSxJQUFJLEVBQUUsRUFBc0IsTUFBTSxpREFBaUQsQ0FBQztBQUMzRyxPQUFPLEVBQUMsa0NBQWtDLElBQUksRUFBRSxFQUFDLE1BQU0sdUdBQXVHLENBQUM7QUFDL0osT0FBTyxFQUFDLGtCQUFrQixJQUFJLEVBQUUsRUFBQyxNQUFNLHVEQUF1RCxDQUFDO0FBQy9GLE9BQU8sRUFBQyx5QkFBeUIsSUFBSSxFQUFFLEVBQUMsTUFBTSwrREFBK0QsQ0FBQztBQUM5RyxPQUFPLEVBQUMsc0JBQXNCLElBQUksRUFBRSxFQUFDLE1BQU0sNERBQTRELENBQUM7QUFDeEcsT0FBTyxFQUFDLFdBQVcsSUFBSSxFQUFFLEVBQUMsTUFBTSxvRUFBb0UsQ0FBQztBQUNyRyxPQUFPLEVBQUMsaUNBQWlDLElBQUksRUFBRSxFQUFDLE1BQU0seUVBQXlFLENBQUM7QUFDaEksT0FBTyxFQUFDLHVCQUF1QixJQUFJLEVBQUUsRUFBQyxvQkFBb0IsSUFBSSxFQUFFLEVBQUMsTUFBTSxvREFBb0QsQ0FBQztBQUM1SCxPQUFPLEVBQUMsZUFBZSxJQUFJLEVBQUUsRUFBQyxNQUFNLDJDQUEyQyxDQUFDO0FBQ2hGLE9BQU8sRUFBQyx1QkFBdUIsSUFBSSxFQUFFLEVBQUMsb0JBQW9CLElBQUksRUFBRSxFQUFDLE1BQU0sK0RBQStELENBQUM7QUFDdkksT0FBTyxFQUFDLHNCQUFzQixJQUFJLEVBQUUsRUFBQyxNQUFNLGlFQUFpRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL3B1YmxpY19hcGknO1xuXG5leHBvcnQge0VMREVSX0RBVEFfVklFVyBhcyDJtWYsSUVsZGVyRGF0YVZpZXcgYXMgybVnfSBmcm9tICcuL2xpYi9jb21wb25lbnRzL2RhdGEtdmlldy9iYXNlL2VsZGVyLWRhdGEtdmlldyc7XG5leHBvcnQge0RhdGFDb250ZXh0U3RhdGVJbmRpY2F0b3JDb21wb25lbnQgYXMgybVofSBmcm9tICcuL2xpYi9jb21wb25lbnRzL2RhdGEtdmlldy9jb21tb24vZGF0YS1jb250ZXh0LXN0YXRlLWluZGljYXRvci9kYXRhLWNvbnRleHQtc3RhdGUtaW5kaWNhdG9yLmNvbXBvbmVudCc7XG5leHBvcnQge0VsZGVyUGFnaW5hdG9ySW50bCBhcyDJtWx9IGZyb20gJy4vbGliL2NvbXBvbmVudHMvZGF0YS12aWV3L3RhYmxlL2VsZGVyLXBhZ2luYXRvci1pbnRsJztcbmV4cG9ydCB7RWxkZXJUYWJsZUNvbHVtbkRpcmVjdGl2ZSBhcyDJtWp9IGZyb20gJy4vbGliL2NvbXBvbmVudHMvZGF0YS12aWV3L3RhYmxlL2VsZGVyLXRhYmxlLWNvbHVtbi5kaXJlY3RpdmUnO1xuZXhwb3J0IHtFbGRlclRhYmxlUm93RGlyZWN0aXZlIGFzIMm1a30gZnJvbSAnLi9saWIvY29tcG9uZW50cy9kYXRhLXZpZXcvdGFibGUvZWxkZXItdGFibGUtcm93LmRpcmVjdGl2ZSc7XG5leHBvcnQge3Byb3ZpZGVGb3JtIGFzIMm1Y30gZnJvbSAnLi9saWIvY29tcG9uZW50cy9mb3Jtcy9kaXJlY3RpdmVzL2VsZGVyLXBsdWctcGFyZW50LWZvcm0uZGlyZWN0aXZlJztcbmV4cG9ydCB7RWxkZXJUcmlwbGVTdGF0ZUNoZWNrYm94RGlyZWN0aXZlIGFzIMm1aX0gZnJvbSAnLi9saWIvY29tcG9uZW50cy9mb3Jtcy9kaXJlY3RpdmVzL2VsZGVyLXRyaXBsZS1zdGF0ZS1jaGVja2JveC5kaXJlY3RpdmUnO1xuZXhwb3J0IHtFbGRlclBhbmVsQ29tcG9uZW50QmFzZSBhcyDJtWEsX0VsZGVyUGFuZWxNaXhpbkJhc2UgYXMgybVifSBmcm9tICcuL2xpYi9jb21wb25lbnRzL3BhbmVscy9mbGF0L2VsZGVyLXBhbmVsLmNvbXBvbmVudCc7XG5leHBvcnQge0VsZGVyU2VsZWN0QmFzZSBhcyDJtW59IGZyb20gJy4vbGliL2NvbXBvbmVudHMvc2VsZWN0L2VsZGVyLXNlbGVjdC1iYXNlJztcbmV4cG9ydCB7Y3JlYXRlRGF0YVZpZXdTZWxlY3Rpb24gYXMgybVlLGNyZWF0ZVNlbGVjdGlvbk1vZGVsIGFzIMm1ZH0gZnJvbSAnLi9saWIvY29tcG9uZW50cy9zZWxlY3QvcG9wdXAvc2VsZWN0aW9uLW1vZGVsLXBvcHVwLmRpcmVjdGl2ZSc7XG5leHBvcnQge1N0YW5kYXJkVG9hc3RDb21wb25lbnQgYXMgybVtfSBmcm9tICcuL2xpYi9jb21wb25lbnRzL3RvYXN0cy9zdGFuZGFyZC10b2FzdC9zdGFuZGFyZC10b2FzdC5jb21wb25lbnQnOyJdfQ==
|
|
@@ -127,4 +127,4 @@ export class DataContextActivePage extends DataContextBase {
|
|
|
127
127
|
super.onFiltersChanged(filters);
|
|
128
128
|
}
|
|
129
129
|
}
|
|
130
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1jb250ZXh0LWFjdGl2ZS1wYWdlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZWxkZXJieXRlL25neC1zdGFydGVyL3NyYy9saWIvY29tbW9uL2RhdGEvZGF0YS1jb250ZXh0L2RhdGEtY29udGV4dC1hY3RpdmUtcGFnZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFDcEQsT0FBTyxFQUFPLFFBQVEsRUFBRSxXQUFXLEVBQUMsTUFBTSxTQUFTLENBQUM7QUFFcEQsT0FBTyxFQUFTLGFBQWEsRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBQzNELE9BQU8sRUFBQyxlQUFlLEVBQWMsT0FBTyxFQUFlLE1BQU0sTUFBTSxDQUFDO0FBQ3hFLE9BQU8sRUFBQyxLQUFLLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQU9yQyxNQUFNLE9BQU8scUJBQXlCLFNBQVEsZUFBa0I7SUF3QjlEOzs7O2dGQUk0RTtJQUc1RSxZQUNFLFVBQStCLEVBQy9CLFFBQWdCLEVBQ2hCLE9BQTJCLEVBQzNCLFVBQWdDLEVBQ2hDLFNBQThDO1FBRTlDLEtBQUssQ0FBQyxVQUFVLEVBQUUsT0FBTyxFQUFFLFVBQVUsRUFBRSxTQUFTLENBQUMsQ0FBQztRQXBDcEQ7Ozs7b0ZBSTRFO1FBRTNELGNBQVMsR0FBVyxhQUFhLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUM7UUErQmxGLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxlQUFlLENBQWMsSUFBSSxXQUFXLENBQUMsQ0FBQyxFQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUM7SUFDOUUsQ0FBQztJQUVEOzs7O2dGQUk0RTtJQUU1RSxJQUFXLFVBQVU7UUFDbkIsT0FBNEIsS0FBSyxDQUFDLFVBQVUsQ0FBQztJQUMvQyxDQUFDO0lBRUQsSUFBVyxJQUFJ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QyxzQkFBc0IsRUFBRSxHQUFHLENBQUMsQ0FBQztZQUNsRCxPQUFPLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ25CLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDcEIsQ0FBQyxFQUFFLEdBQUcsRUFBRTtZQUNOLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNoQixDQUFDLENBQUMsQ0FBQztRQUVQLE9BQU8sT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDO0lBQy9CLENBQUM7SUFFRDs7OztnRkFJNEU7SUFFNUU7O09BRUc7SUFDTyxjQUFjLENBQUMsS0FBYTtRQUNwQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3ZCLEtBQUssQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDOUIsQ0FBQztJQUVEOztPQUVHO0lBQ08sZ0JBQWdCLENBQUMsT0FBaUI7UUFDMUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN2QixLQUFLLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDbEMsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtEYXRhQ29udGV4dEJhc2V9IGZyb20gJy4vZGF0YS1jb250ZXh0LWJhc2UnO1xuaW1wb3J0IHtQYWdlLCBQYWdlYWJsZSwgUGFnZVJlcXVlc3R9IGZyb20gJy4uL3BhZ2UnO1xuaW1wb3J0IHtGaWx0ZXJ9IGZyb20gJy4uL2ZpbHRlcic7XG5pbXBvcnQge0xvZ2dlciwgTG9nZ2VyRmFjdG9yeX0gZnJvbSAnQGVsZGVyYnl0ZS90cy1sb2dnZXInO1xuaW1wb3J0IHtCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUsIFN1YmplY3QsIFN1YnNjcmlwdGlvbn0gZnJvbSAncnhqcyc7XG5pbXBvcnQge2ZpcnN0fSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQge0lEYXRhQ29udGV4dEFjdGl2ZVBhZ2V9IGZyb20gJy4vZGF0YS1jb250ZXh0JztcbmltcG9ydCB7U29ydH0gZnJvbSAnLi4vc29ydCc7XG5pbXBvcnQge0lQYWdlZERhdGFTb3VyY2V9IGZyb20gJy4uL2RhdGFzb3VyY2UvZGF0YS1zb3VyY2UnO1xuXG5cblxuZXhwb3J0IGNsYXNzIERhdGFDb250ZXh0QWN0aXZlUGFnZTxUPiBleHRlbmRzIERhdGFDb250ZXh0QmFzZTxUPiBpbXBsZW1lbnRzIElEYXRhQ29udGV4dEFjdGl2ZVBhZ2U8VD4ge1xuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBGaWVsZHMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgYWN0bG9nZ2VyOiBMb2dnZXIgPSBMb2dnZXJGYWN0b3J5LmdldExvZ2dlcih0aGlzLmNvbnN0cnVjdG9yLm5hbWUpO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgX3BhZ2U6IEJlaGF2aW9yU3ViamVjdDxQYWdlUmVxdWVzdD47XG5cbiAgLyoqXG4gICAqIFN1YnNjcmlwdGlvbiB0byB0aGUgZXZlbnQgd2hlbiB0aGUgYWN0aXZlIHBhZ2UgaGFzIGNoYW5nZWQuXG4gICAqIFRoaXMgd2lsbCB0cmlnZ2VyIGEgcGFnZSByZWxvYWQuXG4gICAqL1xuICBwcml2YXRlIF9hY3RpdmVQYWdlQ2hhbmdlZFN1YjogU3Vic2NyaXB0aW9uO1xuXG4gIC8qKlxuICAgKiBTdWJzY3JpcHRpb24gb2YgYW4gYWN0dWFsIHBhZ2UgbG9hZCBodHRwIHJlcXVlc3QuXG4gICAqIElmIHRoaXMgaXMgY2xvc2VkLCBpdCB3aWxsIGNhbmNlbCB0aGUgaHR0cCByZXF1ZXN0LlxuICAgKi9cbiAgcHJpdmF0ZSBfYWN0aXZlUGFnZUxvYWQ6IFN1YnNjcmlwdGlvbjtcblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogQ29uc3RydWN0b3IgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIGRhdGFTb3VyY2U6IElQYWdlZERhdGFTb3VyY2U8VD4sXG4gICAgcGFnZVNpemU6IG51bWJlcixcbiAgICBpbmRleEZuOiAoKGl0ZW06IFQpID0+IGFueSksXG4gICAgbG9jYWxBcHBseTogKChkYXRhOiBUW10pID0+IFRbXSksXG4gICAgbG9jYWxTb3J0OiAoKGRhdGE6IFRbXSwgc29ydHM6IFNvcnRbXSkgPT4gVFtdKVxuICApIHtcbiAgICBzdXBlcihkYXRhU291cmNlLCBpbmRleEZuLCBsb2NhbEFwcGx5LCBsb2NhbFNvcnQpO1xuICAgIHRoaXMuX3BhZ2UgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFBhZ2VSZXF1ZXN0PihuZXcgUGFnZVJlcXVlc3QoMCwgcGFnZVNpemUpKTtcbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBQcm9wZXJ0aWVzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHB1YmxpYyBnZXQgZGF0YVNvdXJjZSgpOiBJUGFnZWREYXRhU291cmNlPFQ+IHtcbiAgICByZXR1cm4gPElQYWdlZERhdGFTb3VyY2U8VD4+c3VwZXIuZGF0YVNvdXJjZTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgcGFnZSgpOiBPYnNlcnZhYmxlPFBhZ2VSZXF1ZXN0PiB7XG4gICAgcmV0dXJuIHRoaXMuX3BhZ2UuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IHBhZ2VTbmFwc2hvdCgpOiBQYWdlUmVxdWVzdCB7XG4gICAgcmV0dXJuIHRoaXMuX3BhZ2UuZ2V0VmFsdWUoKTtcbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBQdWJsaWMgQVBJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIC8qKlxuICAgKiBTZXQgdGhlIGN1cnJlbnQgcGFnZSBpbmRleCBhbmQgcmVsb2FkLlxuICAgKiBAcGFyYW0gcGFnZUluZGV4XG4gICAqL1xuICBwdWJsaWMgc2V0QWN0aXZlSW5kZXgocGFnZUluZGV4OiBudW1iZXIpIHtcbiAgICB0aGlzLnNldEFjdGl2ZVBhZ2UobmV3IFBhZ2VSZXF1ZXN0KHBhZ2VJbmRleCwgdGhpcy5wYWdlU25hcHNob3Quc2l6ZSkpO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldHMgdGhlIGN1cnJlbnQgcGFnZSBpbmRleCAvIHNpemUgYW5kIHJlbG9hZC5cbiAgICovXG4gIHB1YmxpYyBzZXRBY3RpdmVQYWdlKHJlcXVlc3Q6IFBhZ2VSZXF1ZXN0KSB7XG5cbiAgICB0aGlzLmFjdGxvZ2dlci50cmFjZSgnU2V0dGluZyBwYWdlIHRvICcsIHJlcXVlc3QpO1xuXG4gICAgaWYgKCFyZXF1ZXN0KSB7IHRocm93IG5ldyBFcnJvcignU2V0dGluZyBwYWdlIFBhZ2VSZXF1ZXN0IG11c3Qgbm90IGJlIG51bGwhJyk7IH1cblxuICAgIGxldCBoYXNDaGFuZ2UgPSBmYWxzZTtcblxuICAgIGNvbnN0IHBhZ2UgPSB0aGlzLnBhZ2VTbmFwc2hvdDtcblxuICAgIGlmIChwYWdlLmluZGV4ICE9PSByZXF1ZXN0LmluZGV4KSB7XG4gICAgICBoYXNDaGFuZ2UgPSB0cnVlO1xuICAgIH0gZWxzZSBpZiAocGFnZS5zaXplICE9PSByZXF1ZXN0LnNpemUpIHtcbiAgICAgIGhhc0NoYW5nZSA9IHRydWU7XG4gICAgfVxuXG4gICAgaWYgKGhhc0NoYW5nZSkge1xuICAgICAgdGhpcy5fcGFnZS5uZXh0KHJlcXVlc3QpO1xuICAgICAgdGhpcy5yZWxvYWQoKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgY2xvc2UoKTogdm9pZCB7XG4gICAgc3VwZXIuY2xvc2UoKTtcbiAgICBpZiAodGhpcy5fYWN0aXZlUGFnZUNoYW5nZWRTdWIpIHtcbiAgICAgIHRoaXMuX2FjdGl2ZVBhZ2VDaGFuZ2VkU3ViLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuICB9XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIFByaXZhdGUgbWV0aG9kcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgcHJvdGVjdGVkIGNsZWFyQWxsKCk6IHZvaWQge1xuICAgIHN1cGVyLmNsZWFyQWxsKCk7XG4gICAgdGhpcy5zZXRBY3RpdmVJbmRleCgwKTtcbiAgfVxuXG4gIHByb3RlY3RlZCByZWxvYWRJbnRlcm5hbCgpOiBPYnNlcnZhYmxlPGFueT4ge1xuXG4gICAgaWYgKHRoaXMuX2FjdGl2ZVBhZ2VMb2FkKSB7XG4gICAgICAvLyBDYW5jZWwgcHJldmlvdXMgcGVuZGluZyByZXF1ZXN0XG4gICAgICB0aGlzLl9hY3RpdmVQYWdlTG9hZC51bnN1YnNjcmliZSgpO1xuICAgIH1cblxuICAgIGNvbnN0IHN1YmplY3QgPSBuZXcgU3ViamVjdDxhbnk+KCk7XG5cbiAgICB0aGlzLm9uTG9hZGluZygpO1xuICAgIGNvbnN0IHBhZ2UgPSB0aGlzLnBhZ2VTbmFwc2hvdDtcbiAgICBjb25zdCBwYWdlUmVxdWVzdCA9IG5ldyBQYWdlYWJsZShwYWdlLmluZGV4LCBwYWdlLnNpemUsIHRoaXMuc29ydC5zb3J0c1NuYXBzaG90KTtcblxuXG4gICAgdGhpcy5fYWN0aXZlUGFnZUxvYWQgPSB0aGlzLmRhdGFTb3VyY2UuZmluZEFsbFBhZ2VkKHBhZ2VSZXF1ZXN0LCB0aGlzLmZpbHRlci5maWx0ZXJzU25hcHNob3QpXG4gICAgICAucGlwZShmaXJzdCgpKVxuICAgICAgLnN1YnNjcmliZShcbiAgICAgICAgc3VjY2VzcyA9PiB7XG4gICAgICAgICAgdGhpcy5zZXRUb3RhbChzdWNjZXNzLnRvdGFsRWxlbWVudHMpO1xuICAgICAgICAgIHRoaXMuc2V0RGF0YShzdWNjZXNzLmNvbnRlbnQpO1xuICAgICAgICAgIHN1YmplY3QubmV4dChzdWNjZXNzKTtcbiAgICAgICAgICB0aGlzLm9uSWRsZSgpO1xuICAgICAgICB9LCBlcnIgPT4ge1xuICAgICAgICAgIHRoaXMuc2V0RGF0YShbXSk7XG4gICAgICAgICAgdGhpcy5hY3Rsb2dnZXIuZXJyb3IoJ0ZhaWxlZCB0byBxdWVyeSBkYXRhJywgZXJyKTtcbiAgICAgICAgICBzdWJqZWN0LmVycm9yKGVycik7XG4gICAgICAgICAgdGhpcy5vbkVycm9yKGVycik7XG4gICAgICAgIH0sICgpID0+IHtcbiAgICAgICAgICB0aGlzLm9uSWRsZSgpO1xuICAgICAgICB9KTtcblxuICAgIHJldHVybiBzdWJqZWN0LnBpcGUoZmlyc3QoKSk7XG4gIH1cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogRXZlbnQgaGFuZGxlcnMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICAvKipcbiAgICogT2NjdXJzIHdoZW4gdGhlIHNvcnRzIHByb3BlcnR5IGhhcyBjaGFuZ2VkLlxuICAgKi9cbiAgcHJvdGVjdGVkIG9uU29ydHNDaGFuZ2VkKHNvcnRzOiBTb3J0W10pOiB2b2lkIHtcbiAgICB0aGlzLnNldEFjdGl2ZUluZGV4KDApO1xuICAgIHN1cGVyLm9uU29ydHNDaGFuZ2VkKHNvcnRzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBPY2N1cnMgd2hlbiB0aGUgZmlsdGVyc1NuYXBzaG90IHByb3BlcnR5IGhhcyBjaGFuZ2VkLlxuICAgKi9cbiAgcHJvdGVjdGVkIG9uRmlsdGVyc0NoYW5nZWQoZmlsdGVyczogRmlsdGVyW10pOiB2b2lkIHtcbiAgICB0aGlzLnNldEFjdGl2ZUluZGV4KDApO1xuICAgIHN1cGVyLm9uRmlsdGVyc0NoYW5nZWQoZmlsdGVycyk7XG4gIH1cbn1cblxuIl19
|
|
130
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1jb250ZXh0LWFjdGl2ZS1wYWdlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZWxkZXJieXRlL25neC1zdGFydGVyL3NyYy9saWIvY29tbW9uL2RhdGEvZGF0YS1jb250ZXh0L2RhdGEtY29udGV4dC1hY3RpdmUtcGFnZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFDcEQsT0FBTyxFQUFPLFFBQVEsRUFBRSxXQUFXLEVBQUMsTUFBTSxTQUFTLENBQUM7QUFFcEQsT0FBTyxFQUFTLGFBQWEsRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBQzNELE9BQU8sRUFBQyxlQUFlLEVBQWMsT0FBTyxFQUFlLE1BQU0sTUFBTSxDQUFDO0FBQ3hFLE9BQU8sRUFBQyxLQUFLLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUtyQyxNQUFNLE9BQU8scUJBQXlCLFNBQVEsZUFBa0I7SUF3QjlEOzs7O2dGQUk0RTtJQUc1RSxZQUNFLFVBQStCLEVBQy9CLFFBQWdCLEVBQ2hCLE9BQTJCLEVBQzNCLFVBQWdDLEVBQ2hDLFNBQThDO1FBRTlDLEtBQUssQ0FBQyxVQUFVLEVBQUUsT0FBTyxFQUFFLFVBQVUsRUFBRSxTQUFTLENBQUMsQ0FBQztRQXBDcEQ7Ozs7b0ZBSTRFO1FBRTNELGNBQVMsR0FBVyxhQUFhLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUM7UUErQmxGLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxlQUFlLENBQWMsSUFBSSxXQUFXLENBQUMsQ0FBQyxFQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUM7SUFDOUUsQ0FBQztJQUVEOzs7O2dGQUk0RTtJQUU1RSxJQUFXLFVBQVU7UUFDbkIsT0FBNEIsS0FBSyxDQUFDLFVBQVUsQ0FBQztJQUMvQyxDQUFDO0lBRUQsSUFBVyxJQUFJ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QyxzQkFBc0IsRUFBRSxHQUFHLENBQUMsQ0FBQztZQUNsRCxPQUFPLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ25CLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDcEIsQ0FBQyxFQUFFLEdBQUcsRUFBRTtZQUNOLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNoQixDQUFDLENBQUMsQ0FBQztRQUVQLE9BQU8sT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDO0lBQy9CLENBQUM7SUFFRDs7OztnRkFJNEU7SUFFNUU7O09BRUc7SUFDTyxjQUFjLENBQUMsS0FBYTtRQUNwQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3ZCLEtBQUssQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDOUIsQ0FBQztJQUVEOztPQUVHO0lBQ08sZ0JBQWdCLENBQUMsT0FBaUI7UUFDMUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN2QixLQUFLLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDbEMsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtEYXRhQ29udGV4dEJhc2V9IGZyb20gJy4vZGF0YS1jb250ZXh0LWJhc2UnO1xuaW1wb3J0IHtQYWdlLCBQYWdlYWJsZSwgUGFnZVJlcXVlc3R9IGZyb20gJy4uL3BhZ2UnO1xuaW1wb3J0IHtGaWx0ZXJ9IGZyb20gJy4uL2ZpbHRlcic7XG5pbXBvcnQge0xvZ2dlciwgTG9nZ2VyRmFjdG9yeX0gZnJvbSAnQGVsZGVyYnl0ZS90cy1sb2dnZXInO1xuaW1wb3J0IHtCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUsIFN1YmplY3QsIFN1YnNjcmlwdGlvbn0gZnJvbSAncnhqcyc7XG5pbXBvcnQge2ZpcnN0fSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQge0lEYXRhQ29udGV4dEFjdGl2ZVBhZ2V9IGZyb20gJy4vZGF0YS1jb250ZXh0JztcbmltcG9ydCB7U29ydH0gZnJvbSAnLi4vc29ydCc7XG5pbXBvcnQge0lQYWdlZERhdGFTb3VyY2V9IGZyb20gJy4uL2RhdGFzb3VyY2UvZGF0YS1zb3VyY2UnO1xuXG5leHBvcnQgY2xhc3MgRGF0YUNvbnRleHRBY3RpdmVQYWdlPFQ+IGV4dGVuZHMgRGF0YUNvbnRleHRCYXNlPFQ+IGltcGxlbWVudHMgSURhdGFDb250ZXh0QWN0aXZlUGFnZTxUPiB7XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIEZpZWxkcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgcHJpdmF0ZSByZWFkb25seSBhY3Rsb2dnZXI6IExvZ2dlciA9IExvZ2dlckZhY3RvcnkuZ2V0TG9nZ2VyKHRoaXMuY29uc3RydWN0b3IubmFtZSk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBfcGFnZTogQmVoYXZpb3JTdWJqZWN0PFBhZ2VSZXF1ZXN0PjtcblxuICAvKipcbiAgICogU3Vic2NyaXB0aW9uIHRvIHRoZSBldmVudCB3aGVuIHRoZSBhY3RpdmUgcGFnZSBoYXMgY2hhbmdlZC5cbiAgICogVGhpcyB3aWxsIHRyaWdnZXIgYSBwYWdlIHJlbG9hZC5cbiAgICovXG4gIHByaXZhdGUgX2FjdGl2ZVBhZ2VDaGFuZ2VkU3ViOiBTdWJzY3JpcHRpb247XG5cbiAgLyoqXG4gICAqIFN1YnNjcmlwdGlvbiBvZiBhbiBhY3R1YWwgcGFnZSBsb2FkIGh0dHAgcmVxdWVzdC5cbiAgICogSWYgdGhpcyBpcyBjbG9zZWQsIGl0IHdpbGwgY2FuY2VsIHRoZSBodHRwIHJlcXVlc3QuXG4gICAqL1xuICBwcml2YXRlIF9hY3RpdmVQYWdlTG9hZDogU3Vic2NyaXB0aW9uO1xuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBDb25zdHJ1Y3RvciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG5cbiAgY29uc3RydWN0b3IoXG4gICAgZGF0YVNvdXJjZTogSVBhZ2VkRGF0YVNvdXJjZTxUPixcbiAgICBwYWdlU2l6ZTogbnVtYmVyLFxuICAgIGluZGV4Rm46ICgoaXRlbTogVCkgPT4gYW55KSxcbiAgICBsb2NhbEFwcGx5OiAoKGRhdGE6IFRbXSkgPT4gVFtdKSxcbiAgICBsb2NhbFNvcnQ6ICgoZGF0YTogVFtdLCBzb3J0czogU29ydFtdKSA9PiBUW10pXG4gICkge1xuICAgIHN1cGVyKGRhdGFTb3VyY2UsIGluZGV4Rm4sIGxvY2FsQXBwbHksIGxvY2FsU29ydCk7XG4gICAgdGhpcy5fcGFnZSA9IG5ldyBCZWhhdmlvclN1YmplY3Q8UGFnZVJlcXVlc3Q+KG5ldyBQYWdlUmVxdWVzdCgwLCBwYWdlU2l6ZSkpO1xuICB9XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIFByb3BlcnRpZXMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgcHVibGljIGdldCBkYXRhU291cmNlKCk6IElQYWdlZERhdGFTb3VyY2U8VD4ge1xuICAgIHJldHVybiA8SVBhZ2VkRGF0YVNvdXJjZTxUPj5zdXBlci5kYXRhU291cmNlO1xuICB9XG5cbiAgcHVibGljIGdldCBwYWdlKCk6IE9ic2VydmFibGU8UGFnZVJlcXVlc3Q+IHtcbiAgICByZXR1cm4gdGhpcy5fcGFnZS5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgcGFnZVNuYXBzaG90KCk6IFBhZ2VSZXF1ZXN0IHtcbiAgICByZXR1cm4gdGhpcy5fcGFnZS5nZXRWYWx1ZSgpO1xuICB9XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIFB1YmxpYyBBUEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgLyoqXG4gICAqIFNldCB0aGUgY3VycmVudCBwYWdlIGluZGV4IGFuZCByZWxvYWQuXG4gICAqIEBwYXJhbSBwYWdlSW5kZXhcbiAgICovXG4gIHB1YmxpYyBzZXRBY3RpdmVJbmRleChwYWdlSW5kZXg6IG51bWJlcikge1xuICAgIHRoaXMuc2V0QWN0aXZlUGFnZShuZXcgUGFnZVJlcXVlc3QocGFnZUluZGV4LCB0aGlzLnBhZ2VTbmFwc2hvdC5zaXplKSk7XG4gIH1cblxuICAvKipcbiAgICogU2V0cyB0aGUgY3VycmVudCBwYWdlIGluZGV4IC8gc2l6ZSBhbmQgcmVsb2FkLlxuICAgKi9cbiAgcHVibGljIHNldEFjdGl2ZVBhZ2UocmVxdWVzdDogUGFnZVJlcXVlc3QpIHtcblxuICAgIHRoaXMuYWN0bG9nZ2VyLnRyYWNlKCdTZXR0aW5nIHBhZ2UgdG8gJywgcmVxdWVzdCk7XG5cbiAgICBpZiAoIXJlcXVlc3QpIHsgdGhyb3cgbmV3IEVycm9yKCdTZXR0aW5nIHBhZ2UgUGFnZVJlcXVlc3QgbXVzdCBub3QgYmUgbnVsbCEnKTsgfVxuXG4gICAgbGV0IGhhc0NoYW5nZSA9IGZhbHNlO1xuXG4gICAgY29uc3QgcGFnZSA9IHRoaXMucGFnZVNuYXBzaG90O1xuXG4gICAgaWYgKHBhZ2UuaW5kZXggIT09IHJlcXVlc3QuaW5kZXgpIHtcbiAgICAgIGhhc0NoYW5nZSA9IHRydWU7XG4gICAgfSBlbHNlIGlmIChwYWdlLnNpemUgIT09IHJlcXVlc3Quc2l6ZSkge1xuICAgICAgaGFzQ2hhbmdlID0gdHJ1ZTtcbiAgICB9XG5cbiAgICBpZiAoaGFzQ2hhbmdlKSB7XG4gICAgICB0aGlzLl9wYWdlLm5leHQocmVxdWVzdCk7XG4gICAgICB0aGlzLnJlbG9hZCgpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBjbG9zZSgpOiB2b2lkIHtcbiAgICBzdXBlci5jbG9zZSgpO1xuICAgIGlmICh0aGlzLl9hY3RpdmVQYWdlQ2hhbmdlZFN1Yikge1xuICAgICAgdGhpcy5fYWN0aXZlUGFnZUNoYW5nZWRTdWIudW5zdWJzY3JpYmUoKTtcbiAgICB9XG4gIH1cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogUHJpdmF0ZSBtZXRob2RzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBwcm90ZWN0ZWQgY2xlYXJBbGwoKTogdm9pZCB7XG4gICAgc3VwZXIuY2xlYXJBbGwoKTtcbiAgICB0aGlzLnNldEFjdGl2ZUluZGV4KDApO1xuICB9XG5cbiAgcHJvdGVjdGVkIHJlbG9hZEludGVybmFsKCk6IE9ic2VydmFibGU8YW55PiB7XG5cbiAgICBpZiAodGhpcy5fYWN0aXZlUGFnZUxvYWQpIHtcbiAgICAgIC8vIENhbmNlbCBwcmV2aW91cyBwZW5kaW5nIHJlcXVlc3RcbiAgICAgIHRoaXMuX2FjdGl2ZVBhZ2VMb2FkLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuXG4gICAgY29uc3Qgc3ViamVjdCA9IG5ldyBTdWJqZWN0PGFueT4oKTtcblxuICAgIHRoaXMub25Mb2FkaW5nKCk7XG4gICAgY29uc3QgcGFnZSA9IHRoaXMucGFnZVNuYXBzaG90O1xuICAgIGNvbnN0IHBhZ2VSZXF1ZXN0ID0gbmV3IFBhZ2VhYmxlKHBhZ2UuaW5kZXgsIHBhZ2Uuc2l6ZSwgdGhpcy5zb3J0LnNvcnRzU25hcHNob3QpO1xuXG5cbiAgICB0aGlzLl9hY3RpdmVQYWdlTG9hZCA9IHRoaXMuZGF0YVNvdXJjZS5maW5kQWxsUGFnZWQocGFnZVJlcXVlc3QsIHRoaXMuZmlsdGVyLmZpbHRlcnNTbmFwc2hvdClcbiAgICAgIC5waXBlKGZpcnN0KCkpXG4gICAgICAuc3Vic2NyaWJlKFxuICAgICAgICBzdWNjZXNzID0+IHtcbiAgICAgICAgICB0aGlzLnNldFRvdGFsKHN1Y2Nlc3MudG90YWxFbGVtZW50cyk7XG4gICAgICAgICAgdGhpcy5zZXREYXRhKHN1Y2Nlc3MuY29udGVudCk7XG4gICAgICAgICAgc3ViamVjdC5uZXh0KHN1Y2Nlc3MpO1xuICAgICAgICAgIHRoaXMub25JZGxlKCk7XG4gICAgICAgIH0sIGVyciA9PiB7XG4gICAgICAgICAgdGhpcy5zZXREYXRhKFtdKTtcbiAgICAgICAgICB0aGlzLmFjdGxvZ2dlci5lcnJvcignRmFpbGVkIHRvIHF1ZXJ5IGRhdGEnLCBlcnIpO1xuICAgICAgICAgIHN1YmplY3QuZXJyb3IoZXJyKTtcbiAgICAgICAgICB0aGlzLm9uRXJyb3IoZXJyKTtcbiAgICAgICAgfSwgKCkgPT4ge1xuICAgICAgICAgIHRoaXMub25JZGxlKCk7XG4gICAgICAgIH0pO1xuXG4gICAgcmV0dXJuIHN1YmplY3QucGlwZShmaXJzdCgpKTtcbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBFdmVudCBoYW5kbGVycyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIC8qKlxuICAgKiBPY2N1cnMgd2hlbiB0aGUgc29ydHMgcHJvcGVydHkgaGFzIGNoYW5nZWQuXG4gICAqL1xuICBwcm90ZWN0ZWQgb25Tb3J0c0NoYW5nZWQoc29ydHM6IFNvcnRbXSk6IHZvaWQge1xuICAgIHRoaXMuc2V0QWN0aXZlSW5kZXgoMCk7XG4gICAgc3VwZXIub25Tb3J0c0NoYW5nZWQoc29ydHMpO1xuICB9XG5cbiAgLyoqXG4gICAqIE9jY3VycyB3aGVuIHRoZSBmaWx0ZXJzU25hcHNob3QgcHJvcGVydHkgaGFzIGNoYW5nZWQuXG4gICAqL1xuICBwcm90ZWN0ZWQgb25GaWx0ZXJzQ2hhbmdlZChmaWx0ZXJzOiBGaWx0ZXJbXSk6IHZvaWQge1xuICAgIHRoaXMuc2V0QWN0aXZlSW5kZXgoMCk7XG4gICAgc3VwZXIub25GaWx0ZXJzQ2hhbmdlZChmaWx0ZXJzKTtcbiAgfVxufVxuXG4iXX0=
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import { RequiredFilterEvaluator } from '../required-filter-evaluator';
|
|
2
|
+
import { DataContextLifeCycleBinding } from './data-context-life-cycle-binding';
|
|
3
|
+
import { filter, map } from 'rxjs/operators';
|
|
4
|
+
import { LoggerFactory } from '@elderbyte/ts-logger';
|
|
5
|
+
export class AutoStartSpec {
|
|
6
|
+
constructor(requiredFilters, initialSort) {
|
|
7
|
+
this.requiredFilters = requiredFilters;
|
|
8
|
+
this.initialSort = initialSort;
|
|
9
|
+
}
|
|
10
|
+
static asap(sort) {
|
|
11
|
+
return new AutoStartSpec(null, sort);
|
|
12
|
+
}
|
|
13
|
+
static requireFiltersAll(filters, sort) {
|
|
14
|
+
return AutoStartSpec.requireFilters([filters], sort);
|
|
15
|
+
}
|
|
16
|
+
static requireFiltersAny(filters, sort) {
|
|
17
|
+
const separateFilterArrays = filters.map(singleFilter => [singleFilter]);
|
|
18
|
+
return AutoStartSpec.requireFilters(separateFilterArrays, sort);
|
|
19
|
+
}
|
|
20
|
+
static requireFilters(filters, sort) {
|
|
21
|
+
return new AutoStartSpec(filters, sort);
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
export class DataContextAutoStarter extends DataContextLifeCycleBinding {
|
|
25
|
+
/***************************************************************************
|
|
26
|
+
* *
|
|
27
|
+
* Constructor *
|
|
28
|
+
* *
|
|
29
|
+
**************************************************************************/
|
|
30
|
+
constructor(dataContext, _autoStartSpec) {
|
|
31
|
+
super(dataContext);
|
|
32
|
+
this._autoStartSpec = _autoStartSpec;
|
|
33
|
+
/***************************************************************************
|
|
34
|
+
* *
|
|
35
|
+
* Fields *
|
|
36
|
+
* *
|
|
37
|
+
**************************************************************************/
|
|
38
|
+
this.logger = LoggerFactory.getLogger(this.constructor.name);
|
|
39
|
+
if (_autoStartSpec == null) {
|
|
40
|
+
throw new Error('autoStartSpec must not be null!');
|
|
41
|
+
}
|
|
42
|
+
if (_autoStartSpec.requiredFilters) {
|
|
43
|
+
this._autoStartConditionFulfilled$ = this.buildRequiredFilterConditionObservable();
|
|
44
|
+
}
|
|
45
|
+
else {
|
|
46
|
+
// no condition defined, try to start immediately
|
|
47
|
+
this.startDataContext();
|
|
48
|
+
}
|
|
49
|
+
this.subscribe();
|
|
50
|
+
}
|
|
51
|
+
/***************************************************************************
|
|
52
|
+
* *
|
|
53
|
+
* Public API *
|
|
54
|
+
* *
|
|
55
|
+
**************************************************************************/
|
|
56
|
+
subscribe() {
|
|
57
|
+
if (this._autoStartConditionFulfilled$) {
|
|
58
|
+
this._subscription = this._autoStartConditionFulfilled$.pipe(filter(fulfilled => !!fulfilled)).subscribe(() => this.startDataContext());
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
/***************************************************************************
|
|
62
|
+
* *
|
|
63
|
+
* Private methods *
|
|
64
|
+
* *
|
|
65
|
+
**************************************************************************/
|
|
66
|
+
buildRequiredFilterConditionObservable() {
|
|
67
|
+
return new RequiredFilterEvaluator(this._dataContext.filter, this._autoStartSpec.requiredFilters).context$.pipe(map(event => event.isValid));
|
|
68
|
+
}
|
|
69
|
+
startDataContext() {
|
|
70
|
+
this.logger.debug('Auto starting data context...');
|
|
71
|
+
this._dataContext.start(this._autoStartSpec.initialSort);
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1jb250ZXh0LWF1dG8tc3RhcnRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VsZGVyYnl0ZS9uZ3gtc3RhcnRlci9zcmMvbGliL2NvbW1vbi9kYXRhL2RhdGEtY29udGV4dC9kYXRhLWNvbnRleHQtYXV0by1zdGFydGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBQyx1QkFBdUIsRUFBQyxNQUFNLDhCQUE4QixDQUFDO0FBQ3JFLE9BQU8sRUFBQywyQkFBMkIsRUFBQyxNQUFNLG1DQUFtQyxDQUFDO0FBRTlFLE9BQU8sRUFBQyxNQUFNLEVBQUUsR0FBRyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDM0MsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBR25ELE1BQU0sT0FBTyxhQUFhO0lBbUJ4QixZQUNTLGVBQWlDLEVBQ2pDLFdBQW9CO1FBRHBCLG9CQUFlLEdBQWYsZUFBZSxDQUFrQjtRQUNqQyxnQkFBVyxHQUFYLFdBQVcsQ0FBUztJQUU3QixDQUFDO0lBckJNLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBYTtRQUM5QixPQUFPLElBQUksYUFBYSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQztJQUN2QyxDQUFDO0lBRU0sTUFBTSxDQUFDLGlCQUFpQixDQUFDLE9BQWlCLEVBQUUsSUFBYTtRQUM5RCxPQUFPLGFBQWEsQ0FBQyxjQUFjLENBQUMsQ0FBQyxPQUFPLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUN2RCxDQUFDO0lBRU0sTUFBTSxDQUFDLGlCQUFpQixDQUFDLE9BQWlCLEVBQUUsSUFBYTtRQUM5RCxNQUFNLG9CQUFvQixHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUM7UUFDekUsT0FBTyxhQUFhLENBQUMsY0FBYyxDQUFDLG9CQUFvQixFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ2xFLENBQUM7SUFFTSxNQUFNLENBQUMsY0FBYyxDQUFDLE9BQXdCLEVBQUUsSUFBYTtRQUNsRSxPQUFPLElBQUksYUFBYSxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsQ0FBQztJQUMxQyxDQUFDO0NBT0Y7QUFFRCxNQUFNLE9BQU8sc0JBQXVCLFNBQVEsMkJBQTJCO0lBWXJFOzs7O2dGQUk0RTtJQUU1RSxZQUNFLFdBQThCLEVBQ2IsY0FBNkI7UUFFOUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBRkYsbUJBQWMsR0FBZCxjQUFjLENBQWU7UUFsQmhEOzs7O29GQUk0RTtRQUUzRCxXQUFNLEdBQUcsYUFBYSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBZ0J2RSxJQUFJLGNBQWMsSUFBSSxJQUFJLEVBQUU7WUFDMUIsTUFBTSxJQUFJLEtBQUssQ0FBQyxpQ0FBaUMsQ0FBQyxDQUFDO1NBQ3BEO1FBRUQsSUFBSSxjQUFjLENBQUMsZUFBZSxFQUFFO1lBQ2xDLElBQUksQ0FBQyw2QkFBNkIsR0FBRyxJQUFJLENBQUMsc0NBQXNDLEVBQUUsQ0FBQztTQUNwRjthQUFNO1lBQ0wsaURBQWlEO1lBQ2pELElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1NBQ3pCO1FBRUQsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO0lBQ25CLENBQUM7SUFFRDs7OztnRkFJNEU7SUFFbEUsU0FBUztRQUNqQixJQUFJLElBQUksQ0FBQyw2QkFBNkIsRUFBRTtZQUN0QyxJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyw2QkFBNkIsQ0FBQyxJQUFJLENBQzFELE1BQU0sQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FDakMsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUMsQ0FBQztTQUM1QztJQUNILENBQUM7SUFFRDs7OztnRkFJNEU7SUFFcEUsc0NBQXNDO1FBQzVDLE9BQU8sSUFBSSx1QkFBdUIsQ0FDaEMsSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLEVBQ3hCLElBQUksQ0FBQyxjQUFjLENBQUMsZUFBZSxDQUNwQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQ2IsR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUM1QixDQUFDO0lBQ0osQ0FBQztJQUVPLGdCQUFnQjtRQUN0QixJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQywrQkFBK0IsQ0FBQyxDQUFDO1FBQ25ELElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDM0QsQ0FBQztDQUVGIiwic291cmNlc0NvbnRlbnQiOlsiXG5pbXBvcnQge0lEYXRhQ29udGV4dH0gZnJvbSAnLi9kYXRhLWNvbnRleHQnO1xuaW1wb3J0IHtSZXF1aXJlZEZpbHRlckV2YWx1YXRvcn0gZnJvbSAnLi4vcmVxdWlyZWQtZmlsdGVyLWV2YWx1YXRvcic7XG5pbXBvcnQge0RhdGFDb250ZXh0TGlmZUN5Y2xlQmluZGluZ30gZnJvbSAnLi9kYXRhLWNvbnRleHQtbGlmZS1jeWNsZS1iaW5kaW5nJztcbmltcG9ydCB7T2JzZXJ2YWJsZX0gZnJvbSAncnhqcyc7XG5pbXBvcnQge2ZpbHRlciwgbWFwfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQge0xvZ2dlckZhY3Rvcnl9IGZyb20gJ0BlbGRlcmJ5dGUvdHMtbG9nZ2VyJztcbmltcG9ydCB7U29ydH0gZnJvbSAnLi4vc29ydCc7XG5cbmV4cG9ydCBjbGFzcyBBdXRvU3RhcnRTcGVjIHtcblxuICBwdWJsaWMgc3RhdGljIGFzYXAoc29ydD86IFNvcnRbXSk6IEF1dG9TdGFydFNwZWMge1xuICAgIHJldHVybiBuZXcgQXV0b1N0YXJ0U3BlYyhudWxsLCBzb3J0KTtcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgcmVxdWlyZUZpbHRlcnNBbGwoZmlsdGVyczogc3RyaW5nW10sIHNvcnQ/OiBTb3J0W10pOiBBdXRvU3RhcnRTcGVjIHtcbiAgICByZXR1cm4gQXV0b1N0YXJ0U3BlYy5yZXF1aXJlRmlsdGVycyhbZmlsdGVyc10sIHNvcnQpO1xuICB9XG5cbiAgcHVibGljIHN0YXRpYyByZXF1aXJlRmlsdGVyc0FueShmaWx0ZXJzOiBzdHJpbmdbXSwgc29ydD86IFNvcnRbXSk6IEF1dG9TdGFydFNwZWMge1xuICAgIGNvbnN0IHNlcGFyYXRlRmlsdGVyQXJyYXlzID0gZmlsdGVycy5tYXAoc2luZ2xlRmlsdGVyID0+IFtzaW5nbGVGaWx0ZXJdKTtcbiAgICByZXR1cm4gQXV0b1N0YXJ0U3BlYy5yZXF1aXJlRmlsdGVycyhzZXBhcmF0ZUZpbHRlckFycmF5cywgc29ydCk7XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIHJlcXVpcmVGaWx0ZXJzKGZpbHRlcnM6IEFycmF5PHN0cmluZ1tdPiwgc29ydD86IFNvcnRbXSk6IEF1dG9TdGFydFNwZWMge1xuICAgIHJldHVybiBuZXcgQXV0b1N0YXJ0U3BlYyhmaWx0ZXJzLCBzb3J0KTtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyByZXF1aXJlZEZpbHRlcnM/OiBBcnJheTxzdHJpbmdbXT4sXG4gICAgcHVibGljIGluaXRpYWxTb3J0PzogU29ydFtdXG4gICkge1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBEYXRhQ29udGV4dEF1dG9TdGFydGVyIGV4dGVuZHMgRGF0YUNvbnRleHRMaWZlQ3ljbGVCaW5kaW5nIHtcblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogRmllbGRzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBwcml2YXRlIHJlYWRvbmx5IGxvZ2dlciA9IExvZ2dlckZhY3RvcnkuZ2V0TG9nZ2VyKHRoaXMuY29uc3RydWN0b3IubmFtZSk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBfYXV0b1N0YXJ0Q29uZGl0aW9uRnVsZmlsbGVkJDogT2JzZXJ2YWJsZTxib29sZWFuPjtcblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogQ29uc3RydWN0b3IgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBjb25zdHJ1Y3RvcihcbiAgICBkYXRhQ29udGV4dDogSURhdGFDb250ZXh0PGFueT4sXG4gICAgcHJpdmF0ZSByZWFkb25seSBfYXV0b1N0YXJ0U3BlYzogQXV0b1N0YXJ0U3BlY1xuICApIHtcbiAgICBzdXBlcihkYXRhQ29udGV4dCk7XG5cbiAgICBpZiAoX2F1dG9TdGFydFNwZWMgPT0gbnVsbCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdhdXRvU3RhcnRTcGVjIG11c3Qgbm90IGJlIG51bGwhJyk7XG4gICAgfVxuXG4gICAgaWYgKF9hdXRvU3RhcnRTcGVjLnJlcXVpcmVkRmlsdGVycykge1xuICAgICAgdGhpcy5fYXV0b1N0YXJ0Q29uZGl0aW9uRnVsZmlsbGVkJCA9IHRoaXMuYnVpbGRSZXF1aXJlZEZpbHRlckNvbmRpdGlvbk9ic2VydmFibGUoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gbm8gY29uZGl0aW9uIGRlZmluZWQsIHRyeSB0byBzdGFydCBpbW1lZGlhdGVseVxuICAgICAgdGhpcy5zdGFydERhdGFDb250ZXh0KCk7XG4gICAgfVxuXG4gICAgdGhpcy5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBQdWJsaWMgQVBJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHByb3RlY3RlZCBzdWJzY3JpYmUoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuX2F1dG9TdGFydENvbmRpdGlvbkZ1bGZpbGxlZCQpIHtcbiAgICAgIHRoaXMuX3N1YnNjcmlwdGlvbiA9IHRoaXMuX2F1dG9TdGFydENvbmRpdGlvbkZ1bGZpbGxlZCQucGlwZShcbiAgICAgICAgZmlsdGVyKGZ1bGZpbGxlZCA9PiAhIWZ1bGZpbGxlZClcbiAgICAgICkuc3Vic2NyaWJlKCgpID0+IHRoaXMuc3RhcnREYXRhQ29udGV4dCgpKTtcbiAgICB9XG4gIH1cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogUHJpdmF0ZSBtZXRob2RzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBwcml2YXRlIGJ1aWxkUmVxdWlyZWRGaWx0ZXJDb25kaXRpb25PYnNlcnZhYmxlKCk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xuICAgIHJldHVybiBuZXcgUmVxdWlyZWRGaWx0ZXJFdmFsdWF0b3IoXG4gICAgICB0aGlzLl9kYXRhQ29udGV4dC5maWx0ZXIsXG4gICAgICB0aGlzLl9hdXRvU3RhcnRTcGVjLnJlcXVpcmVkRmlsdGVyc1xuICAgICkuY29udGV4dCQucGlwZShcbiAgICAgIG1hcChldmVudCA9PiBldmVudC5pc1ZhbGlkKVxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIHN0YXJ0RGF0YUNvbnRleHQoKSB7XG4gICAgdGhpcy5sb2dnZXIuZGVidWcoJ0F1dG8gc3RhcnRpbmcgZGF0YSBjb250ZXh0Li4uJyk7XG4gICAgdGhpcy5fZGF0YUNvbnRleHQuc3RhcnQodGhpcy5fYXV0b1N0YXJ0U3BlYy5pbml0aWFsU29ydCk7XG4gIH1cblxufVxuIl19
|
|
@@ -31,8 +31,8 @@ export class DataContextBase extends DataSource {
|
|
|
31
31
|
this._started = new BehaviorSubject(false);
|
|
32
32
|
this._closed = new BehaviorSubject(false);
|
|
33
33
|
this._primaryIndex = new Map();
|
|
34
|
-
this.unsubscribe$ = new Subject();
|
|
35
34
|
this._reloadQueue = new Subject();
|
|
35
|
+
this.unsubscribe$ = new Subject();
|
|
36
36
|
this._dataSource = dataSource;
|
|
37
37
|
this._loading = this._status.pipe(map(status => status.loading));
|
|
38
38
|
this._filter.filters.pipe(filter(() => this.started), takeUntil(this.unsubscribe$)).subscribe(filters => this.onFiltersChanged(filters));
|
|
@@ -102,6 +102,9 @@ export class DataContextBase extends DataSource {
|
|
|
102
102
|
get isStarted() {
|
|
103
103
|
return this.started;
|
|
104
104
|
}
|
|
105
|
+
get isStarted$() {
|
|
106
|
+
return this._started.asObservable();
|
|
107
|
+
}
|
|
105
108
|
get isClosed() {
|
|
106
109
|
return this._closed.getValue();
|
|
107
110
|
}
|
|
@@ -269,8 +272,13 @@ export class DataContextBase extends DataSource {
|
|
|
269
272
|
onStatus(status) {
|
|
270
273
|
this._status.next(status);
|
|
271
274
|
}
|
|
275
|
+
/***************************************************************************
|
|
276
|
+
* *
|
|
277
|
+
* Private methods *
|
|
278
|
+
* *
|
|
279
|
+
**************************************************************************/
|
|
272
280
|
clearIndex() {
|
|
273
281
|
this._primaryIndex.clear();
|
|
274
282
|
}
|
|
275
283
|
}
|
|
276
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1jb250ZXh0LWJhc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lbGRlcmJ5dGUvbmd4LXN0YXJ0ZXIvc3JjL2xpYi9jb21tb24vZGF0YS9kYXRhLWNvbnRleHQvZGF0YS1jb250ZXh0LWJhc2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFTLGFBQWEsRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBRzNELE9BQU8sRUFBbUIsVUFBVSxFQUFDLE1BQU0sMEJBQTBCLENBQUM7QUFDdEUsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0sdUJBQXVCLENBQUM7QUFDeEQsT0FBTyxFQUFDLGVBQWUsRUFBRSxLQUFLLEVBQWtCLE9BQU8sRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUNyRSxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sbUJBQW1CLENBQUM7QUFDaEQsT0FBTyxFQUFDLG1CQUFtQixFQUFlLE1BQU0sZ0JBQWdCLENBQUM7QUFDakUsT0FBTyxFQUFDLFVBQVUsRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUNoRixPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFJNUMsTUFBTSxPQUFnQixlQUFtQixTQUFRLFVBQWE7SUE4QjVEOzs7O2dGQUk0RTtJQUU1RSxZQUNFLFVBQTBCLEVBQ2xCLFFBQTRCLEVBQzVCLFdBQWlDLEVBQ2pDLFVBQStDO1FBRXZELEtBQUssRUFBRSxDQUFDO1FBSkEsYUFBUSxHQUFSLFFBQVEsQ0FBb0I7UUFDNUIsZ0JBQVcsR0FBWCxXQUFXLENBQXNCO1FBQ2pDLGVBQVUsR0FBVixVQUFVLENBQXFDO1FBdEN6RDs7OztvRkFJNEU7UUFFM0QsWUFBTyxHQUFXLGFBQWEsQ0FBQyxTQUFTLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUk3RCxZQUFPLEdB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QUMsT0FBTyxFQUFFLENBQUMsQ0FBQztJQUM3QyxDQUFDO0lBRVMsUUFBUSxDQUFDLE1BQXlCO1FBQzFDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQzVCLENBQUM7SUFrQk8sVUFBVTtRQUNoQixJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQzdCLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7TG9nZ2VyLCBMb2dnZXJGYWN0b3J5fSBmcm9tICdAZWxkZXJieXRlL3RzLWxvZ2dlcic7XG5pbXBvcnQge0ZpbHRlcn0gZnJvbSAnLi4vZmlsdGVyJztcbmltcG9ydCB7U29ydH0gZnJvbSAnLi4vc29ydCc7XG5pbXBvcnQge0NvbGxlY3Rpb25WaWV3ZXIsIERhdGFTb3VyY2V9IGZyb20gJ0Bhbmd1bGFyL2Nkay9jb2xsZWN0aW9ucyc7XG5pbXBvcnQge0RhdGFDb250ZXh0U3RhdHVzfSBmcm9tICcuL2RhdGEtY29udGV4dC1zdGF0dXMnO1xuaW1wb3J0IHtCZWhhdmlvclN1YmplY3QsIEVNUFRZLCBPYnNlcnZhYmxlLCBvZiwgU3ViamVjdH0gZnJvbSAncnhqcyc7XG5pbXBvcnQge0ZpbHRlckNvbnRleHR9IGZyb20gJy4uL2ZpbHRlci1jb250ZXh0JztcbmltcG9ydCB7RGF0YUNvbnRleHRTbmFwc2hvdCwgSURhdGFDb250ZXh0fSBmcm9tICcuL2RhdGEtY29udGV4dCc7XG5pbXBvcnQge2NhdGNoRXJyb3IsIGRlYm91bmNlVGltZSwgZmlsdGVyLCBtYXAsIHRha2VVbnRpbH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHtTb3J0Q29udGV4dH0gZnJvbSAnLi4vc29ydC1jb250ZXh0JztcbmltcG9ydCB7SURhdGFTb3VyY2V9IGZyb20gJy4uL2RhdGFzb3VyY2UvZGF0YS1zb3VyY2UnO1xuXG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBEYXRhQ29udGV4dEJhc2U8VD4gZXh0ZW5kcyBEYXRhU291cmNlPFQ+IGltcGxlbWVudHMgSURhdGFDb250ZXh0PFQ+IHtcblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogRmllbGRzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBwcml2YXRlIHJlYWRvbmx5IGJhc2Vsb2c6IExvZ2dlciA9IExvZ2dlckZhY3RvcnkuZ2V0TG9nZ2VyKCdEYXRhQ29udGV4dEJhc2UnKTtcblxuICBwcml2YXRlIHJlYWRvbmx5IF9kYXRhU291cmNlOiBJRGF0YVNvdXJjZTxUPjtcblxuICBwcml2YXRlIHJlYWRvbmx5IF9maWx0ZXIgPSBuZXcgRmlsdGVyQ29udGV4dCgpO1xuICBwcml2YXRlIHJlYWRvbmx5IF9zb3J0ID0gbmV3IFNvcnRDb250ZXh0KCk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBfbG9hZGluZzogT2JzZXJ2YWJsZTxib29sZWFuPjtcblxuICBwcml2YXRlIHJlYWRvbmx5IF9kYXRhID0gbmV3IEJlaGF2aW9yU3ViamVjdDxUW10+KFtdKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfdG90YWwgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PG51bWJlciB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfc3RhdHVzID0gbmV3IEJlaGF2aW9yU3ViamVjdDxEYXRhQ29udGV4dFN0YXR1cz4oRGF0YUNvbnRleHRTdGF0dXMuaWRsZSgpKTtcblxuICBwcml2YXRlIHJlYWRvbmx5IF9zdGFydGVkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihmYWxzZSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgX2Nsb3NlZCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgX3ByaW1hcnlJbmRleCA9IG5ldyBNYXA8YW55LCBUPigpO1xuXG4gIHByb3RlY3RlZCByZWFkb25seSB1bnN1YnNjcmliZSQgPSBuZXcgU3ViamVjdDxhbnk+KCk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBfcmVsb2FkUXVldWUgPSBuZXcgU3ViamVjdDxhbnk+KCk7XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIENvbnN0cnVjdG9yICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgcHJvdGVjdGVkIGNvbnN0cnVjdG9yKFxuICAgIGRhdGFTb3VyY2U6IElEYXRhU291cmNlPFQ+LFxuICAgIHByaXZhdGUgX2luZGV4Rm46ICgoaXRlbTogVCkgPT4gYW55KSxcbiAgICBwcml2YXRlIF9sb2NhbEFwcGx5OiAoKGRhdGE6IFRbXSkgPT4gVFtdKSxcbiAgICBwcml2YXRlIF9sb2NhbFNvcnQ6ICgoZGF0YTogVFtdLCBzb3J0czogU29ydFtdKSA9PiBUW10pXG4gICkge1xuICAgIHN1cGVyKCk7XG5cbiAgICB0aGlzLl9kYXRhU291cmNlID0gZGF0YVNvdXJjZTtcblxuICAgIHRoaXMuX2xvYWRpbmcgPSB0aGlzLl9zdGF0dXMucGlwZShcbiAgICAgIG1hcChzdGF0dXMgPT4gc3RhdHVzLmxvYWRpbmcpXG4gICAgKTtcblxuICAgIHRoaXMuX2ZpbHRlci5maWx0ZXJzLnBpcGUoXG4gICAgICBmaWx0ZXIoKCkgPT4gdGhpcy5zdGFydGVkKSxcbiAgICAgIHRha2VVbnRpbCh0aGlzLnVuc3Vic2NyaWJlJClcbiAgICApLnN1YnNjcmliZShcbiAgICAgIGZpbHRlcnMgPT4gdGhpcy5vbkZpbHRlcnNDaGFuZ2VkKGZpbHRlcnMpXG4gICAgKTtcblxuICAgIHRoaXMuX3NvcnQuc29ydHMucGlwZShcbiAgICAgIGZpbHRlcigoKSA9PiB0aGlzLnN0YXJ0ZWQpLFxuICAgICAgdGFrZVVudGlsKHRoaXMudW5zdWJzY3JpYmUkKVxuICAgICkuc3Vic2NyaWJlKFxuICAgICAgc29ydHMgPT4gdGhpcy5vblNvcnRzQ2hhbmdlZChzb3J0cylcbiAgICApO1xuXG4gICAgdGhpcy5fcmVsb2FkUXVldWUucGlwZShcbiAgICAgIGZpbHRlcigoKSA9PiB0aGlzLnN0YXJ0ZWQpLFxuICAgICAgZGVib3VuY2VUaW1lKDUwKSxcbiAgICAgIHRha2VVbnRpbCh0aGlzLnVuc3Vic2NyaWJlJCksXG4gICAgICBjYXRjaEVycm9yKGVyciA9PiB7ICAvLyBEb250IGRpZSBvbiBlcnJvcnNcbiAgICAgICAgdGhpcy5iYXNlbG9nLmVycm9yKCdSZWxvYWQgcXVldWUgZGV0ZWN0ZWQgZXJyb3IsIGJhZCEnLCBlcnIpO1xuICAgICAgICByZXR1cm4gRU1QVFk7XG4gICAgICB9KVxuICAgICkuc3Vic2NyaWJlKCgpID0+IHRoaXMucmVsb2FkTm93KCkpO1xuICAgIC8vIE1heWJlIHNraXBNYXAgdGhlIHJlYWwgcmVxdWVzdHMgZm9yIGF1dG8gYWJvcnQgcGVuZGluZyAoZXhjZXB0IGZvciBjb250aW51YXRpb24gLyBwYWdlZClcbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBQdWJsaWMgQVBJIE1hdGVyaWFsIERDICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHB1YmxpYyBjb25uZWN0KGNvbGxlY3Rpb25WaWV3ZXI6IENvbGxlY3Rpb25WaWV3ZXIpOiBPYnNlcnZhYmxlPFRbXT4ge1xuICAgIHJldHVybiB0aGlzLmRhdGE7XG4gIH1cblxuICBwdWJsaWMgZGlzY29ubmVjdChjb2xsZWN0aW9uVmlld2VyOiBDb2xsZWN0aW9uVmlld2VyKTogdm9pZCB7XG4gICAgLy8gdGhpcy5jbG9zZSgpOyBDbG9zaW5nIHdpbGwgZGVzdHJveSB0aGUgRENcbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBQcm9wZXJ0aWVzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHB1YmxpYyBnZXQgZGF0YVNvdXJjZSgpOiBJRGF0YVNvdXJjZTxUPiB7XG4gICAgcmV0dXJuIHRoaXMuX2RhdGFTb3VyY2U7XG4gIH1cblxuICBwdWJsaWMgZ2V0IHNuYXBzaG90KCk6IERhdGFDb250ZXh0U25hcHNob3Q8VD4ge1xuICAgIHJldHVybiBuZXcgRGF0YUNvbnRleHRTbmFwc2hvdChcbiAgICAgIHRoaXMuZGF0YVNuYXBzaG90LFxuICAgICAgdGhpcy5pc0VtcHR5LFxuICAgICAgdGhpcy5sb2FkaW5nU25hcHNob3QsXG4gICAgICB0aGlzLnRvdGFsU25hcHNob3QsXG4gICAgICB0aGlzLnN0YXR1c1NuYXBzaG90XG4gICAgKTtcbiAgfVxuXG5cbiAgcHVibGljIGdldCB0b3RhbCgpOiBPYnNlcnZhYmxlPG51bWJlciB8IHVuZGVmaW5lZD4ge1xuICAgIHJldHVybiB0aGlzLl90b3RhbC5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgdG90YWxTbmFwc2hvdCgpOiBudW1iZXIgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLl90b3RhbC5nZXRWYWx1ZSgpO1xuICB9XG5cbiAgcHVibGljIGdldCBzb3J0KCk6IFNvcnRDb250ZXh0IHtcbiAgICByZXR1cm4gdGhpcy5fc29ydDtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgZmlsdGVyKCk6IEZpbHRlckNvbnRleHQge1xuICAgIHJldHVybiB0aGlzLl9maWx0ZXI7XG4gIH1cblxuXG5cbiAgcHVibGljIGdldCBsb2FkaW5nKCk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xuICAgIHJldHVybiB0aGlzLl9sb2FkaW5nO1xuICB9XG5cbiAgcHVibGljIGdldCBsb2FkaW5nU25hcHNob3QoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuc3RhdHVzU25hcHNob3Q/LmxvYWRpbmc7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGRhdGEoKTogT2JzZXJ2YWJsZTxUW10+IHtcbiAgICByZXR1cm4gdGhpcy5fZGF0YS5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgZGF0YVNuYXBzaG90KCk6IFRbXSB7XG4gICAgcmV0dXJuIHRoaXMuX2RhdGEuZ2V0VmFsdWUoKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgc3RhdHVzKCk6IE9ic2VydmFibGU8RGF0YUNvbnRleHRTdGF0dXM+IHtcbiAgICByZXR1cm4gdGhpcy5fc3RhdHVzO1xuICB9XG5cbiAgcHVibGljIGdldCBzdGF0dXNTbmFwc2hvdCgpOiBEYXRhQ29udGV4dFN0YXR1cyB7XG4gICAgcmV0dXJuIHRoaXMuX3N0YXR1cy5nZXRWYWx1ZSgpO1xuICB9XG5cbiAgcHVibGljIGdldCBpc0VtcHR5KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmRhdGFTbmFwc2hvdC5sZW5ndGggPT09IDA7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGlzU3RhcnRlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5zdGFydGVkO1xuICB9XG5cbiAgcHVibGljIGdldCBpc0Nsb3NlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fY2xvc2VkLmdldFZhbHVlKCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgZ2V0IHN0YXJ0ZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX3N0YXJ0ZWQuZ2V0VmFsdWUoKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBzZXQgc3RhcnRlZChzdGFydGVkOiBib29sZWFuKSB7XG4gICAgdGhpcy5fc3RhcnRlZC5uZXh0KHN0YXJ0ZWQpO1xuICB9XG5cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogUHVibGljIEFQSSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuXG4gIHB1YmxpYyBzdGFydChzb3J0cz86IFNvcnRbXSwgZmlsdGVycz86IEZpbHRlcltdKTogT2JzZXJ2YWJsZTxhbnk+IHtcblxuICAgIGlmICh0aGlzLmlzQ2xvc2VkKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ1Jlc3RhcnRpbmcgYSBjbG9zZWQgRGF0YUNvbnRleHQgaXMgbm90IHBvc3NpYmxlIScpOyAvLyBTZWUgdW5zdWJzY3JpYmUkXG4gICAgfVxuXG4gICAgdGhpcy5iYXNlbG9nLmRlYnVnKCdTdGFydGluZyBmcmVzaCBkYXRhQ29udGV4dCAuLi4nKTtcblxuICAgIHRoaXMuc3RhcnRlZCA9IGZhbHNlO1xuXG4gICAgdGhpcy5fc29ydC5yZXBsYWNlU29ydHMoc29ydHMgfHwgdGhpcy5zb3J0LnNvcnRzU25hcHNob3QpO1xuICAgIHRoaXMuX2ZpbHRlci5yZXBsYWNlRmlsdGVycyhmaWx0ZXJzIHx8IHRoaXMuZmlsdGVyLmZpbHRlcnNTbmFwc2hvdCk7XG5cbiAgICB0aGlzLnN0YXJ0ZWQgPSB0cnVlO1xuXG4gICAgcmV0dXJuIHRoaXMucmVsb2FkTm93KCk7XG4gIH1cblxuICBwdWJsaWMgcmVsb2FkKCk6IHZvaWQge1xuICAgIHRoaXMuX3JlbG9hZFF1ZXVlLm5leHQoKTtcbiAgfVxuXG4gIHB1YmxpYyBmaW5kQnlJbmRleChrZXk6IGFueSk6IFQgfCB1bmRlZmluZWQge1xuICAgIGlmICghdGhpcy5faW5kZXhGbikgeyB0aHJvdyBuZXcgRXJyb3IoJ2ZpbmRCeUluZGV4IHJlcXVpcmVzIHlvdSB0byBwYXNzIGEgaW5kZXggZnVuY3Rpb24hJyk7IH1cbiAgICByZXR1cm4gdGhpcy5fcHJpbWFyeUluZGV4LmdldChrZXkpO1xuICB9XG5cbiAgLyoqXG4gICAqIENsb3NlcyB0aGlzIERhdGFDb250ZXh0IGFuZCBjbGVhbnMgdXAgYWxsIHVzZWQgcmVzb3VyY2VzLlxuICAgKi9cbiAgcHVibGljIGNsb3NlKCk6IHZvaWQge1xuXG4gICAgdGhpcy5zdGFydGVkID0gZmFsc2U7XG4gICAgdGhpcy51bnN1YnNjcmliZSQubmV4dCgpO1xuICAgIHRoaXMudW5zdWJzY3JpYmUkLmNvbXBsZXRlKCk7XG4gICAgdGhpcy5fY2xvc2VkLm5leHQodHJ1ZSk7XG5cbiAgICB0aGlzLl9kYXRhLmNvbXBsZXRlKCk7XG4gICAgdGhpcy5fdG90YWwuY29tcGxldGUoKTtcbiAgICB0aGlzLl9zdGF0dXMuY29tcGxldGUoKTtcblxuICAgIHRoaXMuY2xlYXJBbGwoKTtcbiAgICB0aGlzLmJhc2Vsb2cuZGVidWcoJ0RhdGFDb250ZXh0IGhhcyBiZWVuIGNsb3NlZCBhbmQgcmVzb3VyY2VzIGNsZWFuZWQgdXAhJyk7XG4gIH1cblxuICBwdWJsaWMgcmVmcmVzaCgpOiB2b2lkIHtcbiAgICBjb25zdCBjdXJyZW50ID0gdGhpcy5fZGF0YS5nZXRWYWx1ZSgpO1xuICAgIHRoaXMuX2RhdGEubmV4dChjdXJyZW50KTtcbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBQcm90ZWN0ZWQgbWV0aG9kcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHByb3RlY3RlZCByZWxvYWROb3coKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5yZWxvYWRJbnRlcm5hbCgpOyAvLyBUT0RPIFRoaXMgc2hvdWxkIGFjdHVhbGx5IHJldHVybiB0aGUgcmVhbCAoaHR0cCkgcmVxdWVzdFxuICB9XG5cbiAgLyoqXG4gICAqIEFwcGVuZCB0aGUgZ2l2ZW4gcm93cyB0byB0byBleGlzdGluZyBvbmVzLlxuICAgKi9cbiAgcHJvdGVjdGVkIGFwcGVuZERhdGEoYWRkaXRpb25hbERhdGE6IFRbXSk6IHZvaWQge1xuICAgIC8vIFdlIGhhZCBwcmV2aW91cyBjaHVua3Mgc28gYXBwZW5kIHRvIGN1cnJlbnQgZGF0YS5cbiAgICBjb25zdCBuZXdEYXRhID0gWy4uLnRoaXMuZGF0YVNuYXBzaG90XTtcbiAgICBuZXdEYXRhLnB1c2goLi4uYWRkaXRpb25hbERhdGEpO1xuICAgIHRoaXMuaW5kZXhBbGwoYWRkaXRpb25hbERhdGEpO1xuICAgIHRoaXMuc2V0RGF0YShuZXdEYXRhLCB0cnVlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXBsYWNlcyB0aGUgZXhpc3RpbmcgZGF0YSB3aXRoIHRoZSBuZXcgc2V0LlxuICAgKiBAcGFyYW0gbmV3RGF0YSBUaGUgbmV3IGRhdGEgc2V0LlxuICAgKiBAcGFyYW0gYWxyZWFkeUluZGV4ZWQgVGhlIHJvd3Mgd2lsbCBiZSBpbmRleGVkIHVubGVzcyB0aGV5IGFscmVhZHkgaGF2ZSBiZWVuLlxuICAgKi9cbiAgcHJvdGVjdGVkIHNldERhdGEobmV3RGF0YTogVFtdLCBhbHJlYWR5SW5kZXhlZCA9IGZhbHNlKTogdm9pZCB7XG5cbiAgICBpZiAodGhpcy5fbG9jYWxBcHBseSkge1xuICAgICAgbmV3RGF0YSA9IHRoaXMuX2xvY2FsQXBwbHkobmV3RGF0YSk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuX2xvY2FsU29ydCkge1xuICAgICAgbmV3RGF0YSA9IHRoaXMuX2xvY2FsU29ydChuZXdEYXRhLCB0aGlzLl9zb3J0LnNvcnRzU25hcHNob3QpO1xuICAgIH1cblxuICAgIGlmICghYWxyZWFkeUluZGV4ZWQpIHtcbiAgICAgIHRoaXMuaW5kZXhBbGwobmV3RGF0YSk7XG4gICAgfVxuXG4gICAgY29uc3QgY3VycmVudCA9IHRoaXMuZGF0YVNuYXBzaG90O1xuXG4gICAgaWYgKCEoY3VycmVudC5sZW5ndGggPT09IDAgJiYgbmV3RGF0YS5sZW5ndGggPT09IDApKSB7XG4gICAgICB0aGlzLmJhc2Vsb2cuZGVidWcoJ0RhdGEgaGFzIGNoYW5nZWQ6ICcgKyBuZXdEYXRhLmxlbmd0aCk7XG4gICAgICB0aGlzLl9kYXRhLm5leHQobmV3RGF0YSk7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIHNldFRvdGFsKHRvdGFsOiBudW1iZXIgfCB1bmRlZmluZWQpOiB2b2lkIHtcbiAgICB0aGlzLl90b3RhbC5uZXh0KHRvdGFsKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDbGVhcnMgdGhlIGN1cnJlbnQgZGF0YS1jb250ZXh0IGNhY2hlZCBkYXRhLlxuICAgKiBTdGF0ZSBzdWNoIGFzIGN1cnJlbnQgc29ydGluZyBhbmQgZmlsdGVyc1NuYXBzaG90IGFyZSBrZXB0LlxuICAgKi9cbiAgcHJvdGVjdGVkIGNsZWFyQWxsKHNpbGVudCA9IGZhbHNlKTogdm9pZCB7XG4gICAgdGhpcy5jbGVhckluZGV4KCk7XG5cbiAgICBpZiAoIXNpbGVudCkge1xuICAgICAgdGhpcy5zZXRUb3RhbCgwKTtcbiAgICAgIHRoaXMuc2V0RGF0YShbXSk7XG4gICAgfVxuXG4gICAgdGhpcy5vbklkbGUoKTtcbiAgfVxuXG4gIHByb3RlY3RlZCB1cGRhdGVJbmRleCgpOiB2b2lkIHtcbiAgICB0aGlzLmNsZWFySW5kZXgoKTtcbiAgICB0aGlzLmluZGV4QWxsKHRoaXMuZGF0YVNuYXBzaG90KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbmRleGVzIHRoZSBnaXZlbiBpdGVtIGJ5IGtleSBpZiB0aGVyZSBpcyBhbiBpbmRleCBmdW5jdGlvbiBkZWZpbmVkLlxuICAgKi9cbiAgcHJvdGVjdGVkIGluZGV4SXRlbShpdGVtOiBUKTogdm9pZCB7XG4gICAgY29uc3Qga2V5ID0gdGhpcy5nZXRJdGVtS2V5KGl0ZW0pO1xuICAgIGlmIChrZXkpIHtcbiAgICAgIHRoaXMuX3ByaW1hcnlJbmRleC5zZXQoa2V5LCBpdGVtKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogSW5kZXhlcyBhbGwgdGhlIGdpdmVuIGl0ZW1zIGJ5IGtleSBpZiB0aGVyZSBpcyBhbiBpbmRleCBmdW5jdGlvbiBkZWZpbmVkLlxuICAgKi9cbiAgcHJvdGVjdGVkIGluZGV4QWxsKGl0ZW1zOiBUW10pOiB2b2lkIHtcbiAgICBpZiAodGhpcy5faW5kZXhGbikge1xuICAgICAgaXRlbXMuZm9yRWFjaChpdGVtID0+IHRoaXMuaW5kZXhJdGVtKGl0ZW0pKTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgZ2V0SXRlbUtleShpdGVtOiBUKTogYW55ICB7XG4gICAgaWYgKHRoaXMuX2luZGV4Rm4pIHtcbiAgICAgIHJldHVybiB0aGlzLl9pbmRleEZuKGl0ZW0pO1xuICAgIH1cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBFdmVudCBoYW5kbGVyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIC8qKlxuICAgKiBPY2N1cnMgd2hlbiB0aGUgc29ydCBoYXMgY2hhbmdlZC5cbiAgICovXG4gIHByb3RlY3RlZCBvblNvcnRzQ2hhbmdlZChzb3J0czogU29ydFtdKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLl9sb2NhbFNvcnQpIHtcbiAgICAgIHRoaXMucmVsb2FkKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuc2V0RGF0YSh0aGlzLmRhdGFTbmFwc2hvdCwgdHJ1ZSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIE9jY3VycyB3aGVuIHRoZSBmaWx0ZXIgaGFzIGNoYW5nZWQuXG4gICAqL1xuICBwcm90ZWN0ZWQgb25GaWx0ZXJzQ2hhbmdlZChmaWx0ZXJzOiBGaWx0ZXJbXSk6IHZvaWQge1xuICAgIHRoaXMucmVsb2FkKCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgb25FcnJvcihlcnI6IGFueSk6IHZvaWQge1xuICAgIHRoaXMub25TdGF0dXMoRGF0YUNvbnRleHRTdGF0dXMuZXJyb3IoZXJyKSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgb25JZGxlKCk6IHZvaWQge1xuICAgIHRoaXMub25TdGF0dXMoRGF0YUNvbnRleHRTdGF0dXMuaWRsZSgpKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvbkxvYWRpbmcoKTogdm9pZCB7XG4gICAgdGhpcy5vblN0YXR1cyhEYXRhQ29udGV4dFN0YXR1cy5sb2FkaW5nKCkpO1xuICB9XG5cbiAgcHJvdGVjdGVkIG9uU3RhdHVzKHN0YXR1czogRGF0YUNvbnRleHRTdGF0dXMpOiB2b2lkIHtcbiAgICB0aGlzLl9zdGF0dXMubmV4dChzdGF0dXMpO1xuICB9XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIEFic3RyYWN0IG1ldGhvZHMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cblxuICAvKipcbiAgICogU3ViY2xhc3NlcyBtdXN0IGltcGxlbWVudCB0aGlzIG1ldGhvZCBhbmRcbiAgICogcmVsb2FkIHRoZSBjdXJyZW50bHkgaGVsZCBkYXRhLlxuICAgKiBJZiBwb3NzaWJsZSwgdGhlIGN1cnJlbnQgdmlldyBzdGF0ZSBzaG91bGQgYmUga2VwdC5cbiAgICpcbiAgICogQHJldHVybnMgVGhlIHJlbG9hZCBqb2IuXG4gICAqL1xuICBwcm90ZWN0ZWQgYWJzdHJhY3QgcmVsb2FkSW50ZXJuYWwoKTogT2JzZXJ2YWJsZTxhbnk+O1xuXG4gIHByaXZhdGUgY2xlYXJJbmRleCgpOiB2b2lkIHtcbiAgICB0aGlzLl9wcmltYXJ5SW5kZXguY2xlYXIoKTtcbiAgfVxufVxuIl19
|
|
284
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1jb250ZXh0LWJhc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lbGRlcmJ5dGUvbmd4LXN0YXJ0ZXIvc3JjL2xpYi9jb21tb24vZGF0YS9kYXRhLWNvbnRleHQvZGF0YS1jb250ZXh0LWJhc2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFTLGFBQWEsRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBRzNELE9BQU8sRUFBbUIsVUFBVSxFQUFDLE1BQU0sMEJBQTBCLENBQUM7QUFDdEUsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0sdUJBQXVCLENBQUM7QUFDeEQsT0FBTyxFQUFDLGVBQWUsRUFBRSxLQUFLLEVBQWtCLE9BQU8sRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUNyRSxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sbUJBQW1CLENBQUM7QUFDaEQsT0FBTyxFQUFDLG1CQUFtQixFQUFlLE1BQU0sZ0JBQWdCLENBQUM7QUFDakUsT0FBTyxFQUFDLFVBQVUsRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUNoRixPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFHNUMsTUFBTSxPQUFnQixlQUFtQixTQUFRLFVBQWE7SUE4QjVEOzs7O2dGQUk0RTtJQUU1RSxZQUNFLFVBQTBCLEVBQ2xCLFFBQTRCLEVBQzVCLFdBQWlDLEVBQ2pDLFVBQStDO1FBRXZELEtBQUssRUFBRSxDQUFDO1FBSkEsYUFBUSxHQUFSLFFBQVEsQ0FBb0I7UUFDNUIsZ0JBQVcsR0FBWCxXQUFXLENBQXNCO1FBQ2pDLGVBQVUsR0FBVixVQUFVLENBQXFDO1FBdEN6RDs7OztvRkFJNEU7UUFFM0QsWUFBTyxHQUFXLGFBQWEsQ0FBQyxTQUFTLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUk3RCxZQUFPLEdB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LEVBQUUsQ0FBQyxDQUFDO0lBQzFDLENBQUM7SUFFUyxTQUFTO1FBQ2pCLElBQUksQ0FBQyxRQUFRLENBQUMsaUJBQWlCLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztJQUM3QyxDQUFDO0lBRVMsUUFBUSxDQUFDLE1BQXlCO1FBQzFDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQzVCLENBQUM7SUFpQkQ7Ozs7Z0ZBSTRFO0lBRXBFLFVBQVU7UUFDaEIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUM3QixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0xvZ2dlciwgTG9nZ2VyRmFjdG9yeX0gZnJvbSAnQGVsZGVyYnl0ZS90cy1sb2dnZXInO1xuaW1wb3J0IHtGaWx0ZXJ9IGZyb20gJy4uL2ZpbHRlcic7XG5pbXBvcnQge1NvcnR9IGZyb20gJy4uL3NvcnQnO1xuaW1wb3J0IHtDb2xsZWN0aW9uVmlld2VyLCBEYXRhU291cmNlfSBmcm9tICdAYW5ndWxhci9jZGsvY29sbGVjdGlvbnMnO1xuaW1wb3J0IHtEYXRhQ29udGV4dFN0YXR1c30gZnJvbSAnLi9kYXRhLWNvbnRleHQtc3RhdHVzJztcbmltcG9ydCB7QmVoYXZpb3JTdWJqZWN0LCBFTVBUWSwgT2JzZXJ2YWJsZSwgb2YsIFN1YmplY3R9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtGaWx0ZXJDb250ZXh0fSBmcm9tICcuLi9maWx0ZXItY29udGV4dCc7XG5pbXBvcnQge0RhdGFDb250ZXh0U25hcHNob3QsIElEYXRhQ29udGV4dH0gZnJvbSAnLi9kYXRhLWNvbnRleHQnO1xuaW1wb3J0IHtjYXRjaEVycm9yLCBkZWJvdW5jZVRpbWUsIGZpbHRlciwgbWFwLCB0YWtlVW50aWx9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7U29ydENvbnRleHR9IGZyb20gJy4uL3NvcnQtY29udGV4dCc7XG5pbXBvcnQge0lEYXRhU291cmNlfSBmcm9tICcuLi9kYXRhc291cmNlL2RhdGEtc291cmNlJztcblxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIERhdGFDb250ZXh0QmFzZTxUPiBleHRlbmRzIERhdGFTb3VyY2U8VD4gaW1wbGVtZW50cyBJRGF0YUNvbnRleHQ8VD4ge1xuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBGaWVsZHMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgYmFzZWxvZzogTG9nZ2VyID0gTG9nZ2VyRmFjdG9yeS5nZXRMb2dnZXIoJ0RhdGFDb250ZXh0QmFzZScpO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgX2RhdGFTb3VyY2U6IElEYXRhU291cmNlPFQ+O1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgX2ZpbHRlciA9IG5ldyBGaWx0ZXJDb250ZXh0KCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgX3NvcnQgPSBuZXcgU29ydENvbnRleHQoKTtcblxuICBwcml2YXRlIHJlYWRvbmx5IF9sb2FkaW5nOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgX2RhdGEgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFRbXT4oW10pO1xuICBwcml2YXRlIHJlYWRvbmx5IF90b3RhbCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8bnVtYmVyIHwgdW5kZWZpbmVkPih1bmRlZmluZWQpO1xuICBwcml2YXRlIHJlYWRvbmx5IF9zdGF0dXMgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PERhdGFDb250ZXh0U3RhdHVzPihEYXRhQ29udGV4dFN0YXR1cy5pZGxlKCkpO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgX3N0YXJ0ZWQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfY2xvc2VkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihmYWxzZSk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBfcHJpbWFyeUluZGV4ID0gbmV3IE1hcDxhbnksIFQ+KCk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBfcmVsb2FkUXVldWUgPSBuZXcgU3ViamVjdDxhbnk+KCk7XG5cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IHVuc3Vic2NyaWJlJCA9IG5ldyBTdWJqZWN0PGFueT4oKTtcblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogQ29uc3RydWN0b3IgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBwcm90ZWN0ZWQgY29uc3RydWN0b3IoXG4gICAgZGF0YVNvdXJjZTogSURhdGFTb3VyY2U8VD4sXG4gICAgcHJpdmF0ZSBfaW5kZXhGbjogKChpdGVtOiBUKSA9PiBhbnkpLFxuICAgIHByaXZhdGUgX2xvY2FsQXBwbHk6ICgoZGF0YTogVFtdKSA9PiBUW10pLFxuICAgIHByaXZhdGUgX2xvY2FsU29ydDogKChkYXRhOiBUW10sIHNvcnRzOiBTb3J0W10pID0+IFRbXSksXG4gICkge1xuICAgIHN1cGVyKCk7XG5cbiAgICB0aGlzLl9kYXRhU291cmNlID0gZGF0YVNvdXJjZTtcblxuICAgIHRoaXMuX2xvYWRpbmcgPSB0aGlzLl9zdGF0dXMucGlwZShcbiAgICAgIG1hcChzdGF0dXMgPT4gc3RhdHVzLmxvYWRpbmcpXG4gICAgKTtcblxuICAgIHRoaXMuX2ZpbHRlci5maWx0ZXJzLnBpcGUoXG4gICAgICBmaWx0ZXIoKCkgPT4gdGhpcy5zdGFydGVkKSxcbiAgICAgIHRha2VVbnRpbCh0aGlzLnVuc3Vic2NyaWJlJClcbiAgICApLnN1YnNjcmliZShcbiAgICAgIGZpbHRlcnMgPT4gdGhpcy5vbkZpbHRlcnNDaGFuZ2VkKGZpbHRlcnMpXG4gICAgKTtcblxuICAgIHRoaXMuX3NvcnQuc29ydHMucGlwZShcbiAgICAgIGZpbHRlcigoKSA9PiB0aGlzLnN0YXJ0ZWQpLFxuICAgICAgdGFrZVVudGlsKHRoaXMudW5zdWJzY3JpYmUkKVxuICAgICkuc3Vic2NyaWJlKFxuICAgICAgc29ydHMgPT4gdGhpcy5vblNvcnRzQ2hhbmdlZChzb3J0cylcbiAgICApO1xuXG4gICAgdGhpcy5fcmVsb2FkUXVldWUucGlwZShcbiAgICAgIGZpbHRlcigoKSA9PiB0aGlzLnN0YXJ0ZWQpLFxuICAgICAgZGVib3VuY2VUaW1lKDUwKSxcbiAgICAgIHRha2VVbnRpbCh0aGlzLnVuc3Vic2NyaWJlJCksXG4gICAgICBjYXRjaEVycm9yKGVyciA9PiB7ICAvLyBEb250IGRpZSBvbiBlcnJvcnNcbiAgICAgICAgdGhpcy5iYXNlbG9nLmVycm9yKCdSZWxvYWQgcXVldWUgZGV0ZWN0ZWQgZXJyb3IsIGJhZCEnLCBlcnIpO1xuICAgICAgICByZXR1cm4gRU1QVFk7XG4gICAgICB9KVxuICAgICkuc3Vic2NyaWJlKCgpID0+IHRoaXMucmVsb2FkTm93KCkpO1xuICAgIC8vIE1heWJlIHNraXBNYXAgdGhlIHJlYWwgcmVxdWVzdHMgZm9yIGF1dG8gYWJvcnQgcGVuZGluZyAoZXhjZXB0IGZvciBjb250aW51YXRpb24gLyBwYWdlZClcbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBQdWJsaWMgQVBJIE1hdGVyaWFsIERDICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHB1YmxpYyBjb25uZWN0KGNvbGxlY3Rpb25WaWV3ZXI6IENvbGxlY3Rpb25WaWV3ZXIpOiBPYnNlcnZhYmxlPFRbXT4ge1xuICAgIHJldHVybiB0aGlzLmRhdGE7XG4gIH1cblxuICBwdWJsaWMgZGlzY29ubmVjdChjb2xsZWN0aW9uVmlld2VyOiBDb2xsZWN0aW9uVmlld2VyKTogdm9pZCB7XG4gICAgLy8gdGhpcy5jbG9zZSgpOyBDbG9zaW5nIHdpbGwgZGVzdHJveSB0aGUgRENcbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBQcm9wZXJ0aWVzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHB1YmxpYyBnZXQgZGF0YVNvdXJjZSgpOiBJRGF0YVNvdXJjZTxUPiB7XG4gICAgcmV0dXJuIHRoaXMuX2RhdGFTb3VyY2U7XG4gIH1cblxuICBwdWJsaWMgZ2V0IHNuYXBzaG90KCk6IERhdGFDb250ZXh0U25hcHNob3Q8VD4ge1xuICAgIHJldHVybiBuZXcgRGF0YUNvbnRleHRTbmFwc2hvdChcbiAgICAgIHRoaXMuZGF0YVNuYXBzaG90LFxuICAgICAgdGhpcy5pc0VtcHR5LFxuICAgICAgdGhpcy5sb2FkaW5nU25hcHNob3QsXG4gICAgICB0aGlzLnRvdGFsU25hcHNob3QsXG4gICAgICB0aGlzLnN0YXR1c1NuYXBzaG90XG4gICAgKTtcbiAgfVxuXG5cbiAgcHVibGljIGdldCB0b3RhbCgpOiBPYnNlcnZhYmxlPG51bWJlciB8IHVuZGVmaW5lZD4ge1xuICAgIHJldHVybiB0aGlzLl90b3RhbC5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgdG90YWxTbmFwc2hvdCgpOiBudW1iZXIgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLl90b3RhbC5nZXRWYWx1ZSgpO1xuICB9XG5cbiAgcHVibGljIGdldCBzb3J0KCk6IFNvcnRDb250ZXh0IHtcbiAgICByZXR1cm4gdGhpcy5fc29ydDtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgZmlsdGVyKCk6IEZpbHRlckNvbnRleHQge1xuICAgIHJldHVybiB0aGlzLl9maWx0ZXI7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGxvYWRpbmcoKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XG4gICAgcmV0dXJuIHRoaXMuX2xvYWRpbmc7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGxvYWRpbmdTbmFwc2hvdCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5zdGF0dXNTbmFwc2hvdD8ubG9hZGluZztcbiAgfVxuXG4gIHB1YmxpYyBnZXQgZGF0YSgpOiBPYnNlcnZhYmxlPFRbXT4ge1xuICAgIHJldHVybiB0aGlzLl9kYXRhLmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgcHVibGljIGdldCBkYXRhU25hcHNob3QoKTogVFtdIHtcbiAgICByZXR1cm4gdGhpcy5fZGF0YS5nZXRWYWx1ZSgpO1xuICB9XG5cbiAgcHVibGljIGdldCBzdGF0dXMoKTogT2JzZXJ2YWJsZTxEYXRhQ29udGV4dFN0YXR1cz4ge1xuICAgIHJldHVybiB0aGlzLl9zdGF0dXM7XG4gIH1cblxuICBwdWJsaWMgZ2V0IHN0YXR1c1NuYXBzaG90KCk6IERhdGFDb250ZXh0U3RhdHVzIHtcbiAgICByZXR1cm4gdGhpcy5fc3RhdHVzLmdldFZhbHVlKCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGlzRW1wdHkoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuZGF0YVNuYXBzaG90Lmxlbmd0aCA9PT0gMDtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgaXNTdGFydGVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnN0YXJ0ZWQ7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGlzU3RhcnRlZCQoKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XG4gICAgcmV0dXJuIHRoaXMuX3N0YXJ0ZWQuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGlzQ2xvc2VkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9jbG9zZWQuZ2V0VmFsdWUoKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBnZXQgc3RhcnRlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fc3RhcnRlZC5nZXRWYWx1ZSgpO1xuICB9XG5cbiAgcHJvdGVjdGVkIHNldCBzdGFydGVkKHN0YXJ0ZWQ6IGJvb2xlYW4pIHtcbiAgICB0aGlzLl9zdGFydGVkLm5leHQoc3RhcnRlZCk7XG4gIH1cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogUHVibGljIEFQSSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBwdWJsaWMgc3RhcnQoc29ydHM/OiBTb3J0W10sIGZpbHRlcnM/OiBGaWx0ZXJbXSk6IE9ic2VydmFibGU8YW55PiB7XG5cbiAgICBpZiAodGhpcy5pc0Nsb3NlZCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdSZXN0YXJ0aW5nIGEgY2xvc2VkIERhdGFDb250ZXh0IGlzIG5vdCBwb3NzaWJsZSEnKTsgLy8gU2VlIHVuc3Vic2NyaWJlJFxuICAgIH1cblxuICAgIHRoaXMuYmFzZWxvZy5kZWJ1ZygnU3RhcnRpbmcgZnJlc2ggZGF0YUNvbnRleHQgLi4uJyk7XG5cbiAgICB0aGlzLnN0YXJ0ZWQgPSBmYWxzZTtcblxuICAgIHRoaXMuX3NvcnQucmVwbGFjZVNvcnRzKHNvcnRzIHx8IHRoaXMuc29ydC5zb3J0c1NuYXBzaG90KTtcbiAgICB0aGlzLl9maWx0ZXIucmVwbGFjZUZpbHRlcnMoZmlsdGVycyB8fCB0aGlzLmZpbHRlci5maWx0ZXJzU25hcHNob3QpO1xuXG4gICAgdGhpcy5zdGFydGVkID0gdHJ1ZTtcblxuICAgIHJldHVybiB0aGlzLnJlbG9hZE5vdygpO1xuICB9XG5cbiAgcHVibGljIHJlbG9hZCgpOiB2b2lkIHtcbiAgICB0aGlzLl9yZWxvYWRRdWV1ZS5uZXh0KCk7XG4gIH1cblxuICBwdWJsaWMgZmluZEJ5SW5kZXgoa2V5OiBhbnkpOiBUIHwgdW5kZWZpbmVkIHtcbiAgICBpZiAoIXRoaXMuX2luZGV4Rm4pIHsgdGhyb3cgbmV3IEVycm9yKCdmaW5kQnlJbmRleCByZXF1aXJlcyB5b3UgdG8gcGFzcyBhIGluZGV4IGZ1bmN0aW9uIScpOyB9XG4gICAgcmV0dXJuIHRoaXMuX3ByaW1hcnlJbmRleC5nZXQoa2V5KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDbG9zZXMgdGhpcyBEYXRhQ29udGV4dCBhbmQgY2xlYW5zIHVwIGFsbCB1c2VkIHJlc291cmNlcy5cbiAgICovXG4gIHB1YmxpYyBjbG9zZSgpOiB2b2lkIHtcblxuICAgIHRoaXMuc3RhcnRlZCA9IGZhbHNlO1xuICAgIHRoaXMudW5zdWJzY3JpYmUkLm5leHQoKTtcbiAgICB0aGlzLnVuc3Vic2NyaWJlJC5jb21wbGV0ZSgpO1xuICAgIHRoaXMuX2Nsb3NlZC5uZXh0KHRydWUpO1xuXG4gICAgdGhpcy5fZGF0YS5jb21wbGV0ZSgpO1xuICAgIHRoaXMuX3RvdGFsLmNvbXBsZXRlKCk7XG4gICAgdGhpcy5fc3RhdHVzLmNvbXBsZXRlKCk7XG5cbiAgICB0aGlzLmNsZWFyQWxsKCk7XG4gICAgdGhpcy5iYXNlbG9nLmRlYnVnKCdEYXRhQ29udGV4dCBoYXMgYmVlbiBjbG9zZWQgYW5kIHJlc291cmNlcyBjbGVhbmVkIHVwIScpO1xuICB9XG5cbiAgcHVibGljIHJlZnJlc2goKTogdm9pZCB7XG4gICAgY29uc3QgY3VycmVudCA9IHRoaXMuX2RhdGEuZ2V0VmFsdWUoKTtcbiAgICB0aGlzLl9kYXRhLm5leHQoY3VycmVudCk7XG4gIH1cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogUHJvdGVjdGVkIG1ldGhvZHMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBwcm90ZWN0ZWQgcmVsb2FkTm93KCk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMucmVsb2FkSW50ZXJuYWwoKTsgLy8gVE9ETyBUaGlzIHNob3VsZCBhY3R1YWxseSByZXR1cm4gdGhlIHJlYWwgKGh0dHApIHJlcXVlc3RcbiAgfVxuXG4gIC8qKlxuICAgKiBBcHBlbmQgdGhlIGdpdmVuIHJvd3MgdG8gdG8gZXhpc3Rpbmcgb25lcy5cbiAgICovXG4gIHByb3RlY3RlZCBhcHBlbmREYXRhKGFkZGl0aW9uYWxEYXRhOiBUW10pOiB2b2lkIHtcbiAgICAvLyBXZSBoYWQgcHJldmlvdXMgY2h1bmtzIHNvIGFwcGVuZCB0byBjdXJyZW50IGRhdGEuXG4gICAgY29uc3QgbmV3RGF0YSA9IFsuLi50aGlzLmRhdGFTbmFwc2hvdF07XG4gICAgbmV3RGF0YS5wdXNoKC4uLmFkZGl0aW9uYWxEYXRhKTtcbiAgICB0aGlzLmluZGV4QWxsKGFkZGl0aW9uYWxEYXRhKTtcbiAgICB0aGlzLnNldERhdGEobmV3RGF0YSwgdHJ1ZSk7XG4gIH1cblxuICAvKipcbiAgICogUmVwbGFjZXMgdGhlIGV4aXN0aW5nIGRhdGEgd2l0aCB0aGUgbmV3IHNldC5cbiAgICogQHBhcmFtIG5ld0RhdGEgVGhlIG5ldyBkYXRhIHNldC5cbiAgICogQHBhcmFtIGFscmVhZHlJbmRleGVkIFRoZSByb3dzIHdpbGwgYmUgaW5kZXhlZCB1bmxlc3MgdGhleSBhbHJlYWR5IGhhdmUgYmVlbi5cbiAgICovXG4gIHByb3RlY3RlZCBzZXREYXRhKG5ld0RhdGE6IFRbXSwgYWxyZWFkeUluZGV4ZWQgPSBmYWxzZSk6IHZvaWQge1xuXG4gICAgaWYgKHRoaXMuX2xvY2FsQXBwbHkpIHtcbiAgICAgIG5ld0RhdGEgPSB0aGlzLl9sb2NhbEFwcGx5KG5ld0RhdGEpO1xuICAgIH1cblxuICAgIGlmICh0aGlzLl9sb2NhbFNvcnQpIHtcbiAgICAgIG5ld0RhdGEgPSB0aGlzLl9sb2NhbFNvcnQobmV3RGF0YSwgdGhpcy5fc29ydC5zb3J0c1NuYXBzaG90KTtcbiAgICB9XG5cbiAgICBpZiAoIWFscmVhZHlJbmRleGVkKSB7XG4gICAgICB0aGlzLmluZGV4QWxsKG5ld0RhdGEpO1xuICAgIH1cblxuICAgIGNvbnN0IGN1cnJlbnQgPSB0aGlzLmRhdGFTbmFwc2hvdDtcblxuICAgIGlmICghKGN1cnJlbnQubGVuZ3RoID09PSAwICYmIG5ld0RhdGEubGVuZ3RoID09PSAwKSkge1xuICAgICAgdGhpcy5iYXNlbG9nLmRlYnVnKCdEYXRhIGhhcyBjaGFuZ2VkOiAnICsgbmV3RGF0YS5sZW5ndGgpO1xuICAgICAgdGhpcy5fZGF0YS5uZXh0KG5ld0RhdGEpO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBzZXRUb3RhbCh0b3RhbDogbnVtYmVyIHwgdW5kZWZpbmVkKTogdm9pZCB7XG4gICAgdGhpcy5fdG90YWwubmV4dCh0b3RhbCk7XG4gIH1cblxuICAvKipcbiAgICogQ2xlYXJzIHRoZSBjdXJyZW50IGRhdGEtY29udGV4dCBjYWNoZWQgZGF0YS5cbiAgICogU3RhdGUgc3VjaCBhcyBjdXJyZW50IHNvcnRpbmcgYW5kIGZpbHRlcnNTbmFwc2hvdCBhcmUga2VwdC5cbiAgICovXG4gIHByb3RlY3RlZCBjbGVhckFsbChzaWxlbnQgPSBmYWxzZSk6IHZvaWQge1xuICAgIHRoaXMuY2xlYXJJbmRleCgpO1xuXG4gICAgaWYgKCFzaWxlbnQpIHtcbiAgICAgIHRoaXMuc2V0VG90YWwoMCk7XG4gICAgICB0aGlzLnNldERhdGEoW10pO1xuICAgIH1cblxuICAgIHRoaXMub25JZGxlKCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgdXBkYXRlSW5kZXgoKTogdm9pZCB7XG4gICAgdGhpcy5jbGVhckluZGV4KCk7XG4gICAgdGhpcy5pbmRleEFsbCh0aGlzLmRhdGFTbmFwc2hvdCk7XG4gIH1cblxuICAvKipcbiAgICogSW5kZXhlcyB0aGUgZ2l2ZW4gaXRlbSBieSBrZXkgaWYgdGhlcmUgaXMgYW4gaW5kZXggZnVuY3Rpb24gZGVmaW5lZC5cbiAgICovXG4gIHByb3RlY3RlZCBpbmRleEl0ZW0oaXRlbTogVCk6IHZvaWQge1xuICAgIGNvbnN0IGtleSA9IHRoaXMuZ2V0SXRlbUtleShpdGVtKTtcbiAgICBpZiAoa2V5KSB7XG4gICAgICB0aGlzLl9wcmltYXJ5SW5kZXguc2V0KGtleSwgaXRlbSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEluZGV4ZXMgYWxsIHRoZSBnaXZlbiBpdGVtcyBieSBrZXkgaWYgdGhlcmUgaXMgYW4gaW5kZXggZnVuY3Rpb24gZGVmaW5lZC5cbiAgICovXG4gIHByb3RlY3RlZCBpbmRleEFsbChpdGVtczogVFtdKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuX2luZGV4Rm4pIHtcbiAgICAgIGl0ZW1zLmZvckVhY2goaXRlbSA9PiB0aGlzLmluZGV4SXRlbShpdGVtKSk7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIGdldEl0ZW1LZXkoaXRlbTogVCk6IGFueSAge1xuICAgIGlmICh0aGlzLl9pbmRleEZuKSB7XG4gICAgICByZXR1cm4gdGhpcy5faW5kZXhGbihpdGVtKTtcbiAgICB9XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogRXZlbnQgaGFuZGxlciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICAvKipcbiAgICogT2NjdXJzIHdoZW4gdGhlIHNvcnQgaGFzIGNoYW5nZWQuXG4gICAqL1xuICBwcm90ZWN0ZWQgb25Tb3J0c0NoYW5nZWQoc29ydHM6IFNvcnRbXSk6IHZvaWQge1xuICAgIGlmICghdGhpcy5fbG9jYWxTb3J0KSB7XG4gICAgICB0aGlzLnJlbG9hZCgpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnNldERhdGEodGhpcy5kYXRhU25hcHNob3QsIHRydWUpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBPY2N1cnMgd2hlbiB0aGUgZmlsdGVyIGhhcyBjaGFuZ2VkLlxuICAgKi9cbiAgcHJvdGVjdGVkIG9uRmlsdGVyc0NoYW5nZWQoZmlsdGVyczogRmlsdGVyW10pOiB2b2lkIHtcbiAgICB0aGlzLnJlbG9hZCgpO1xuICB9XG5cbiAgcHJvdGVjdGVkIG9uRXJyb3IoZXJyOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLm9uU3RhdHVzKERhdGFDb250ZXh0U3RhdHVzLmVycm9yKGVycikpO1xuICB9XG5cbiAgcHJvdGVjdGVkIG9uSWRsZSgpOiB2b2lkIHtcbiAgICB0aGlzLm9uU3RhdHVzKERhdGFDb250ZXh0U3RhdHVzLmlkbGUoKSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgb25Mb2FkaW5nKCk6IHZvaWQge1xuICAgIHRoaXMub25TdGF0dXMoRGF0YUNvbnRleHRTdGF0dXMubG9hZGluZygpKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvblN0YXR1cyhzdGF0dXM6IERhdGFDb250ZXh0U3RhdHVzKTogdm9pZCB7XG4gICAgdGhpcy5fc3RhdHVzLm5leHQoc3RhdHVzKTtcbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBBYnN0cmFjdCBtZXRob2RzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIC8qKlxuICAgKiBTdWJjbGFzc2VzIG11c3QgaW1wbGVtZW50IHRoaXMgbWV0aG9kIGFuZFxuICAgKiByZWxvYWQgdGhlIGN1cnJlbnRseSBoZWxkIGRhdGEuXG4gICAqIElmIHBvc3NpYmxlLCB0aGUgY3VycmVudCB2aWV3IHN0YXRlIHNob3VsZCBiZSBrZXB0LlxuICAgKlxuICAgKiBAcmV0dXJucyBUaGUgcmVsb2FkIGpvYi5cbiAgICovXG4gIHByb3RlY3RlZCBhYnN0cmFjdCByZWxvYWRJbnRlcm5hbCgpOiBPYnNlcnZhYmxlPGFueT47XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIFByaXZhdGUgbWV0aG9kcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgcHJpdmF0ZSBjbGVhckluZGV4KCk6IHZvaWQge1xuICAgIHRoaXMuX3ByaW1hcnlJbmRleC5jbGVhcigpO1xuICB9XG59XG4iXX0=
|
|
@@ -3,12 +3,13 @@ import { LoggerFactory } from '@elderbyte/ts-logger';
|
|
|
3
3
|
import { DataContextSimple } from './data-context-simple';
|
|
4
4
|
import { DataContextActivePage } from './data-context-active-page';
|
|
5
5
|
import { DataContextContinuableToken } from './data-context-continuable-token';
|
|
6
|
-
import {
|
|
6
|
+
import { DataContextSourceAutoReloader } from './data-context-source-auto-reloader';
|
|
7
7
|
import { LocalPagedDataSource } from '../datasource/local/local-paged-data-source';
|
|
8
8
|
import { LocalListDataSource } from '../datasource/local/local-list-data-source';
|
|
9
9
|
import { SortUtil } from '../../utils/sort-util';
|
|
10
10
|
import { isContinuableDataSource, isListDataSource, isPagedDataSource } from '../datasource/data-source';
|
|
11
11
|
import { DelegateDataSource } from '../datasource/fetcher/delegate-data-source';
|
|
12
|
+
import { AutoStartSpec, DataContextAutoStarter } from './data-context-auto-starter';
|
|
12
13
|
/**
|
|
13
14
|
* Provides the ability to build a IDataContext<T>.
|
|
14
15
|
*/
|
|
@@ -97,6 +98,22 @@ export class DataContextBuilder {
|
|
|
97
98
|
this._reloadOnLocalChanges = true;
|
|
98
99
|
return this;
|
|
99
100
|
}
|
|
101
|
+
autoStartAsap(sort) {
|
|
102
|
+
return this.autoStartOn(AutoStartSpec.asap(sort));
|
|
103
|
+
}
|
|
104
|
+
autoStartOnFilters(filters, sort) {
|
|
105
|
+
return this.autoStartOn(AutoStartSpec.requireFilters(filters, sort));
|
|
106
|
+
}
|
|
107
|
+
autoStartOnFiltersAll(filters, sort) {
|
|
108
|
+
return this.autoStartOn(AutoStartSpec.requireFiltersAll(filters, sort));
|
|
109
|
+
}
|
|
110
|
+
autoStartOnFiltersAny(filters, sort) {
|
|
111
|
+
return this.autoStartOn(AutoStartSpec.requireFiltersAny(filters, sort));
|
|
112
|
+
}
|
|
113
|
+
autoStartOn(spec) {
|
|
114
|
+
this._autoStartSpec = spec;
|
|
115
|
+
return this;
|
|
116
|
+
}
|
|
100
117
|
/***************************************************************************
|
|
101
118
|
* *
|
|
102
119
|
* DataSource Builder *
|
|
@@ -194,7 +211,10 @@ export class DataContextBuilder {
|
|
|
194
211
|
else {
|
|
195
212
|
throw new Error('Unsupported IDataSource type: ' + typeof (ds));
|
|
196
213
|
}
|
|
197
|
-
|
|
214
|
+
if (this._autoStartSpec) {
|
|
215
|
+
this.setupDataContextAutoStart(dataContext, this._autoStartSpec);
|
|
216
|
+
}
|
|
217
|
+
return this.setupDataContextAutoReload(dataContext, ds);
|
|
198
218
|
}
|
|
199
219
|
fromListSource(listSource) {
|
|
200
220
|
return new DataContextSimple(listSource, this._indexFn, this._localApply, this._localSort);
|
|
@@ -208,11 +228,18 @@ export class DataContextBuilder {
|
|
|
208
228
|
fromActivePageSource(pageSource) {
|
|
209
229
|
return new DataContextActivePage(pageSource, this._pageSize, this._indexFn, this._localApply, this._skipLocalSort ? null : this._localSort);
|
|
210
230
|
}
|
|
211
|
-
|
|
231
|
+
setupDataContextAutoReload(dc, dataSource) {
|
|
212
232
|
if (this._reloadOnLocalChanges) {
|
|
213
|
-
const binding = new
|
|
233
|
+
const binding = new DataContextSourceAutoReloader(dc, dataSource);
|
|
234
|
+
}
|
|
235
|
+
return dc;
|
|
236
|
+
}
|
|
237
|
+
setupDataContextAutoStart(dc, autoStartSpec) {
|
|
238
|
+
if (this._autoStartSpec) {
|
|
239
|
+
this.logger.debug('Setting up data context auto start with spec:', this._autoStartSpec);
|
|
240
|
+
const binding = new DataContextAutoStarter(dc, autoStartSpec);
|
|
214
241
|
}
|
|
215
242
|
return dc;
|
|
216
243
|
}
|
|
217
244
|
}
|
|
218
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1jb250ZXh0LWJ1aWxkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lbGRlcmJ5dGUvbmd4LXN0YXJ0ZXIvc3JjL2xpYi9jb21tb24vZGF0YS9kYXRhLWNvbnRleHQvZGF0YS1jb250ZXh0LWJ1aWxkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLDJCQUEyQixFQUFDLE1BQU0sa0NBQWtDLENBQUM7QUFDN0UsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBQ25ELE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLHVCQUF1QixDQUFDO0FBQ3hELE9BQU8sRUFBQyxxQkFBcUIsRUFBQyxNQUFNLDRCQUE0QixDQUFDO0FBRWpFLE9BQU8sRUFBQywyQkFBMkIsRUFBQyxNQUFNLGtDQUFrQyxDQUFDO0FBRTdFLE9BQU8sRUFBQyw4QkFBOEIsRUFBQyxNQUFNLHVDQUF1QyxDQUFDO0FBQ3JGLE9BQU8sRUFBQyxvQkFBb0IsRUFBQyxNQUFNLDZDQUE2QyxDQUFDO0FBQ2pGLE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLDRDQUE0QyxDQUFDO0FBQy9FLE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSx1QkFBdUIsQ0FBQztBQUMvQyxPQUFPLEVBS0wsdUJBQXVCLEVBQ3ZCLGdCQUFnQixFQUNoQixpQkFBaUIsRUFDbEIsTUFBTSwyQkFBMkIsQ0FBQztBQUNuQyxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSw0Q0FBNEMsQ0FBQztBQUU5RTs7R0FFRztBQUNILE1BQU0sT0FBTyxrQkFBa0I7SUFnQzdCOzs7O2dGQUk0RTtJQUU1RTtRQXBDQTs7OztvRkFJNEU7UUFFM0QsV0FBTSxHQUFHLGFBQWEsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUtqRSxtQkFBYyxHQUFHLEtBQUssQ0FBQztR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QUFVLENBQ2hCLENBQUM7SUFDSixDQUFDO0lBRU8sY0FBYyxDQUFDLFVBQStCO1FBQ3BELE9BQU8sSUFBSSwyQkFBMkIsQ0FDcEMsVUFBVSxFQUNWLElBQUksQ0FBQyxTQUFTLEVBQ2QsSUFBSSxDQUFDLFFBQVEsRUFDYixJQUFJLENBQUMsV0FBVyxFQUNoQixJQUFJLENBQUMsVUFBVSxDQUNoQixDQUFDO0lBQ0osQ0FBQztJQUVPLHNCQUFzQixDQUFDLGtCQUE2QztRQUMxRSxPQUFPLElBQUksMkJBQTJCLENBQ3BDLGtCQUFrQixFQUNsQixJQUFJLENBQUMsU0FBUyxFQUNkLElBQUksQ0FBQyxRQUFRLEVBQ2IsSUFBSSxDQUFDLFdBQVcsRUFDaEIsSUFBSSxDQUFDLFVBQVUsQ0FDaEIsQ0FBQztJQUNKLENBQUM7SUFFTyxvQkFBb0IsQ0FBQyxVQUErQjtRQUMxRCxPQUFPLElBQUkscUJBQXFCLENBQzlCLFVBQVUsRUFDVixJQUFJLENBQUMsU0FBUyxFQUNkLElBQUksQ0FBQyxRQUFRLEVBQ2IsSUFBSSxDQUFDLFdBQVcsRUFDaEIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUM3QyxDQUFDO0lBQ0osQ0FBQztJQUVPLGdCQUFnQixDQUE2QixFQUFNLEVBQUUsVUFBNEI7UUFDdkYsSUFBSSxJQUFJLENBQUMscUJBQXFCLEVBQUU7WUFDOUIsTUFBTSxPQUFPLEdBQUcsSUFBSSw4QkFBOEIsQ0FBQyxFQUFFLEVBQUUsVUFBVSxDQUFDLENBQUM7U0FDcEU7UUFDRCxPQUFPLEVBQUUsQ0FBQztJQUNaLENBQUM7Q0FFRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7RGF0YUNvbnRleHRDb250aW51YWJsZVBhZ2VkfSBmcm9tICcuL2RhdGEtY29udGV4dC1jb250aW51YWJsZS1wYWdlZCc7XG5pbXBvcnQge0xvZ2dlckZhY3Rvcnl9IGZyb20gJ0BlbGRlcmJ5dGUvdHMtbG9nZ2VyJztcbmltcG9ydCB7RGF0YUNvbnRleHRTaW1wbGV9IGZyb20gJy4vZGF0YS1jb250ZXh0LXNpbXBsZSc7XG5pbXBvcnQge0RhdGFDb250ZXh0QWN0aXZlUGFnZX0gZnJvbSAnLi9kYXRhLWNvbnRleHQtYWN0aXZlLXBhZ2UnO1xuaW1wb3J0IHtTb3J0fSBmcm9tICcuLi9zb3J0JztcbmltcG9ydCB7RGF0YUNvbnRleHRDb250aW51YWJsZVRva2VufSBmcm9tICcuL2RhdGEtY29udGV4dC1jb250aW51YWJsZS10b2tlbic7XG5pbXBvcnQge0lEYXRhQ29udGV4dCwgSURhdGFDb250ZXh0QWN0aXZlUGFnZSwgSURhdGFDb250ZXh0Q29udGludWFibGV9IGZyb20gJy4vZGF0YS1jb250ZXh0JztcbmltcG9ydCB7RGF0YVNvdXJjZVRvRGF0YUNvbnRleHRCaW5kaW5nfSBmcm9tICcuL2RhdGEtc291cmNlLXRvLWRhdGEtY29udGV4dC1iaW5kaW5nJztcbmltcG9ydCB7TG9jYWxQYWdlZERhdGFTb3VyY2V9IGZyb20gJy4uL2RhdGFzb3VyY2UvbG9jYWwvbG9jYWwtcGFnZWQtZGF0YS1zb3VyY2UnO1xuaW1wb3J0IHtMb2NhbExpc3REYXRhU291cmNlfSBmcm9tICcuLi9kYXRhc291cmNlL2xvY2FsL2xvY2FsLWxpc3QtZGF0YS1zb3VyY2UnO1xuaW1wb3J0IHtTb3J0VXRpbH0gZnJvbSAnLi4vLi4vdXRpbHMvc29ydC11dGlsJztcbmltcG9ydCB7XG4gIElDb250aW51YWJsZURhdGFTb3VyY2UsXG4gIElEYXRhU291cmNlLFxuICBJTGlzdERhdGFTb3VyY2UsXG4gIElQYWdlZERhdGFTb3VyY2UsXG4gIGlzQ29udGludWFibGVEYXRhU291cmNlLFxuICBpc0xpc3REYXRhU291cmNlLFxuICBpc1BhZ2VkRGF0YVNvdXJjZVxufSBmcm9tICcuLi9kYXRhc291cmNlL2RhdGEtc291cmNlJztcbmltcG9ydCB7RGVsZWdhdGVEYXRhU291cmNlfSBmcm9tICcuLi9kYXRhc291cmNlL2ZldGNoZXIvZGVsZWdhdGUtZGF0YS1zb3VyY2UnO1xuXG4vKipcbiAqIFByb3ZpZGVzIHRoZSBhYmlsaXR5IHRvIGJ1aWxkIGEgSURhdGFDb250ZXh0PFQ+LlxuICovXG5leHBvcnQgY2xhc3MgRGF0YUNvbnRleHRCdWlsZGVyPFQ+IHtcblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogRmllbGRzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBwcml2YXRlIHJlYWRvbmx5IGxvZ2dlciA9IExvZ2dlckZhY3RvcnkuZ2V0TG9nZ2VyKHRoaXMuY29uc3RydWN0b3IubmFtZSk7XG5cbiAgcHJpdmF0ZSBfaW5kZXhGbj86ICgoaXRlbTogVCkgPT4gYW55KTtcbiAgcHJpdmF0ZSBfbG9jYWxBcHBseT86ICgoZGF0YTogVFtdKSA9PiBUW10pO1xuICBwcml2YXRlIF9sb2NhbFNvcnQ/OiAoKGRhdGE6IFRbXSwgc29ydHM6IFNvcnRbXSkgPT4gVFtdKTtcbiAgcHJpdmF0ZSBfc2tpcExvY2FsU29ydCA9IGZhbHNlO1xuICBwcml2YXRlIF9wYWdlU2l6ZSA9IDUwO1xuICBwcml2YXRlIF9yZWxvYWRPbkxvY2FsQ2hhbmdlcyA9IGZhbHNlO1xuICBwcml2YXRlIF9hY3RpdmVQYWdlZCA9IGZhbHNlO1xuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBTdGF0aWMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgbmV3IERhdGFDb250ZXh0QnVpbGRlci5cbiAgICogQHJldHVybnMgQSBuZXcgRGF0YUNvbnRleHRCdWlsZGVyIGZvciB0aGUgZ2l2ZW4gZGF0YSB0eXBlLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBzdGFydDxUPigpOiBEYXRhQ29udGV4dEJ1aWxkZXI8VD4ge1xuICAgIHJldHVybiBuZXcgRGF0YUNvbnRleHRCdWlsZGVyPFQ+KCk7XG4gIH1cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogQ29uc3RydWN0b3IgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBQdWJsaWMgQVBJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIC8qKlxuICAgKiBPcHRpb25hbCBpbmRleCBmdW5jdGlvbiB3aGVyZSBlYWNoIGVsZW1lbnQgd2lsbCBiZSBpbmRleGVkIGJ5LlxuICAgKiBJZiB5b3UgaGF2ZSBjb25maWd1cmVkIHRoaXMsIHlvdSBjYW4gdXNlIHRoZSBmaW5kQnlJbmRleChrZXkpIG9uIHRoZSBkYXRhLWNvbnRleHQuXG4gICAqL1xuICBwdWJsaWMgaW5kZXhCeShpbmRleEZuPzogKChpdGVtOiBUKSA9PiBhbnkpKTogdGhpcyB7XG4gICAgdGhpcy5faW5kZXhGbiA9IGluZGV4Rm47XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogVGhlIGRlc2lyZWQgc2l6ZSBvZiBhIHBhZ2UvY2h1bmsgd2hlbiBsb2FkaW5nIGRhdGEuXG4gICAqIE5vdGUgdGhhdCBjb250aW51YWJsZSBhcGlzIG1pZ2h0IGp1c3QgdGFrZSB0aGlzIGFzIGEgd2lzaCBvciBldmVuIGNvbXBsZXRlbHkgaWdub3JlIHRoaXMgcGFyYW0uXG4gICAqL1xuICBwdWJsaWMgcGFnZVNpemUoc2l6ZTogbnVtYmVyKTogdGhpcyB7XG4gICAgdGhpcy5fcGFnZVNpemUgPSBzaXplO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIFNvcnQgdGhlIGRhdGEgY29udGV4dCBsb2NhbGx5LlxuICAgKlxuICAgKiBOb3RlIHRoYXQgdGhpcyBtaWdodCBiZSBhIGNvc3RseSBvcGVyYXRpb24gd2hlbiB0aGVyZSBhcmUgYSBsb3Qgb2YgZWxlbWVudHMgcHJlc2VudC5cbiAgICogUHJlZmVyIHNlcnZlciBzaWRlIHNvcnRpbmcgaWYgcG9zc2libGUuXG4gICAqL1xuICBwdWJsaWMgbG9jYWxTb3J0KGxvY2FsU29ydD86IChkYXRhOiBUW10sIHNvcnRzOiBTb3J0W10pID0+IFRbXSk6IHRoaXMge1xuICAgIHRoaXMuX2xvY2FsU29ydCA9IGxvY2FsU29ydCA/IGxvY2FsU29ydCA6IFNvcnRVdGlsLnNvcnREYXRhO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIEVuYWJsZSBhY3RpdmUgcGFnaW5nIChpbiBjb250cmFzdCB0byB0aGUgaW5maW5pdGUgbG9hZCkgaW4gdGhlIGRhdGEgY29udGV4dC5cbiAgICogT25seSBzdXBwb3J0ZWQgaWYgdGhlIHVuZGVybHlpbmcgZGF0YXNvdXJjZSBzdXBwb3J0cyBwYWdpbmF0aW9uLlxuICAgKi9cbiAgcHVibGljIGFjdGl2ZVBhZ2VkKCk6IHRoaXMge1xuICAgIHRoaXMuX2FjdGl2ZVBhZ2VkID0gdHJ1ZTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKiBGb3IgZWFjaCBlbGVtZW50IHdoaWNoIGlzIGFkZGVkIHRvIHRoZSBkYXRhY29udGV4dCwgYXBwbHkgdGhlIGdpdmVuIGZ1bmN0aW9uLlxuICAgKi9cbiAgcHVibGljIGxvY2FsQXBwbHkobG9jYWxBcHBseTogKChkYXRhOiBUW10pID0+IFRbXSkpOiB0aGlzIHtcbiAgICB0aGlzLl9sb2NhbEFwcGx5ID0gbG9jYWxBcHBseTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKiBPbiBhIGxvY2FsIGNoYW5nZSBldmVudCwgYXV0b21hdGljYWxseSByZWxvYWQgZGF0YSBpbiB0aGUgZGF0YS1jb250ZXh0LlxuICAgKiBUaGlzIG1lYW5zIHdoZW5ldmVyIHRoZXJlIHdhcyBhbiBtb2RpZnkgb3BlcmF0aW9uIG9uIHRoZSByZXN0IGNsaWVudCxcbiAgICogc3VjaCBhcyBVcGRhdGUsIERlbGV0ZSBvciBDcmVhdGUsIHRoZSBkYXRhIHdpbGwgYmUgcmVsb2FkZWQuXG4gICAqL1xuICBwdWJsaWMgcmVsb2FkT25Mb2NhbENoYW5nZXMoKTogdGhpcyB7XG4gICAgdGhpcy5fcmVsb2FkT25Mb2NhbENoYW5nZXMgPSB0cnVlO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogRGF0YVNvdXJjZSBCdWlsZGVyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICAvKipcbiAgICogQnVpbGQgYSBuZXcgRGF0YUNvbnRleHQgZnJvbSB0aGUgZ2l2ZW4gRGF0YVNvdXJjZS5cbiAgICpcbiAgICogQ29tbW9uIERhdGFTb3VyY2VzIGFyZSBSZXN0Q2xpZW50LCBMb2NhbExpc3REYXRhU291cmNlIGFuZCBEZWxlZ2F0ZURhdGFTb3VyY2UuXG4gICAqXG4gICAqIEBwYXJhbSBkc1xuICAgKi9cbiAgcHVibGljIGJ1aWxkKGRzOiBJRGF0YVNvdXJjZTxUPik6IElEYXRhQ29udGV4dDxUPiB7XG4gICAgcmV0dXJuIHRoaXMuYnVpbGRGcm9tU291cmNlKGRzKTtcbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBMb2NhbCBEYXRhIEJ1aWxkZXIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG5cbiAgcHVibGljIGJ1aWxkTG9jYWwoaXRlbXM6IFRbXSwgaWRQcm9wZXJ0eT86IHN0cmluZyk6IElEYXRhQ29udGV4dDxUPiB7XG4gICAgcmV0dXJuIHRoaXMuYnVpbGQoXG4gICAgICBMb2NhbExpc3REYXRhU291cmNlLmZyb20oaXRlbXMsIGlkUHJvcGVydHkpXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBidWlsZExvY2FsQWN0aXZlUGFnZWQoXG4gICAgZGF0YTogVFtdLFxuICAgIGlkUHJvcGVydHk/OiBzdHJpbmdcbiAgKTogSURhdGFDb250ZXh0QWN0aXZlUGFnZTxUPiB7XG4gICAgdGhpcy5fc2tpcExvY2FsU29ydCA9IHRydWU7XG4gICAgdGhpcy5hY3RpdmVQYWdlZCgpO1xuICAgIHJldHVybiA8SURhdGFDb250ZXh0QWN0aXZlUGFnZTxUPj50aGlzLmJ1aWxkKFxuICAgICAgTG9jYWxQYWdlZERhdGFTb3VyY2UuZnJvbShkYXRhLCBpZFByb3BlcnR5LCB0aGlzLl9sb2NhbFNvcnQpXG4gICAgKTtcbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBFbXB0eSBEYXRhIEJ1aWxkZXIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG5cbiAgcHVibGljIGJ1aWxkRW1wdHkoKTogSURhdGFDb250ZXh0PFQ+IHtcbiAgICByZXR1cm4gdGhpcy5idWlsZChcbiAgICAgIERlbGVnYXRlRGF0YVNvdXJjZS5lbXB0eUxpc3RGZXRjaGVyKClcbiAgICApO1xuICB9XG5cbiAgcHVibGljIGJ1aWxkRW1wdHlDb250aW51YWJsZSgpOiBJRGF0YUNvbnRleHRDb250aW51YWJsZTxUPiB7XG4gICAgcmV0dXJuIDxJRGF0YUNvbnRleHRDb250aW51YWJsZTxUPj50aGlzLmJ1aWxkKFxuICAgICAgRGVsZWdhdGVEYXRhU291cmNlLmVtcHR5Q29udGludWFibGVGZXRjaGVyKClcbiAgICApO1xuICB9XG5cbiAgcHVibGljIGJ1aWxkRW1wdHlBY3RpdmVQYWdlZCgpOiBJRGF0YUNvbnRleHRBY3RpdmVQYWdlPFQ+IHtcbiAgICByZXR1cm4gPElEYXRhQ29udGV4dEFjdGl2ZVBhZ2U8VD4+dGhpc1xuICAgICAgLmFjdGl2ZVBhZ2VkKClcbiAgICAgIC5idWlsZChcbiAgICAgICAgRGVsZWdhdGVEYXRhU291cmNlLmVtcHR5UGFnZUZldGNoZXIoKSxcbiAgICAgICk7XG4gIH1cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogTGVnYWN5IENsaWVudCBCdWlsZGVyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICAvKipcbiAgICogQGRlcHJlY2F0ZWQgU3dpdGNoIHRvIGJ1aWxkKGRhdGFTb3VyY2UpXG4gICAqL1xuICBwdWJsaWMgYnVpbGRDbGllbnQoXG4gICAgZGF0YVNvdXJjZTogSUxpc3REYXRhU291cmNlPFQ+XG4gICk6IElEYXRhQ29udGV4dDxUPiB7XG4gICAgcmV0dXJuIHRoaXMuYnVpbGQoZGF0YVNvdXJjZSk7XG4gIH1cblxuICAvKipcbiAgICogQGRlcHJlY2F0ZWQgU3dpdGNoIHRvIGJ1aWxkKGRhdGFTb3VyY2UpXG4gICAqL1xuICBwdWJsaWMgYnVpbGRQYWdlZENsaWVudChcbiAgICBkYXRhU291cmNlOiBJUGFnZWREYXRhU291cmNlPFQ+XG4gICk6IElEYXRhQ29udGV4dENvbnRpbnVhYmxlPFQ+IHtcbiAgICByZXR1cm4gPElEYXRhQ29udGV4dENvbnRpbnVhYmxlPFQ+PnRoaXMuYnVpbGQoZGF0YVNvdXJjZSk7XG4gIH1cblxuICAvKipcbiAgICogQGRlcHJlY2F0ZWQgU3dpdGNoIHRvIGJ1aWxkKGRhdGFTb3VyY2UpXG4gICAqL1xuICBwdWJsaWMgYnVpbGRDb250aW51YXRpb25Ub2tlbkNsaWVudChcbiAgICBkYXRhU291cmNlOiBJQ29udGludWFibGVEYXRhU291cmNlPFQ+XG4gICk6IElEYXRhQ29udGV4dENvbnRpbnVhYmxlPFQ+IHtcbiAgICByZXR1cm4gPElEYXRhQ29udGV4dENvbnRpbnVhYmxlPFQ+PnRoaXMuYnVpbGQoZGF0YVNvdXJjZSk7XG4gIH1cblxuICAvKipcbiAgICogQGRlcHJlY2F0ZWQgU3dpdGNoIHRvIC5hY3RpdmVQYWdlZCgpLmJ1aWxkKGRhdGFTb3VyY2UpXG4gICAqL1xuICBwdWJsaWMgYnVpbGRBY3RpdmVQYWdlZENsaWVudChcbiAgICBkYXRhU291cmNlOiBJUGFnZWREYXRhU291cmNlPFQ+XG4gICk6IElEYXRhQ29udGV4dEFjdGl2ZVBhZ2U8VD4ge1xuICAgIHJldHVybiA8SURhdGFDb250ZXh0QWN0aXZlUGFnZTxUPj50aGlzLmFjdGl2ZVBhZ2VkKCkuYnVpbGQoZGF0YVNvdXJjZSk7XG4gIH1cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogUHJpdmF0ZSBtZXRob2RzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBwcml2YXRlIGJ1aWxkRnJvbVNvdXJjZShkczogSURhdGFTb3VyY2U8VD4pOiBJRGF0YUNvbnRleHQ8VD4ge1xuXG4gICAgbGV0IGRhdGFDb250ZXh0OiBJRGF0YUNvbnRleHQ8VD47XG5cbiAgICBpZiAoaXNMaXN0RGF0YVNvdXJjZShkcykpIHtcbiAgICAgIGRhdGFDb250ZXh0ID0gdGhpcy5mcm9tTGlzdFNvdXJjZShkcyk7XG4gICAgfSBlbHNlIGlmIChpc1BhZ2VkRGF0YVNvdXJjZShkcykpIHtcbiAgICAgIGlmICh0aGlzLl9hY3RpdmVQYWdlZCkge1xuICAgICAgICBkYXRhQ29udGV4dCA9IHRoaXMuZnJvbUFjdGl2ZVBhZ2VTb3VyY2UoZHMpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgZGF0YUNvbnRleHQgPSB0aGlzLmZyb21QYWdlU291cmNlKGRzKTtcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKGlzQ29udGludWFibGVEYXRhU291cmNlKGRzKSkge1xuICAgICAgZGF0YUNvbnRleHQgPSB0aGlzLmZyb21Db250aW51YXRpb25Tb3VyY2UoZHMpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ1Vuc3VwcG9ydGVkIElEYXRhU291cmNlIHR5cGU6ICcgKyB0eXBlb2YgKGRzKSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuYmluZFRvRGF0YVNvdXJjZShkYXRhQ29udGV4dCwgZHMpO1xuICB9XG5cbiAgcHJpdmF0ZSBmcm9tTGlzdFNvdXJjZShsaXN0U291cmNlOiBJTGlzdERhdGFTb3VyY2U8VD4pOiBJRGF0YUNvbnRleHQ8VD4ge1xuICAgIHJldHVybiBuZXcgRGF0YUNvbnRleHRTaW1wbGU8VD4oXG4gICAgICBsaXN0U291cmNlLFxuICAgICAgdGhpcy5faW5kZXhGbixcbiAgICAgIHRoaXMuX2xvY2FsQXBwbHksXG4gICAgICB0aGlzLl9sb2NhbFNvcnRcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBmcm9tUGFnZVNvdXJjZShwYWdlU291cmNlOiBJUGFnZWREYXRhU291cmNlPFQ+KTogSURhdGFDb250ZXh0Q29udGludWFibGU8VD4ge1xuICAgIHJldHVybiBuZXcgRGF0YUNvbnRleHRDb250aW51YWJsZVBhZ2VkPFQ+KFxuICAgICAgcGFnZVNvdXJjZSxcbiAgICAgIHRoaXMuX3BhZ2VTaXplLFxuICAgICAgdGhpcy5faW5kZXhGbixcbiAgICAgIHRoaXMuX2xvY2FsQXBwbHksXG4gICAgICB0aGlzLl9sb2NhbFNvcnRcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBmcm9tQ29udGludWF0aW9uU291cmNlKGNvbnRpbnVhdGlvblNvdXJjZTogSUNvbnRpbnVhYmxlRGF0YVNvdXJjZTxUPik6IElEYXRhQ29udGV4dENvbnRpbnVhYmxlPFQ+IHtcbiAgICByZXR1cm4gbmV3IERhdGFDb250ZXh0Q29udGludWFibGVUb2tlbjxUPihcbiAgICAgIGNvbnRpbnVhdGlvblNvdXJjZSxcbiAgICAgIHRoaXMuX3BhZ2VTaXplLFxuICAgICAgdGhpcy5faW5kZXhGbixcbiAgICAgIHRoaXMuX2xvY2FsQXBwbHksXG4gICAgICB0aGlzLl9sb2NhbFNvcnRcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBmcm9tQWN0aXZlUGFnZVNvdXJjZShwYWdlU291cmNlOiBJUGFnZWREYXRhU291cmNlPFQ+KTogSURhdGFDb250ZXh0QWN0aXZlUGFnZTxUPiB7XG4gICAgcmV0dXJuIG5ldyBEYXRhQ29udGV4dEFjdGl2ZVBhZ2U8VD4oXG4gICAgICBwYWdlU291cmNlLFxuICAgICAgdGhpcy5fcGFnZVNpemUsXG4gICAgICB0aGlzLl9pbmRleEZuLFxuICAgICAgdGhpcy5fbG9jYWxBcHBseSxcbiAgICAgIHRoaXMuX3NraXBMb2NhbFNvcnQgPyBudWxsIDogdGhpcy5fbG9jYWxTb3J0XG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgYmluZFRvRGF0YVNvdXJjZTxEQyBleHRlbmRzIElEYXRhQ29udGV4dDxUPj4oZGM6IERDLCBkYXRhU291cmNlOiBJRGF0YVNvdXJjZTxhbnk+KTogREMge1xuICAgIGlmICh0aGlzLl9yZWxvYWRPbkxvY2FsQ2hhbmdlcykge1xuICAgICAgY29uc3QgYmluZGluZyA9IG5ldyBEYXRhU291cmNlVG9EYXRhQ29udGV4dEJpbmRpbmcoZGMsIGRhdGFTb3VyY2UpO1xuICAgIH1cbiAgICByZXR1cm4gZGM7XG4gIH1cblxufVxuIl19
|
|
245
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1jb250ZXh0LWJ1aWxkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lbGRlcmJ5dGUvbmd4LXN0YXJ0ZXIvc3JjL2xpYi9jb21tb24vZGF0YS9kYXRhLWNvbnRleHQvZGF0YS1jb250ZXh0LWJ1aWxkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLDJCQUEyQixFQUFDLE1BQU0sa0NBQWtDLENBQUM7QUFDN0UsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBQ25ELE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLHVCQUF1QixDQUFDO0FBQ3hELE9BQU8sRUFBQyxxQkFBcUIsRUFBQyxNQUFNLDRCQUE0QixDQUFDO0FBRWpFLE9BQU8sRUFBQywyQkFBMkIsRUFBQyxNQUFNLGtDQUFrQyxDQUFDO0FBRTdFLE9BQU8sRUFBQyw2QkFBNkIsRUFBQyxNQUFNLHFDQUFxQyxDQUFDO0FBQ2xGLE9BQU8sRUFBQyxvQkFBb0IsRUFBQyxNQUFNLDZDQUE2QyxDQUFDO0FBQ2pGLE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLDRDQUE0QyxDQUFDO0FBQy9FLE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSx1QkFBdUIsQ0FBQztBQUMvQyxPQUFPLEVBS0wsdUJBQXVCLEVBQ3ZCLGdCQUFnQixFQUNoQixpQkFBaUIsRUFDbEIsTUFBTSwyQkFBMkIsQ0FBQztBQUNuQyxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSw0Q0FBNEMsQ0FBQztBQUM5RSxPQUFPLEVBQUMsYUFBYSxFQUFFLHNCQUFzQixFQUFDLE1BQU0sNkJBQTZCLENBQUM7QUFFbEY7O0dBRUc7QUFDSCxNQUFNLE9BQU8sa0JBQWtCO0lBaUM3Qjs7OztnRkFJNEU7SUFFNUU7UUFyQ0E7Ozs7b0ZBSTRFO1FBRTNELFdBQU0sR0FBRyxhQUFhLENBQUMsU0FBUyxDQUFDLElBQUksQ0FB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QUNKLENBQUM7SUFFTyxzQkFBc0IsQ0FBQyxrQkFBNkM7UUFDMUUsT0FBTyxJQUFJLDJCQUEyQixDQUNwQyxrQkFBa0IsRUFDbEIsSUFBSSxDQUFDLFNBQVMsRUFDZCxJQUFJLENBQUMsUUFBUSxFQUNiLElBQUksQ0FBQyxXQUFXLEVBQ2hCLElBQUksQ0FBQyxVQUFVLENBQ2hCLENBQUM7SUFDSixDQUFDO0lBRU8sb0JBQW9CLENBQUMsVUFBK0I7UUFDMUQsT0FBTyxJQUFJLHFCQUFxQixDQUM5QixVQUFVLEVBQ1YsSUFBSSxDQUFDLFNBQVMsRUFDZCxJQUFJLENBQUMsUUFBUSxFQUNiLElBQUksQ0FBQyxXQUFXLEVBQ2hCLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FDN0MsQ0FBQztJQUNKLENBQUM7SUFFTywwQkFBMEIsQ0FBNkIsRUFBTSxFQUFFLFVBQTRCO1FBQ2pHLElBQUksSUFBSSxDQUFDLHFCQUFxQixFQUFFO1lBQzlCLE1BQU0sT0FBTyxHQUFHLElBQUksNkJBQTZCLENBQUMsRUFBRSxFQUFFLFVBQVUsQ0FBQyxDQUFDO1NBQ25FO1FBQ0QsT0FBTyxFQUFFLENBQUM7SUFDWixDQUFDO0lBRU8seUJBQXlCLENBQTZCLEVBQU0sRUFBRSxhQUE0QjtRQUNoRyxJQUFJLElBQUksQ0FBQyxjQUFjLEVBQUU7WUFDdkIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsK0NBQStDLEVBQUUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1lBQ3hGLE1BQU0sT0FBTyxHQUFHLElBQUksc0JBQXNCLENBQUMsRUFBRSxFQUFFLGFBQWEsQ0FBQyxDQUFDO1NBQy9EO1FBQ0QsT0FBTyxFQUFFLENBQUM7SUFDWixDQUFDO0NBRUYiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0RhdGFDb250ZXh0Q29udGludWFibGVQYWdlZH0gZnJvbSAnLi9kYXRhLWNvbnRleHQtY29udGludWFibGUtcGFnZWQnO1xuaW1wb3J0IHtMb2dnZXJGYWN0b3J5fSBmcm9tICdAZWxkZXJieXRlL3RzLWxvZ2dlcic7XG5pbXBvcnQge0RhdGFDb250ZXh0U2ltcGxlfSBmcm9tICcuL2RhdGEtY29udGV4dC1zaW1wbGUnO1xuaW1wb3J0IHtEYXRhQ29udGV4dEFjdGl2ZVBhZ2V9IGZyb20gJy4vZGF0YS1jb250ZXh0LWFjdGl2ZS1wYWdlJztcbmltcG9ydCB7U29ydH0gZnJvbSAnLi4vc29ydCc7XG5pbXBvcnQge0RhdGFDb250ZXh0Q29udGludWFibGVUb2tlbn0gZnJvbSAnLi9kYXRhLWNvbnRleHQtY29udGludWFibGUtdG9rZW4nO1xuaW1wb3J0IHtJRGF0YUNvbnRleHQsIElEYXRhQ29udGV4dEFjdGl2ZVBhZ2UsIElEYXRhQ29udGV4dENvbnRpbnVhYmxlfSBmcm9tICcuL2RhdGEtY29udGV4dCc7XG5pbXBvcnQge0RhdGFDb250ZXh0U291cmNlQXV0b1JlbG9hZGVyfSBmcm9tICcuL2RhdGEtY29udGV4dC1zb3VyY2UtYXV0by1yZWxvYWRlcic7XG5pbXBvcnQge0xvY2FsUGFnZWREYXRhU291cmNlfSBmcm9tICcuLi9kYXRhc291cmNlL2xvY2FsL2xvY2FsLXBhZ2VkLWRhdGEtc291cmNlJztcbmltcG9ydCB7TG9jYWxMaXN0RGF0YVNvdXJjZX0gZnJvbSAnLi4vZGF0YXNvdXJjZS9sb2NhbC9sb2NhbC1saXN0LWRhdGEtc291cmNlJztcbmltcG9ydCB7U29ydFV0aWx9IGZyb20gJy4uLy4uL3V0aWxzL3NvcnQtdXRpbCc7XG5pbXBvcnQge1xuICBJQ29udGludWFibGVEYXRhU291cmNlLFxuICBJRGF0YVNvdXJjZSxcbiAgSUxpc3REYXRhU291cmNlLFxuICBJUGFnZWREYXRhU291cmNlLFxuICBpc0NvbnRpbnVhYmxlRGF0YVNvdXJjZSxcbiAgaXNMaXN0RGF0YVNvdXJjZSxcbiAgaXNQYWdlZERhdGFTb3VyY2Vcbn0gZnJvbSAnLi4vZGF0YXNvdXJjZS9kYXRhLXNvdXJjZSc7XG5pbXBvcnQge0RlbGVnYXRlRGF0YVNvdXJjZX0gZnJvbSAnLi4vZGF0YXNvdXJjZS9mZXRjaGVyL2RlbGVnYXRlLWRhdGEtc291cmNlJztcbmltcG9ydCB7QXV0b1N0YXJ0U3BlYywgRGF0YUNvbnRleHRBdXRvU3RhcnRlcn0gZnJvbSAnLi9kYXRhLWNvbnRleHQtYXV0by1zdGFydGVyJztcblxuLyoqXG4gKiBQcm92aWRlcyB0aGUgYWJpbGl0eSB0byBidWlsZCBhIElEYXRhQ29udGV4dDxUPi5cbiAqL1xuZXhwb3J0IGNsYXNzIERhdGFDb250ZXh0QnVpbGRlcjxUPiB7XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIEZpZWxkcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgcHJpdmF0ZSByZWFkb25seSBsb2dnZXIgPSBMb2dnZXJGYWN0b3J5LmdldExvZ2dlcih0aGlzLmNvbnN0cnVjdG9yLm5hbWUpO1xuXG4gIHByaXZhdGUgX2luZGV4Rm4/OiAoKGl0ZW06IFQpID0+IGFueSk7XG4gIHByaXZhdGUgX2xvY2FsQXBwbHk/OiAoKGRhdGE6IFRbXSkgPT4gVFtdKTtcbiAgcHJpdmF0ZSBfbG9jYWxTb3J0PzogKChkYXRhOiBUW10sIHNvcnRzOiBTb3J0W10pID0+IFRbXSk7XG4gIHByaXZhdGUgX3NraXBMb2NhbFNvcnQgPSBmYWxzZTtcbiAgcHJpdmF0ZSBfcGFnZVNpemUgPSA1MDtcbiAgcHJpdmF0ZSBfcmVsb2FkT25Mb2NhbENoYW5nZXMgPSBmYWxzZTtcbiAgcHJpdmF0ZSBfYWN0aXZlUGFnZWQgPSBmYWxzZTtcbiAgcHJpdmF0ZSBfYXV0b1N0YXJ0U3BlYz86IEF1dG9TdGFydFNwZWM7XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIFN0YXRpYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBuZXcgRGF0YUNvbnRleHRCdWlsZGVyLlxuICAgKiBAcmV0dXJucyBBIG5ldyBEYXRhQ29udGV4dEJ1aWxkZXIgZm9yIHRoZSBnaXZlbiBkYXRhIHR5cGUuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHN0YXJ0PFQ+KCk6IERhdGFDb250ZXh0QnVpbGRlcjxUPiB7XG4gICAgcmV0dXJuIG5ldyBEYXRhQ29udGV4dEJ1aWxkZXI8VD4oKTtcbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBDb25zdHJ1Y3RvciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICB9XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIFB1YmxpYyBBUEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgLyoqXG4gICAqIE9wdGlvbmFsIGluZGV4IGZ1bmN0aW9uIHdoZXJlIGVhY2ggZWxlbWVudCB3aWxsIGJlIGluZGV4ZWQgYnkuXG4gICAqIElmIHlvdSBoYXZlIGNvbmZpZ3VyZWQgdGhpcywgeW91IGNhbiB1c2UgdGhlIGZpbmRCeUluZGV4KGtleSkgb24gdGhlIGRhdGEtY29udGV4dC5cbiAgICovXG4gIHB1YmxpYyBpbmRleEJ5KGluZGV4Rm4/OiAoKGl0ZW06IFQpID0+IGFueSkpOiB0aGlzIHtcbiAgICB0aGlzLl9pbmRleEZuID0gaW5kZXhGbjtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgZGVzaXJlZCBzaXplIG9mIGEgcGFnZS9jaHVuayB3aGVuIGxvYWRpbmcgZGF0YS5cbiAgICogTm90ZSB0aGF0IGNvbnRpbnVhYmxlIGFwaXMgbWlnaHQganVzdCB0YWtlIHRoaXMgYXMgYSB3aXNoIG9yIGV2ZW4gY29tcGxldGVseSBpZ25vcmUgdGhpcyBwYXJhbS5cbiAgICovXG4gIHB1YmxpYyBwYWdlU2l6ZShzaXplOiBudW1iZXIpOiB0aGlzIHtcbiAgICB0aGlzLl9wYWdlU2l6ZSA9IHNpemU7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogU29ydCB0aGUgZGF0YSBjb250ZXh0IGxvY2FsbHkuXG4gICAqXG4gICAqIE5vdGUgdGhhdCB0aGlzIG1pZ2h0IGJlIGEgY29zdGx5IG9wZXJhdGlvbiB3aGVuIHRoZXJlIGFyZSBhIGxvdCBvZiBlbGVtZW50cyBwcmVzZW50LlxuICAgKiBQcmVmZXIgc2VydmVyIHNpZGUgc29ydGluZyBpZiBwb3NzaWJsZS5cbiAgICovXG4gIHB1YmxpYyBsb2NhbFNvcnQobG9jYWxTb3J0PzogKGRhdGE6IFRbXSwgc29ydHM6IFNvcnRbXSkgPT4gVFtdKTogdGhpcyB7XG4gICAgdGhpcy5fbG9jYWxTb3J0ID0gbG9jYWxTb3J0ID8gbG9jYWxTb3J0IDogU29ydFV0aWwuc29ydERhdGE7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogRW5hYmxlIGFjdGl2ZSBwYWdpbmcgKGluIGNvbnRyYXN0IHRvIHRoZSBpbmZpbml0ZSBsb2FkKSBpbiB0aGUgZGF0YSBjb250ZXh0LlxuICAgKiBPbmx5IHN1cHBvcnRlZCBpZiB0aGUgdW5kZXJseWluZyBkYXRhc291cmNlIHN1cHBvcnRzIHBhZ2luYXRpb24uXG4gICAqL1xuICBwdWJsaWMgYWN0aXZlUGFnZWQoKTogdGhpcyB7XG4gICAgdGhpcy5fYWN0aXZlUGFnZWQgPSB0cnVlO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIEZvciBlYWNoIGVsZW1lbnQgd2hpY2ggaXMgYWRkZWQgdG8gdGhlIGRhdGFjb250ZXh0LCBhcHBseSB0aGUgZ2l2ZW4gZnVuY3Rpb24uXG4gICAqL1xuICBwdWJsaWMgbG9jYWxBcHBseShsb2NhbEFwcGx5OiAoKGRhdGE6IFRbXSkgPT4gVFtdKSk6IHRoaXMge1xuICAgIHRoaXMuX2xvY2FsQXBwbHkgPSBsb2NhbEFwcGx5O1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIE9uIGEgbG9jYWwgY2hhbmdlIGV2ZW50LCBhdXRvbWF0aWNhbGx5IHJlbG9hZCBkYXRhIGluIHRoZSBkYXRhLWNvbnRleHQuXG4gICAqIFRoaXMgbWVhbnMgd2hlbmV2ZXIgdGhlcmUgd2FzIGFuIG1vZGlmeSBvcGVyYXRpb24gb24gdGhlIHJlc3QgY2xpZW50LFxuICAgKiBzdWNoIGFzIFVwZGF0ZSwgRGVsZXRlIG9yIENyZWF0ZSwgdGhlIGRhdGEgd2lsbCBiZSByZWxvYWRlZC5cbiAgICovXG4gIHB1YmxpYyByZWxvYWRPbkxvY2FsQ2hhbmdlcygpOiB0aGlzIHtcbiAgICB0aGlzLl9yZWxvYWRPbkxvY2FsQ2hhbmdlcyA9IHRydWU7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBwdWJsaWMgYXV0b1N0YXJ0QXNhcChzb3J0PzogU29ydFtdKTogdGhpcyB7XG4gICAgcmV0dXJuIHRoaXMuYXV0b1N0YXJ0T24oXG4gICAgICBBdXRvU3RhcnRTcGVjLmFzYXAoc29ydClcbiAgICApO1xuICB9XG5cbiAgcHVibGljIGF1dG9TdGFydE9uRmlsdGVycyhmaWx0ZXJzOiBBcnJheTxzdHJpbmdbXT4sIHNvcnQ/OiBTb3J0W10pOiB0aGlzIHtcbiAgICByZXR1cm4gdGhpcy5hdXRvU3RhcnRPbihcbiAgICAgIEF1dG9TdGFydFNwZWMucmVxdWlyZUZpbHRlcnMoZmlsdGVycywgc29ydClcbiAgICApO1xuICB9XG5cbiAgcHVibGljIGF1dG9TdGFydE9uRmlsdGVyc0FsbChmaWx0ZXJzOiBzdHJpbmdbXSwgc29ydD86IFNvcnRbXSk6IHRoaXMge1xuICAgIHJldHVybiB0aGlzLmF1dG9TdGFydE9uKFxuICAgICAgQXV0b1N0YXJ0U3BlYy5yZXF1aXJlRmlsdGVyc0FsbChmaWx0ZXJzLCBzb3J0KVxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgYXV0b1N0YXJ0T25GaWx0ZXJzQW55KGZpbHRlcnM6IHN0cmluZ1tdLCBzb3J0PzogU29ydFtdKTogdGhpcyB7XG4gICAgcmV0dXJuIHRoaXMuYXV0b1N0YXJ0T24oXG4gICAgICBBdXRvU3RhcnRTcGVjLnJlcXVpcmVGaWx0ZXJzQW55KGZpbHRlcnMsIHNvcnQpXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBhdXRvU3RhcnRPbihzcGVjOiBBdXRvU3RhcnRTcGVjKTogdGhpcyB7XG4gICAgdGhpcy5fYXV0b1N0YXJ0U3BlYyA9IHNwZWM7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogRGF0YVNvdXJjZSBCdWlsZGVyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICAvKipcbiAgICogQnVpbGQgYSBuZXcgRGF0YUNvbnRleHQgZnJvbSB0aGUgZ2l2ZW4gRGF0YVNvdXJjZS5cbiAgICpcbiAgICogQ29tbW9uIERhdGFTb3VyY2VzIGFyZSBSZXN0Q2xpZW50LCBMb2NhbExpc3REYXRhU291cmNlIGFuZCBEZWxlZ2F0ZURhdGFTb3VyY2UuXG4gICAqXG4gICAqIEBwYXJhbSBkc1xuICAgKi9cbiAgcHVibGljIGJ1aWxkKGRzOiBJRGF0YVNvdXJjZTxUPik6IElEYXRhQ29udGV4dDxUPiB7XG4gICAgcmV0dXJuIHRoaXMuYnVpbGRGcm9tU291cmNlKGRzKTtcbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBMb2NhbCBEYXRhIEJ1aWxkZXIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHB1YmxpYyBidWlsZExvY2FsKGl0ZW1zOiBUW10sIGlkUHJvcGVydHk/OiBzdHJpbmcpOiBJRGF0YUNvbnRleHQ8VD4ge1xuICAgIHJldHVybiB0aGlzLmJ1aWxkKFxuICAgICAgTG9jYWxMaXN0RGF0YVNvdXJjZS5mcm9tKGl0ZW1zLCBpZFByb3BlcnR5KVxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgYnVpbGRMb2NhbEFjdGl2ZVBhZ2VkKFxuICAgIGRhdGE6IFRbXSxcbiAgICBpZFByb3BlcnR5Pzogc3RyaW5nXG4gICk6IElEYXRhQ29udGV4dEFjdGl2ZVBhZ2U8VD4ge1xuICAgIHRoaXMuX3NraXBMb2NhbFNvcnQgPSB0cnVlO1xuICAgIHRoaXMuYWN0aXZlUGFnZWQoKTtcbiAgICByZXR1cm4gPElEYXRhQ29udGV4dEFjdGl2ZVBhZ2U8VD4+dGhpcy5idWlsZChcbiAgICAgIExvY2FsUGFnZWREYXRhU291cmNlLmZyb20oZGF0YSwgaWRQcm9wZXJ0eSwgdGhpcy5fbG9jYWxTb3J0KVxuICAgICk7XG4gIH1cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogRW1wdHkgRGF0YSBCdWlsZGVyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBwdWJsaWMgYnVpbGRFbXB0eSgpOiBJRGF0YUNvbnRleHQ8VD4ge1xuICAgIHJldHVybiB0aGlzLmJ1aWxkKFxuICAgICAgRGVsZWdhdGVEYXRhU291cmNlLmVtcHR5TGlzdEZldGNoZXIoKVxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgYnVpbGRFbXB0eUNvbnRpbnVhYmxlKCk6IElEYXRhQ29udGV4dENvbnRpbnVhYmxlPFQ+IHtcbiAgICByZXR1cm4gPElEYXRhQ29udGV4dENvbnRpbnVhYmxlPFQ+PnRoaXMuYnVpbGQoXG4gICAgICBEZWxlZ2F0ZURhdGFTb3VyY2UuZW1wdHlDb250aW51YWJsZUZldGNoZXIoKVxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgYnVpbGRFbXB0eUFjdGl2ZVBhZ2VkKCk6IElEYXRhQ29udGV4dEFjdGl2ZVBhZ2U8VD4ge1xuICAgIHJldHVybiA8SURhdGFDb250ZXh0QWN0aXZlUGFnZTxUPj50aGlzXG4gICAgICAuYWN0aXZlUGFnZWQoKVxuICAgICAgLmJ1aWxkKFxuICAgICAgICBEZWxlZ2F0ZURhdGFTb3VyY2UuZW1wdHlQYWdlRmV0Y2hlcigpLFxuICAgICAgKTtcbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBMZWdhY3kgQ2xpZW50IEJ1aWxkZXIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIC8qKlxuICAgKiBAZGVwcmVjYXRlZCBTd2l0Y2ggdG8gYnVpbGQoZGF0YVNvdXJjZSlcbiAgICovXG4gIHB1YmxpYyBidWlsZENsaWVudChcbiAgICBkYXRhU291cmNlOiBJTGlzdERhdGFTb3VyY2U8VD5cbiAgKTogSURhdGFDb250ZXh0PFQ+IHtcbiAgICByZXR1cm4gdGhpcy5idWlsZChkYXRhU291cmNlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVwcmVjYXRlZCBTd2l0Y2ggdG8gYnVpbGQoZGF0YVNvdXJjZSlcbiAgICovXG4gIHB1YmxpYyBidWlsZFBhZ2VkQ2xpZW50KFxuICAgIGRhdGFTb3VyY2U6IElQYWdlZERhdGFTb3VyY2U8VD5cbiAgKTogSURhdGFDb250ZXh0Q29udGludWFibGU8VD4ge1xuICAgIHJldHVybiA8SURhdGFDb250ZXh0Q29udGludWFibGU8VD4+dGhpcy5idWlsZChkYXRhU291cmNlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVwcmVjYXRlZCBTd2l0Y2ggdG8gYnVpbGQoZGF0YVNvdXJjZSlcbiAgICovXG4gIHB1YmxpYyBidWlsZENvbnRpbnVhdGlvblRva2VuQ2xpZW50KFxuICAgIGRhdGFTb3VyY2U6IElDb250aW51YWJsZURhdGFTb3VyY2U8VD5cbiAgKTogSURhdGFDb250ZXh0Q29udGludWFibGU8VD4ge1xuICAgIHJldHVybiA8SURhdGFDb250ZXh0Q29udGludWFibGU8VD4+dGhpcy5idWlsZChkYXRhU291cmNlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVwcmVjYXRlZCBTd2l0Y2ggdG8gLmFjdGl2ZVBhZ2VkKCkuYnVpbGQoZGF0YVNvdXJjZSlcbiAgICovXG4gIHB1YmxpYyBidWlsZEFjdGl2ZVBhZ2VkQ2xpZW50KFxuICAgIGRhdGFTb3VyY2U6IElQYWdlZERhdGFTb3VyY2U8VD5cbiAgKTogSURhdGFDb250ZXh0QWN0aXZlUGFnZTxUPiB7XG4gICAgcmV0dXJuIDxJRGF0YUNvbnRleHRBY3RpdmVQYWdlPFQ+PnRoaXMuYWN0aXZlUGFnZWQoKS5idWlsZChkYXRhU291cmNlKTtcbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBQcml2YXRlIG1ldGhvZHMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHByaXZhdGUgYnVpbGRGcm9tU291cmNlKGRzOiBJRGF0YVNvdXJjZTxUPik6IElEYXRhQ29udGV4dDxUPiB7XG5cbiAgICBsZXQgZGF0YUNvbnRleHQ6IElEYXRhQ29udGV4dDxUPjtcblxuICAgIGlmIChpc0xpc3REYXRhU291cmNlKGRzKSkge1xuICAgICAgZGF0YUNvbnRleHQgPSB0aGlzLmZyb21MaXN0U291cmNlKGRzKTtcbiAgICB9IGVsc2UgaWYgKGlzUGFnZWREYXRhU291cmNlKGRzKSkge1xuICAgICAgaWYgKHRoaXMuX2FjdGl2ZVBhZ2VkKSB7XG4gICAgICAgIGRhdGFDb250ZXh0ID0gdGhpcy5mcm9tQWN0aXZlUGFnZVNvdXJjZShkcyk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBkYXRhQ29udGV4dCA9IHRoaXMuZnJvbVBhZ2VTb3VyY2UoZHMpO1xuICAgICAgfVxuICAgIH0gZWxzZSBpZiAoaXNDb250aW51YWJsZURhdGFTb3VyY2UoZHMpKSB7XG4gICAgICBkYXRhQ29udGV4dCA9IHRoaXMuZnJvbUNvbnRpbnVhdGlvblNvdXJjZShkcyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignVW5zdXBwb3J0ZWQgSURhdGFTb3VyY2UgdHlwZTogJyArIHR5cGVvZiAoZHMpKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5fYXV0b1N0YXJ0U3BlYykge1xuICAgICAgdGhpcy5zZXR1cERhdGFDb250ZXh0QXV0b1N0YXJ0KGRhdGFDb250ZXh0LCB0aGlzLl9hdXRvU3RhcnRTcGVjKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5zZXR1cERhdGFDb250ZXh0QXV0b1JlbG9hZChkYXRhQ29udGV4dCwgZHMpO1xuICB9XG5cbiAgcHJpdmF0ZSBmcm9tTGlzdFNvdXJjZShsaXN0U291cmNlOiBJTGlzdERhdGFTb3VyY2U8VD4pOiBJRGF0YUNvbnRleHQ8VD4ge1xuICAgIHJldHVybiBuZXcgRGF0YUNvbnRleHRTaW1wbGU8VD4oXG4gICAgICBsaXN0U291cmNlLFxuICAgICAgdGhpcy5faW5kZXhGbixcbiAgICAgIHRoaXMuX2xvY2FsQXBwbHksXG4gICAgICB0aGlzLl9sb2NhbFNvcnRcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBmcm9tUGFnZVNvdXJjZShwYWdlU291cmNlOiBJUGFnZWREYXRhU291cmNlPFQ+KTogSURhdGFDb250ZXh0Q29udGludWFibGU8VD4ge1xuICAgIHJldHVybiBuZXcgRGF0YUNvbnRleHRDb250aW51YWJsZVBhZ2VkPFQ+KFxuICAgICAgcGFnZVNvdXJjZSxcbiAgICAgIHRoaXMuX3BhZ2VTaXplLFxuICAgICAgdGhpcy5faW5kZXhGbixcbiAgICAgIHRoaXMuX2xvY2FsQXBwbHksXG4gICAgICB0aGlzLl9sb2NhbFNvcnRcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBmcm9tQ29udGludWF0aW9uU291cmNlKGNvbnRpbnVhdGlvblNvdXJjZTogSUNvbnRpbnVhYmxlRGF0YVNvdXJjZTxUPik6IElEYXRhQ29udGV4dENvbnRpbnVhYmxlPFQ+IHtcbiAgICByZXR1cm4gbmV3IERhdGFDb250ZXh0Q29udGludWFibGVUb2tlbjxUPihcbiAgICAgIGNvbnRpbnVhdGlvblNvdXJjZSxcbiAgICAgIHRoaXMuX3BhZ2VTaXplLFxuICAgICAgdGhpcy5faW5kZXhGbixcbiAgICAgIHRoaXMuX2xvY2FsQXBwbHksXG4gICAgICB0aGlzLl9sb2NhbFNvcnRcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBmcm9tQWN0aXZlUGFnZVNvdXJjZShwYWdlU291cmNlOiBJUGFnZWREYXRhU291cmNlPFQ+KTogSURhdGFDb250ZXh0QWN0aXZlUGFnZTxUPiB7XG4gICAgcmV0dXJuIG5ldyBEYXRhQ29udGV4dEFjdGl2ZVBhZ2U8VD4oXG4gICAgICBwYWdlU291cmNlLFxuICAgICAgdGhpcy5fcGFnZVNpemUsXG4gICAgICB0aGlzLl9pbmRleEZuLFxuICAgICAgdGhpcy5fbG9jYWxBcHBseSxcbiAgICAgIHRoaXMuX3NraXBMb2NhbFNvcnQgPyBudWxsIDogdGhpcy5fbG9jYWxTb3J0XG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgc2V0dXBEYXRhQ29udGV4dEF1dG9SZWxvYWQ8REMgZXh0ZW5kcyBJRGF0YUNvbnRleHQ8VD4+KGRjOiBEQywgZGF0YVNvdXJjZTogSURhdGFTb3VyY2U8YW55Pik6IERDIHtcbiAgICBpZiAodGhpcy5fcmVsb2FkT25Mb2NhbENoYW5nZXMpIHtcbiAgICAgIGNvbnN0IGJpbmRpbmcgPSBuZXcgRGF0YUNvbnRleHRTb3VyY2VBdXRvUmVsb2FkZXIoZGMsIGRhdGFTb3VyY2UpO1xuICAgIH1cbiAgICByZXR1cm4gZGM7XG4gIH1cblxuICBwcml2YXRlIHNldHVwRGF0YUNvbnRleHRBdXRvU3RhcnQ8REMgZXh0ZW5kcyBJRGF0YUNvbnRleHQ8VD4+KGRjOiBEQywgYXV0b1N0YXJ0U3BlYzogQXV0b1N0YXJ0U3BlYyk6IERDIHtcbiAgICBpZiAodGhpcy5fYXV0b1N0YXJ0U3BlYykge1xuICAgICAgdGhpcy5sb2dnZXIuZGVidWcoJ1NldHRpbmcgdXAgZGF0YSBjb250ZXh0IGF1dG8gc3RhcnQgd2l0aCBzcGVjOicsIHRoaXMuX2F1dG9TdGFydFNwZWMpO1xuICAgICAgY29uc3QgYmluZGluZyA9IG5ldyBEYXRhQ29udGV4dEF1dG9TdGFydGVyKGRjLCBhdXRvU3RhcnRTcGVjKTtcbiAgICB9XG4gICAgcmV0dXJuIGRjO1xuICB9XG5cbn1cbiJdfQ==
|
|
@@ -66,4 +66,4 @@ export class DataContextContinuableBase extends DataContextBase {
|
|
|
66
66
|
});
|
|
67
67
|
}
|
|
68
68
|
}
|
|
69
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
69
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1jb250ZXh0LWNvbnRpbnVhYmxlLWJhc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lbGRlcmJ5dGUvbmd4LXN0YXJ0ZXIvc3JjL2xpYi9jb21tb24vZGF0YS9kYXRhLWNvbnRleHQvZGF0YS1jb250ZXh0LWNvbnRpbnVhYmxlLWJhc2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBR3BELE9BQU8sRUFBUyxhQUFhLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQU0zRDs7O0dBR0c7QUFDSCxNQUFNLE9BQWdCLDBCQUE4QixTQUFRLGVBQWtCO0lBWTVFOzs7O2dGQUk0RTtJQUU1RSxZQUNFLFVBQTBCLEVBQzFCLFNBQWlCLEVBQ2pCLE9BQTJCLEVBQzNCLFVBQWdDLEVBQ2hDLFNBQThDO1FBRTlDLEtBQUssQ0FBQyxVQUFVLEVBQUUsT0FBTyxFQUFFLFVBQVUsRUFBRSxTQUFTLENBQUMsQ0FBQztRQXZCcEQ7Ozs7b0ZBSTRFO1FBRTNELGFBQVEsR0FBVyxhQUFhLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUM7UUFrQmpGLElBQUksQ0FBQyxVQUFVLEdBQUcsU0FBUyxDQUFDO0lBQzlCLENBQUM7SUFFRDs7OztnRkFJNEU7SUFFckUsT0FBTyxDQUFDLEtBQWMsRUFBRSxPQUFrQjtRQUUvQyxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQywrQkFBK0IsQ0FBQyxDQUFDO1FBRXJELGtCQUFrQjtRQUNsQixJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRSxPQUFPLENBQUM7YUFDdkIsU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUNkLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLHdEQUF3RCxDQUFDLENBQUM7WUFDOUUsa0NBQWtDO1lBQ2xDLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUNwQixDQUFDLEVBQUUsR0FBRyxDQUFDLEVBQUU7WUFDUCxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ2xCLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLGtEQUFrRCxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBQy9FLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVELElBQVcsU0FBUztRQUNsQixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUM7SUFDekIsQ0FBQztJQUVELElBQVcsU0FBUyxDQUFDLElBQVk7UUFDL0IsSUFBSSxJQUFJLENBQUMsVUFBVSxLQUFLLElBQUksRUFBRTtZQUM1QixJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQztZQUN2QixJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDL0I7SUFDSCxDQUFDO0lBRUQ7Ozs7Z0ZBSTRFO0lBRWxFLGtCQUFrQixDQUFDLE9BQWUsSUFBVyxDQUFDO0lBRWhELFVBQVU7UUFDaEIsSUFBSSxDQUFDLFFBQVEsRUFBRTthQUNaLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDZCxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyw4Q0FBOEMsQ0FBQyxDQUFDO1lBQ3BFLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUNwQixDQUFDLEVBQUUsR0FBRyxDQUFDLEVBQUU7WUFDUCxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ2xCLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLHFCQUFxQixFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBQ2xELENBQUMsRUFBRSxHQUFHLEVBQUU7WUFDTixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyw2QkFBNkIsQ0FBQyxDQUFDO1FBQ3BELENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztDQUtGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtEYXRhQ29udGV4dEJhc2V9IGZyb20gJy4vZGF0YS1jb250ZXh0LWJhc2UnO1xuaW1wb3J0IHtTb3J0fSBmcm9tICcuLi9zb3J0JztcbmltcG9ydCB7RmlsdGVyfSBmcm9tICcuLi9maWx0ZXInO1xuaW1wb3J0IHtMb2dnZXIsIExvZ2dlckZhY3Rvcnl9IGZyb20gJ0BlbGRlcmJ5dGUvdHMtbG9nZ2VyJztcbmltcG9ydCB7T2JzZXJ2YWJsZX0gZnJvbSAncnhqcyc7XG5pbXBvcnQge0lEYXRhQ29udGV4dENvbnRpbnVhYmxlfSBmcm9tICcuL2RhdGEtY29udGV4dCc7XG5pbXBvcnQge0lEYXRhU291cmNlfSBmcm9tICcuLi9kYXRhc291cmNlL2RhdGEtc291cmNlJztcblxuXG4vKipcbiAqIEV4dGVuZHMgYSBzaW1wbGUgZmxhdCBsaXN0IGRhdGEtY29udGV4dCB3aXRoIGluZmluaXRlLXNjcm9sbCBwYWdpbmF0aW9uIHN1cHBvcnQuXG4gKlxuICovXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgRGF0YUNvbnRleHRDb250aW51YWJsZUJhc2U8VD4gZXh0ZW5kcyBEYXRhQ29udGV4dEJhc2U8VD4gaW1wbGVtZW50cyBJRGF0YUNvbnRleHRDb250aW51YWJsZTxUPiB7XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIEZpZWxkcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgcHJpdmF0ZSByZWFkb25seSBjYmxvZ2dlcjogTG9nZ2VyID0gTG9nZ2VyRmFjdG9yeS5nZXRMb2dnZXIodGhpcy5jb25zdHJ1Y3Rvci5uYW1lKTtcblxuICBwcml2YXRlIF9jaHVua1NpemU6IG51bWJlcjtcblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogQ29uc3RydWN0b3JzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBwcm90ZWN0ZWQgY29uc3RydWN0b3IoXG4gICAgZGF0YVNvdXJjZTogSURhdGFTb3VyY2U8VD4sXG4gICAgY2h1bmtTaXplOiBudW1iZXIsXG4gICAgaW5kZXhGbjogKChpdGVtOiBUKSA9PiBhbnkpLFxuICAgIGxvY2FsQXBwbHk6ICgoZGF0YTogVFtdKSA9PiBUW10pLFxuICAgIGxvY2FsU29ydDogKChkYXRhOiBUW10sIHNvcnRzOiBTb3J0W10pID0+IFRbXSlcbiAgKSB7XG4gICAgc3VwZXIoZGF0YVNvdXJjZSwgaW5kZXhGbiwgbG9jYWxBcHBseSwgbG9jYWxTb3J0KTtcbiAgICB0aGlzLl9jaHVua1NpemUgPSBjaHVua1NpemU7XG4gIH1cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogUHVibGljIEFQSSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBwdWJsaWMgbG9hZEFsbChzb3J0cz86IFNvcnRbXSwgZmlsdGVycz86IEZpbHRlcltdKTogdm9pZCB7XG5cbiAgICB0aGlzLmNibG9nZ2VyLmRlYnVnKCdTdGFydGluZyB0byBsb2FkIGFsbCBkYXRhIC4uLicpO1xuXG4gICAgLy8gbG9hZCBmaXJzdCBwYWdlXG4gICAgdGhpcy5zdGFydChzb3J0cywgZmlsdGVycylcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICB0aGlzLmNibG9nZ2VyLmRlYnVnKCdGaXJzdCBwYWdlIGhhcyBiZWVuIGxvYWRlZC4gTG9hZGluZyByZW1haW5pbmcgZGF0YSAuLi4nKTtcbiAgICAgICAgLy8gbG9hZCByZXN0IGluIGEgcmVjdXJzaXZlIG1hbm5lclxuICAgICAgICB0aGlzLmxvYWRBbGxSZWMoKTtcbiAgICAgIH0sIGVyciA9PiB7XG4gICAgICAgIHRoaXMub25FcnJvcihlcnIpO1xuICAgICAgICB0aGlzLmNibG9nZ2VyLmVycm9yKCdGYWlsZWQgdG8gbG9hZCBmaXJzdCBwYWdlIG9mIGxvYWQgYWxsIHByb2NlZHVyZSEnLCBlcnIpO1xuICAgICAgfSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGNodW5rU2l6ZSgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLl9jaHVua1NpemU7XG4gIH1cblxuICBwdWJsaWMgc2V0IGNodW5rU2l6ZShzaXplOiBudW1iZXIpIHtcbiAgICBpZiAodGhpcy5fY2h1bmtTaXplICE9PSBzaXplKSB7XG4gICAgICB0aGlzLl9jaHVua1NpemUgPSBzaXplO1xuICAgICAgdGhpcy5vbkNodW5rU2l6ZUNoYW5nZWQoc2l6ZSk7XG4gICAgfVxuICB9XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIFByaXZhdGUgTWV0aG9kcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgcHJvdGVjdGVkIG9uQ2h1bmtTaXplQ2hhbmdlZChuZXdTaXplOiBudW1iZXIpOiB2b2lkIHsgIH1cblxuICBwcml2YXRlIGxvYWRBbGxSZWMoKTogdm9pZCB7XG4gICAgdGhpcy5sb2FkTW9yZSgpXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgdGhpcy5jYmxvZ2dlci5kZWJ1ZygnTG9hZGluZyBkYXRhIGNodW5rIGZpbmlzaGVkLCBsb2FkaW5nIG5leHQuLi4nKTtcbiAgICAgICAgdGhpcy5sb2FkQWxsUmVjKCk7XG4gICAgICB9LCBlcnIgPT4ge1xuICAgICAgICB0aGlzLm9uRXJyb3IoZXJyKTtcbiAgICAgICAgdGhpcy5jYmxvZ2dlci5lcnJvcignTG9hZGluZyBhbGwgZmFpbGVkIScsIGVycik7XG4gICAgICB9LCAoKSA9PiB7XG4gICAgICAgIHRoaXMuY2Jsb2dnZXIuaW5mbygnQWxsIGRhdGEgbG9hZGVkIGNvbXBsZXRlbHkuJyk7XG4gICAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBhYnN0cmFjdCBsb2FkTW9yZSgpOiBPYnNlcnZhYmxlPGFueT47XG4gIHB1YmxpYyBhYnN0cmFjdCBnZXQgaGFzTW9yZURhdGFTbmFwc2hvdCgpOiBib29sZWFuO1xuICBwdWJsaWMgYWJzdHJhY3QgZ2V0IGhhc01vcmVEYXRhKCk6IE9ic2VydmFibGU8Ym9vbGVhbj47XG59XG4iXX0=
|