angular-slickgrid 8.7.0 → 8.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/app/modules/angular-slickgrid/components/angular-slickgrid.component.d.ts +1 -0
- package/esm2022/app/modules/angular-slickgrid/components/angular-slickgrid.component.mjs +16 -6
- package/esm2022/app/modules/angular-slickgrid/extensions/slickRowDetailView.mjs +4 -4
- package/esm2022/app/modules/angular-slickgrid/modules/angular-slickgrid.module.mjs +4 -4
- package/esm2022/app/modules/angular-slickgrid/services/angularUtil.service.mjs +3 -3
- package/esm2022/app/modules/angular-slickgrid/services/container.service.mjs +3 -3
- package/esm2022/app/modules/angular-slickgrid/services/translater.service.mjs +3 -3
- package/fesm2022/angular-slickgrid.mjs +31 -21
- package/fesm2022/angular-slickgrid.mjs.map +1 -1
- package/package.json +10 -10
|
@@ -146,8 +146,8 @@ export class SlickRowDetailView extends UniversalSlickRowDetailView {
|
|
|
146
146
|
}
|
|
147
147
|
// --
|
|
148
148
|
// hook some events needed by the Plugin itself
|
|
149
|
-
//
|
|
150
|
-
this.eventHandler.subscribe(this._grid.
|
|
149
|
+
// redraw anytime the grid is re-rendered
|
|
150
|
+
this.eventHandler.subscribe(this._grid.onRendered, this.redrawAllViewComponents.bind(this));
|
|
151
151
|
// on row selection changed, we also need to redraw
|
|
152
152
|
if (this.gridOptions.enableRowSelection || this.gridOptions.enableCheckboxSelector) {
|
|
153
153
|
this.eventHandler.subscribe(this._grid.onSelectedRowsChanged, this.redrawAllViewComponents.bind(this));
|
|
@@ -155,7 +155,7 @@ export class SlickRowDetailView extends UniversalSlickRowDetailView {
|
|
|
155
155
|
// on sort, all row detail are collapsed so we can dispose of all the Views as well
|
|
156
156
|
this.eventHandler.subscribe(this._grid.onSort, this.disposeAllViewComponents.bind(this));
|
|
157
157
|
// on filter changed, we need to re-render all Views
|
|
158
|
-
this._subscriptions.push(this.eventPubSubService?.subscribe('onFilterChanged', this.redrawAllViewComponents.bind(this)), this.eventPubSubService?.subscribe('onGridMenuClearAllFilters',
|
|
158
|
+
this._subscriptions.push(this.eventPubSubService?.subscribe('onFilterChanged', this.redrawAllViewComponents.bind(this)), this.eventPubSubService?.subscribe(['onGridMenuClearAllFilters', 'onGridMenuClearAllSorting'], () => window.setTimeout(() => this.redrawAllViewComponents())));
|
|
159
159
|
}
|
|
160
160
|
}
|
|
161
161
|
return this;
|
|
@@ -293,4 +293,4 @@ export class SlickRowDetailView extends UniversalSlickRowDetailView {
|
|
|
293
293
|
}
|
|
294
294
|
}
|
|
295
295
|
}
|
|
296
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2xpY2tSb3dEZXRhaWxWaWV3LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9tb2R1bGVzL2FuZ3VsYXItc2xpY2tncmlkL2V4dGVuc2lvbnMvc2xpY2tSb3dEZXRhaWxWaWV3LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSx1QkFBdUIsRUFBRSxzQkFBc0IsRUFBRSxjQUFjLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUV2SSxPQUFPLEVBQUUsa0JBQWtCLElBQUksMkJBQTJCLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQztBQUNoSCxPQUFPLEVBQUUsVUFBVSxFQUFnQixNQUFNLE1BQU0sQ0FBQztBQUtoRCxNQUFNLDJCQUEyQixHQUFHLFlBQVksQ0FBQztBQUNqRCxNQUFNLHdCQUF3QixHQUFHLG1CQUFtQixDQUFDO0FBUXJELE1BQU0sT0FBTyxrQkFBbUIsU0FBUSwyQkFBMkI7SUFRakUsWUFDcUIsa0JBQXNDLEVBQ3RDLE1BQXNCLEVBQ3RCLGtCQUFzQyxFQUN0QyxvQkFBb0MsRUFDN0MsSUFBaUI7UUFFM0IsS0FBSyxDQUFDLGtCQUFrQixDQUFDLENBQUM7UUFOUCx1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW9CO1FBQ3RDLFdBQU0sR0FBTixNQUFNLENBQWdCO1FBQ3RCLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBb0I7UUFDdEMseUJBQW9CLEdBQXBCLG9CQUFvQixDQUFnQjtRQUM3QyxTQUFJLEdBQUosSUFBSSxDQUFhO1FBVm5CLFdBQU0sR0FBa0IsRUFBRSxDQUFDO1FBRTNCLG1CQUFjLEdBQXdCLEVBQUUsQ0FBQztJQVduRCxDQUFDO0lBRUQsSUFBSSxZQUFZO1FBQ2QsT0FBTyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7SUFDM0IsQ0FBQztJQUVELElBQWMsaUJBQWlCO1FBQzdCLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxxQkFBcUIsSUFBSSxJ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LElBQUksSUFBSSxDQUFDO1lBQ2xFLHVCQUF1QixDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsUUFBUSxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBQzdELENBQUM7YUFBTSxDQUFDO1lBQ04sK0NBQStDO1lBQy9DLE1BQU0sY0FBYyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUMsSUFBaUIsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsS0FBSyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLENBQUM7WUFDbkgsSUFBSSxjQUFjLElBQUksQ0FBQyxJQUFJLGNBQWMsSUFBSSxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7Z0JBQ3pELE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUMsWUFBWSxDQUFDO2dCQUN6RCxJQUFJLE9BQU8sRUFBRSxDQUFDO29CQUNaLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQztvQkFDekMsT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFDO2dCQUNwQixDQUFDO2dCQUNELElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLGNBQWMsRUFBRSxDQUFDLENBQUMsQ0FBQztZQUN4QyxDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7SUFFRCx3RUFBd0U7SUFDOUQsOEJBQThCLENBQUMsRUFBZ0QsRUFBRSxJQUFrQztRQUMzSCxJQUFJLElBQUksRUFBRSxJQUFJLEVBQUUsQ0FBQztZQUNmLElBQUksQ0FBQyx1QkFBdUIsRUFBRSxDQUFDO1FBQ2pDLENBQUM7SUFDSCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IEFwcGxpY2F0aW9uUmVmLCBDb21wb25lbnRSZWYsIFR5cGUsIFZpZXdDb250YWluZXJSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB0eXBlIHsgRXZlbnRTdWJzY3JpcHRpb24sIE9uQmVmb3JlUm93RGV0YWlsVG9nZ2xlQXJncywgT25Sb3dCYWNrVG9WaWV3cG9ydFJhbmdlQXJncywgUnhKc0ZhY2FkZSwgU2xpY2tFdmVudERhdGEsIFNsaWNrRXZlbnRIYW5kbGVyLCBTbGlja0dyaWQgfSBmcm9tICdAc2xpY2tncmlkLXVuaXZlcnNhbC9jb21tb24nO1xuaW1wb3J0IHsgYWRkVG9BcnJheVdoZW5Ob3RFeGlzdHMsIGNhc3RPYnNlcnZhYmxlVG9Qcm9taXNlLCBTbGlja1Jvd1NlbGVjdGlvbk1vZGVsLCB1bnN1YnNjcmliZUFsbCB9IGZyb20gJ0BzbGlja2dyaWQtdW5pdmVyc2FsL2NvbW1vbic7XG5pbXBvcnQgdHlwZSB7IEV2ZW50UHViU3ViU2VydmljZSB9IGZyb20gJ0BzbGlja2dyaWQtdW5pdmVyc2FsL2V2ZW50LXB1Yi1zdWInO1xuaW1wb3J0IHsgU2xpY2tSb3dEZXRhaWxWaWV3IGFzIFVuaXZlcnNhbFNsaWNrUm93RGV0YWlsVmlldyB9IGZyb20gJ0BzbGlja2dyaWQtdW5pdmVyc2FsL3Jvdy1kZXRhaWwtdmlldy1wbHVnaW4nO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgdHlwZSBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB0eXBlIHsgR3JpZE9wdGlvbiwgUm93RGV0YWlsVmlldyB9IGZyb20gJy4uL21vZGVscy9pbmRleCc7XG5pbXBvcnQgdHlwZSB7IEFuZ3VsYXJVdGlsU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL2FuZ3VsYXJVdGlsLnNlcnZpY2UnO1xuXG5jb25zdCBST1dfREVUQUlMX0NPTlRBSU5FUl9QUkVGSVggPSAnY29udGFpbmVyXyc7XG5jb25zdCBQUkVMT0FEX0NPTlRBSU5FUl9QUkVGSVggPSAnY29udGFpbmVyX2xvYWRpbmcnO1xuXG5leHBvcnQgaW50ZXJmYWNlIENyZWF0ZWRWaWV3IHtcbiAgaWQ6IHN0cmluZyB8IG51bWJlcjtcbiAgZGF0YUNvbnRleHQ6IGFueTtcbiAgY29tcG9uZW50UmVmPzogQ29tcG9uZW50UmVmPGFueT47XG59XG5cbmV4cG9ydCBjbGFzcyBTbGlja1Jvd0RldGFpbFZpZXcgZXh0ZW5kcyBVbml2ZXJzYWxTbGlja1Jvd0RldGFpbFZpZXcge1xuICByb3dEZXRhaWxDb250YWluZXIhOiBWaWV3Q29udGFpbmVyUmVmO1xuICBwcm90ZWN0ZWQgX3ByZWxvYWRDb21wb25lbnQ6IFR5cGU8b2JqZWN0PiB8IHVuZGVmaW5lZDtcbiAgcHJvdGVjdGVkIF92aWV3czogQ3JlYXRlZFZpZXdbXSA9IFtdO1xuICBwcm90ZWN0ZWQgX3ZpZXdDb21wb25lbnQhOiBUeXBlPG9iamVjdD47XG4gIHByb3RlY3RlZCBfc3Vic2NyaXB0aW9uczogRXZlbnRTdWJzY3JpcHRpb25bXSA9IFtdO1xuICBwcm90ZWN0ZWQgX3VzZXJQcm9jZXNzRm4hOiAoaXRlbTogYW55KSA9PiBQcm9taXNlPGFueT4gfCBPYnNlcnZhYmxlPGFueT4gfCBTdWJqZWN0PGFueT47XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGFuZ3VsYXJVdGlsU2VydmljZTogQW5ndWxhclV0aWxTZXJ2aWNlLFxuICAgIHByb3RlY3RlZCByZWFkb25seSBhcHBSZWY6IEFwcGxpY2F0aW9uUmVmLFxuICAgIHByb3RlY3RlZCByZWFkb25seSBldmVudFB1YlN1YlNlcnZpY2U6IEV2ZW50UHViU3ViU2VydmljZSxcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgZ3JpZENvbnRhaW5lckVsZW1lbnQ6IEhUTUxEaXZFbGVtZW50LFxuICAgIHByb3RlY3RlZCByeGpzPzogUnhKc0ZhY2FkZSxcbiAgKSB7XG4gICAgc3VwZXIoZXZlbnRQdWJTdWJTZXJ2aWNlKTtcbiAgfVxuXG4gIGdldCBhZGRvbk9wdGlvbnMoKSB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0T3B0aW9ucygpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGdldCBkYXRhc2V0SWRQcm9wTmFtZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmdyaWRPcHRpb25zLmRhdGFzZXRJZFByb3BlcnR5TmFtZSB8fCAnaWQnO1xuICB9XG5cbiAgZ2V0IGV2ZW50SGFuZGxlcigpOiBTbGlja0V2ZW50SGFuZGxlciB7XG4gICAgcmV0dXJuIHRoaXMuX2V2ZW50SGFuZGxlcjtcbiAgfVxuICBzZXQgZXZlbnRIYW5kbGVyKGV2ZW50SGFuZGxlcjogU2xpY2tFdmVudEhhbmRsZXIpIHtcbiAgICB0aGlzLl9ldmVudEhhbmRsZXIgPSBldmVudEhhbmRsZXI7XG4gIH1cblxuICAvKiogR2V0dGVyIGZvciB0aGUgR3JpZCBPcHRpb25zIHB1bGxlZCB0aHJvdWdoIHRoZSBHcmlkIE9iamVjdCAqL1xuICBnZXQgZ3JpZE9wdGlvbnMoKTogR3JpZE9wdGlvbiB7XG4gICAgcmV0dXJuICh0aGlzLl9ncmlkPy5nZXRPcHRpb25zKCkgfHwge30pIGFzIEdyaWRPcHRpb247XG4gIH1cblxuICBnZXQgcm93RGV0YWlsVmlld09wdGlvbnMoKTogUm93RGV0YWlsVmlldyB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuZ3JpZE9wdGlvbnMucm93RGV0YWlsVmlldztcbiAgfVxuXG4gIGFkZFJ4SnNSZXNvdXJjZShyeGpzOiBSeEpzRmFjYWRlKSB7XG4gICAgdGhpcy5yeGpzID0gcnhqcztcbiAgfVxuXG4gIC8qKiBEaXNwb3NlIG9mIHRoZSBSb3dEZXRhaWxWaWV3IEV4dGVuc2lvbiAqL1xuICBkaXNwb3NlKCkge1xuICAgIHRoaXMuZGlzcG9zZUFsbFZpZXdDb21wb25lbnRzKCk7XG4gICAgdGhpcy5fc3Vic2NyaXB0aW9ucyA9IHVuc3Vic2NyaWJlQWxsKHRoaXMuX3N1YnNjcmlwdGlvbnMpOyAvLyBhbHNvIHVuc3Vic2NyaWJlIGFsbCBSeEpTIHN1YnNjcmlwdGlvbnNcbiAgICBzdXBlci5kaXNwb3NlKCk7XG4gIH1cblxuICAvKiogRGlzcG9zZSBvZiBhbGwgdGhlIG9wZW5lZCBSb3cgRGV0YWlsIFBhbmVscyBBbmd1bGFyIFZpZXcgQ29tcG9uZW50cyAqL1xuICBkaXNwb3NlQWxsVmlld0NvbXBvbmVudHMoKSB7XG4gICAgdGhpcy5fdmlld3MuZm9yRWFjaCgoY29tcFJlZikgPT4gdGhpcy5kaXNwb3NlVmlld0NvbXBvbmVudChjb21wUmVmKSk7XG4gICAgdGhpcy5fdmlld3MgPSBbXTtcbiAgfVxuXG4gIC8qKiBHZXQgdGhlIGluc3RhbmNlIG9mIHRoZSBTbGlja0dyaWQgYWRkb24gKGNvbnRyb2wgb3IgcGx1Z2luKS4gKi9cbiAgZ2V0QWRkb25JbnN0YW5jZSgpOiBTbGlja1Jvd0RldGFpbFZpZXcgfCBudWxsIHtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIGluaXQoZ3JpZDogU2xpY2tHcmlkKSB7XG4gICAgdGhpcy5fZ3JpZCA9IGdyaWQ7XG4gICAgc3VwZXIuaW5pdCh0aGlzLl9ncmlkKTtcbiAgICB0aGlzLnJlZ2lzdGVyKGdyaWQ/LmdldFNlbGVjdGlvbk1vZGVsKCkgYXMgU2xpY2tSb3dTZWxlY3Rpb25Nb2RlbCk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIHRoZSBwbHVnaW4gYmVmb3JlIHRoZSBHcmlkIGNyZWF0aW9uLCBlbHNlIGl0IHdpbGwgYmVoYXZlIG9kZGx5LlxuICAgKiBNb3N0bHkgYmVjYXVzZSB0aGUgY29sdW1uIGRlZmluaXRpb25zIG1pZ2h0IGNoYW5nZSBhZnRlciB0aGUgZ3JpZCBjcmVhdGlvblxuICAgKi9cbiAgcmVnaXN0ZXIocm93U2VsZWN0aW9uUGx1Z2luPzogU2xpY2tSb3dTZWxlY3Rpb25Nb2RlbCkge1xuICAgIGlmICh0eXBlb2YgdGhpcy5ncmlkT3B0aW9ucy5yb3dEZXRhaWxWaWV3Py5wcm9jZXNzID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAvLyB3ZSBuZWVkIHRvIGtlZXAgdGhlIHVzZXIgXCJwcm9jZXNzXCIgbWV0aG9kIGFuZCByZXBsYWNlIGl0IHdpdGggb3VyIG93biBleGVjdXRpb24gbWV0aG9kXG4gICAgICAvLyB3ZSBkbyB0aGlzIGJlY2F1c2Ugd2hlbiB3ZSBnZXQgdGhlIGl0ZW0gZGV0YWlsLCB3ZSBuZWVkIHRvIGNhbGwgXCJvbkFzeW5jUmVzcG9uc2Uubm90aWZ5XCIgZm9yIHRoZSBwbHVnaW4gdG8gd29ya1xuICAgICAgdGhpcy5fdXNlclByb2Nlc3NGbiA9IHRoaXMuZ3JpZE9wdGlvbnMucm93RGV0YWlsVmlldy5wcm9jZXNzIGFzIChpdGVtOiBhbnkpID0+IFByb21pc2U8YW55PjsgICAgICAgICAgICAgICAgLy8ga2VlcCB1c2VyJ3MgcHJvY2VzcyBtZXRob2RcbiAgICAgIHRoaXMuYWRkb25PcHRpb25zLnByb2Nlc3MgPSAoaXRlbSkgPT4gdGhpcy5vblByb2Nlc3NpbmcoaXRlbSk7ICAvLyByZXBsYWNlIHByb2Nlc3MgbWV0aG9kICYgcnVuIG91ciBpbnRlcm5hbCBvbmVcbiAgICB9IGVsc2Uge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdbQW5ndWxhci1TbGlja2dyaWRdIFlvdSBuZWVkIHRvIHByb3ZpZGUgYSBcInByb2Nlc3NcIiBmdW5jdGlvbiBmb3IgdGhlIFJvdyBEZXRhaWwgRXh0ZW5zaW9uIHRvIHdvcmsgcHJvcGVybHknKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5fZ3JpZCAmJiB0aGlzLmdyaWRPcHRpb25zPy5yb3dEZXRhaWxWaWV3KSB7XG4gICAgICAvLyBsb2FkIHRoZSBQcmVsb2FkICYgUm93RGV0YWlsIFRlbXBsYXRlcyAoY291bGQgYmUgc3RyYWlnaHQgSFRNTCBvciBBbmd1bGFyIFZpZXcvVmlld01vZGVsKVxuICAgICAgLy8gd2hlbiB0aG9zZSBhcmUgQW5ndWxhciBWaWV3L1ZpZXdNb2RlbCwgd2UgbmVlZCB0byBjcmVhdGUgVmlldyBDb21wb25lbnQgJiBwcm92aWRlIHRoZSBodG1sIGNvbnRhaW5lcnMgdG8gdGhlIFBsdWdpbiAocHJlVGVtcGxhdGUvcG9zdFRlbXBsYXRlIG1ldGhvZHMpXG4gICAgICBpZiAoIXRoaXMuZ3JpZE9wdGlvbnMucm93RGV0YWlsVmlldy5wcmVUZW1wbGF0ZSkge1xuICAgICAgICB0aGlzLl9wcmVsb2FkQ29tcG9uZW50ID0gdGhpcy5ncmlkT3B0aW9ucz8ucm93RGV0YWlsVmlldz8ucHJlbG9hZENvbXBvbmVudDtcbiAgICAgICAgdGhpcy5hZGRvbk9wdGlvbnMucHJlVGVtcGxhdGUgPSAoKSA9PiB0aGlzLl9ncmlkLnNhbml0aXplSHRtbFN0cmluZyhgPGRpdiBjbGFzcz1cIiR7UFJFTE9BRF9DT05UQUlORVJfUFJFRklYfVwiPjwvZGl2PmApIGFzIHN0cmluZztcbiAgICAgIH1cbiAgICAgIGlmICghdGhpcy5ncmlkT3B0aW9ucy5yb3dEZXRhaWxWaWV3LnBvc3RUZW1wbGF0ZSkge1xuICAgICAgICB0aGlzLl92aWV3Q29tcG9uZW50ID0gdGhpcy5ncmlkT3B0aW9ucz8ucm93RGV0YWlsVmlldz8udmlld0NvbXBvbmVudDtcbiAgICAgICAgdGhpcy5hZGRvbk9wdGlvbnMucG9zdFRlbXBsYXRlID0gKGl0ZW1EZXRhaWw6IGFueSkgPT4gdGhpcy5fZ3JpZC5zYW5pdGl6ZUh0bWxTdHJpbmcoYDxkaXYgY2xhc3M9XCIke1JPV19ERVRBSUxfQ09OVEFJTkVSX1BSRUZJWH0ke2l0ZW1EZXRhaWxbdGhpcy5kYXRhc2V0SWRQcm9wTmFtZV19XCI+PC9kaXY+YCkgYXMgc3RyaW5nO1xuICAgICAgfVxuXG4gICAgICAvLyB0aGlzIGFsc28gcmVxdWlyZXMgdGhlIFJvdyBTZWxlY3Rpb24gTW9kZWwgdG8gYmUgcmVnaXN0ZXJlZCBhcyB3ZWxsXG4gICAgICBpZiAoIXJvd1NlbGVjdGlvblBsdWdpbiB8fCAhdGhpcy5fZ3JpZC5nZXRTZWxlY3Rpb25Nb2RlbCgpKSB7XG4gICAgICAgIHJvd1NlbGVjdGlvblBsdWdpbiA9IG5ldyBTbGlja1Jvd1NlbGVjdGlvbk1vZGVsKHRoaXMuZ3JpZE9wdGlvbnMucm93U2VsZWN0aW9uT3B0aW9ucyB8fCB7IHNlbGVjdEFjdGl2ZVJvdzogdHJ1ZSB9KTtcbiAgICAgICAgdGhpcy5fZ3JpZC5zZXRTZWxlY3Rpb25Nb2RlbChyb3dTZWxlY3Rpb25QbHVnaW4pO1xuICAgICAgfVxuXG4gICAgICAvLyBob29rIGFsbCBldmVudHNcbiAgICAgIGlmICh0aGlzLl9ncmlkICYmIHRoaXMucm93RGV0YWlsVmlld09wdGlvbnMpIHtcbiAgICAgICAgaWYgKHRoaXMucm93RGV0YWlsVmlld09wdGlvbnMub25FeHRlbnNpb25SZWdpc3RlcmVkKSB7XG4gICAgICAgICAgdGhpcy5yb3dEZXRhaWxWaWV3T3B0aW9ucy5vbkV4dGVuc2lvblJlZ2lzdGVyZWQodGhpcyk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5vbkFzeW5jUmVzcG9uc2UpIHtcbiAgICAgICAgICB0aGlzLmV2ZW50SGFuZGxlci5zdWJzY3JpYmUodGhpcy5vbkFzeW5jUmVzcG9uc2UsIChldmVudCwgYXJncykgPT4ge1xuICAgICAgICAgICAgaWYgKHRoaXMucm93RGV0YWlsVmlld09wdGlvbnMgJiYgdHlwZW9mIHRoaXMucm93RGV0YWlsVmlld09wdGlvbnMub25Bc3luY1Jlc3BvbnNlID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgICAgIHRoaXMucm93RGV0YWlsVmlld09wdGlvbnMub25Bc3luY1Jlc3BvbnNlKGV2ZW50LCBhcmdzKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLm9uQXN5bmNFbmRVcGRhdGUpIHtcbiAgICAgICAgICB0aGlzLmV2ZW50SGFuZGxlci5zdWJzY3JpYmUodGhpcy5vbkFzeW5jRW5kVXBkYXRlLCAoZSwgYXJncykgPT4ge1xuICAgICAgICAgICAgLy8gdHJpZ2dlcnMgYWZ0ZXIgYmFja2VuZCBjYWxsZWQgXCJvbkFzeW5jUmVzcG9uc2Uubm90aWZ5KClcIlxuICAgICAgICAgICAgdGhpcy5yZW5kZXJWaWV3TW9kZWwoYXJncz8uaXRlbSk7XG5cbiAgICAgICAgICAgIGlmICh0aGlzLnJvd0RldGFpbFZpZXdPcHRpb25zICYmIHR5cGVvZiB0aGlzLnJvd0RldGFpbFZpZXdPcHRpb25zLm9uQXN5bmNFbmRVcGRhdGUgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgICAgdGhpcy5yb3dEZXRhaWxWaWV3T3B0aW9ucy5vbkFzeW5jRW5kVXBkYXRlKGUsIGFyZ3MpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMub25BZnRlclJvd0RldGFpbFRvZ2dsZSkge1xuICAgICAgICAgIHRoaXMuZXZlbnRIYW5kbGVyLnN1YnNjcmliZSh0aGlzLm9uQWZ0ZXJSb3dEZXRhaWxUb2dnbGUsIChlOiBhbnksIGFyZ3M6IHsgZ3JpZDogU2xpY2tHcmlkOyBpdGVtOiBhbnk7IGV4cGFuZGVkUm93czogQXJyYXk8bnVtYmVyIHwgc3RyaW5nPjsgfSkgPT4ge1xuICAgICAgICAgICAgLy8gZGlzcGxheSBwcmVsb2FkIHRlbXBsYXRlICYgcmUtcmVuZGVyIGFsbCB0aGUgb3RoZXIgRGV0YWlsIFZpZXdzIGFmdGVyIHRvZ2dsaW5nXG4gICAgICAgICAgICAvLyB0aGUgcHJlbG9hZCBWaWV3IHdpbGwgZXZlbnR1YWxseSBnbyBhd2F5IG9uY2UgdGhlIGRhdGEgZ2V0cyBsb2FkZWQgYWZ0ZXIgdGhlIFwib25Bc3luY0VuZFVwZGF0ZVwiIGV2ZW50XG4gICAgICAgICAgICB0aGlzLnJlbmRlclByZWxvYWRWaWV3KCk7XG4gICAgICAgICAgICB0aGlzLnJlbmRlckFsbFZpZXdDb21wb25lbnRzKCk7XG5cbiAgICAgICAgICAgIGlmICh0aGlzLnJvd0RldGFpbFZpZXdPcHRpb25zICYmIHR5cGVvZiB0aGlzLnJvd0RldGFpbFZpZXdPcHRpb25zLm9uQWZ0ZXJSb3dEZXRhaWxUb2dnbGUgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgICAgdGhpcy5yb3dEZXRhaWxWaWV3T3B0aW9ucy5vbkFmdGVyUm93RGV0YWlsVG9nZ2xlKGUsIGFyZ3MpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMub25CZWZvcmVSb3dEZXRhaWxUb2dnbGUpIHtcbiAgICAgICAgICB0aGlzLmV2ZW50SGFuZGxlci5zdWJzY3JpYmUodGhpcy5vbkJlZm9yZVJvd0RldGFpbFRvZ2dsZSwgKGUsIGFyZ3MpID0+IHtcbiAgICAgICAgICAgIC8vIGJlZm9yZSB0b2dnbGluZyByb3cgZGV0YWlsLCB3ZSBuZWVkIHRvIGNyZWF0ZSBWaWV3IENvbXBvbmVudCBpZiBpdCBkb2Vzbid0IGV4aXN0XG4gICAgICAgICAgICB0aGlzLmhhbmRsZU9uQmVmb3JlUm93RGV0YWlsVG9nZ2xlKGUsIGFyZ3MpO1xuXG4gICAgICAgICAgICBpZiAodGhpcy5yb3dEZXRhaWxWaWV3T3B0aW9ucyAmJiB0eXBlb2YgdGhpcy5yb3dEZXRhaWxWaWV3T3B0aW9ucy5vbkJlZm9yZVJvd0RldGFpbFRvZ2dsZSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgICByZXR1cm4gdGhpcy5yb3dEZXRhaWxWaWV3T3B0aW9ucy5vbkJlZm9yZVJvd0RldGFpbFRvZ2dsZShlLCBhcmdzKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMub25Sb3dCYWNrVG9WaWV3cG9ydFJhbmdlKSB7XG4gICAgICAgICAgdGhpcy5ldmVudEhhbmRsZXIuc3Vic2NyaWJlKHRoaXMub25Sb3dCYWNrVG9WaWV3cG9ydFJhbmdlLCAoZSwgYXJncykgPT4ge1xuICAgICAgICAgICAgLy8gd2hlbiByb3cgaXMgYmFjayB0byB2aWV3cG9ydCByYW5nZSwgd2Ugd2lsbCByZS1yZW5kZXIgdGhlIFZpZXcgQ29tcG9uZW50KHMpXG4gICAgICAgICAgICB0aGlzLmhhbmRsZU9uUm93QmFja1RvVmlld3BvcnRSYW5nZShlLCBhcmdzKTtcblxuICAgICAgICAgICAgaWYgKHRoaXMucm93RGV0YWlsVmlld09wdGlvbnMgJiYgdHlwZW9mIHRoaXMucm93RGV0YWlsVmlld09wdGlvbnMub25Sb3dCYWNrVG9WaWV3cG9ydFJhbmdlID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgICAgIHRoaXMucm93RGV0YWlsVmlld09wdGlvbnMub25Sb3dCYWNrVG9WaWV3cG9ydFJhbmdlKGUsIGFyZ3MpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMub25Sb3dPdXRPZlZpZXdwb3J0UmFuZ2UpIHtcbiAgICAgICAgICB0aGlzLmV2ZW50SGFuZGxlci5zdWJzY3JpYmUodGhpcy5vblJvd091dE9mVmlld3BvcnRSYW5nZSwgKGUsIGFyZ3MpID0+IHtcbiAgICAgICAgICAgIGlmICh0aGlzLnJvd0RldGFpbFZpZXdPcHRpb25zICYmIHR5cGVvZiB0aGlzLnJvd0RldGFpbFZpZXdPcHRpb25zLm9uUm93T3V0T2ZWaWV3cG9ydFJhbmdlID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgICAgIHRoaXMucm93RGV0YWlsVmlld09wdGlvbnMub25Sb3dPdXRPZlZpZXdwb3J0UmFuZ2UoZSwgYXJncyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyAtLVxuICAgICAgICAvLyBob29rIHNvbWUgZXZlbnRzIG5lZWRlZCBieSB0aGUgUGx1Z2luIGl0c2VsZlxuXG4gICAgICAgIC8vIHdlIG5lZWQgdG8gcmVkcmF3IHRoZSBvcGVuIGRldGFpbCB2aWV3cyBpZiB3ZSBjaGFuZ2UgY29sdW1uIHBvc2l0aW9uIChjb2x1bW4gcmVvcmRlcilcbiAgICAgICAgdGhpcy5ldmVudEhhbmRsZXIuc3Vic2NyaWJlKHRoaXMuX2dyaWQub25Db2x1bW5zUmVvcmRlcmVkLCB0aGlzLnJlZHJhd0FsbFZpZXdDb21wb25lbnRzLmJpbmQodGhpcykpO1xuXG4gICAgICAgIC8vIG9uIHJvdyBzZWxlY3Rpb24gY2hhbmdlZCwgd2UgYWxzbyBuZWVkIHRvIHJlZHJhd1xuICAgICAgICBpZiAodGhpcy5ncmlkT3B0aW9ucy5lbmFibGVSb3dTZWxlY3Rpb24gfHwgdGhpcy5ncmlkT3B0aW9ucy5lbmFibGVDaGVja2JveFNlbGVjdG9yKSB7XG4gICAgICAgICAgdGhpcy5ldmVudEhhbmRsZXIuc3Vic2NyaWJlKHRoaXMuX2dyaWQub25TZWxlY3RlZFJvd3NDaGFuZ2VkLCB0aGlzLnJlZHJhd0FsbFZpZXdDb21wb25lbnRzLmJpbmQodGhpcykpO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gb24gc29ydCwgYWxsIHJvdyBkZXRhaWwgYXJlIGNvbGxhcHNlZCBzbyB3ZSBjYW4gZGlzcG9zZSBvZiBhbGwgdGhlIFZpZXdzIGFzIHdlbGxcbiAgICAgICAgdGhpcy5ldmVudEhhbmRsZXIuc3Vic2NyaWJlKHRoaXMuX2dyaWQub25Tb3J0LCB0aGlzLmRpc3Bvc2VBbGxWaWV3Q29tcG9uZW50cy5iaW5kKHRoaXMpKTtcblxuICAgICAgICAvLyBvbiBmaWx0ZXIgY2hhbmdlZCwgd2UgbmVlZCB0byByZS1yZW5kZXIgYWxsIFZpZXdzXG4gICAgICAgIHRoaXMuX3N1YnNjcmlwdGlvbnMucHVzaChcbiAgICAgICAgICB0aGlzLmV2ZW50UHViU3ViU2VydmljZT8uc3Vic2NyaWJlKCdvbkZpbHRlckNoYW5nZWQnLCB0aGlzLnJlZHJhd0FsbFZpZXdDb21wb25lbnRzLmJpbmQodGhpcykpLFxuICAgICAgICAgIHRoaXMuZXZlbnRQdWJTdWJTZXJ2aWNlPy5zdWJzY3JpYmUoJ29uR3JpZE1lbnVDbGVhckFsbEZpbHRlcnMnLCAoKSA9PiB3aW5kb3cuc2V0VGltZW91dCgoKSA9PiB0aGlzLnJlZHJhd0FsbFZpZXdDb21wb25lbnRzKCkpKSxcbiAgICAgICAgICB0aGlzLmV2ZW50UHViU3ViU2VydmljZT8uc3Vic2NyaWJlKCdvbkdyaWRNZW51Q2xlYXJBbGxTb3J0aW5nJywgKCkgPT4gd2luZG93LnNldFRpbWVvdXQoKCkgPT4gdGhpcy5yZWRyYXdBbGxWaWV3Q29tcG9uZW50cygpKSksXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqIFJlZHJhdyAocmUtcmVuZGVyKSBhbGwgdGhlIGV4cGFuZGVkIHJvdyBkZXRhaWwgVmlldyBDb21wb25lbnRzICovXG4gIHJlZHJhd0FsbFZpZXdDb21wb25lbnRzKCkge1xuICAgIHRoaXMuX3ZpZXdzLmZvckVhY2goKGNvbXBSZWYpID0+IHtcbiAgICAgIHRoaXMucmVkcmF3Vmlld0NvbXBvbmVudChjb21wUmVmKTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKiBSZW5kZXIgYWxsIHRoZSBleHBhbmRlZCByb3cgZGV0YWlsIFZpZXcgQ29tcG9uZW50cyAqL1xuICByZW5kZXJBbGxWaWV3Q29tcG9uZW50cygpIHtcbiAgICB0aGlzLl92aWV3cy5mb3JFYWNoKCh2aWV3KSA9PiB7XG4gICAgICBpZiAodmlldz8uZGF0YUNvbnRleHQpIHtcbiAgICAgICAgdGhpcy5yZW5kZXJWaWV3TW9kZWwodmlldy5kYXRhQ29udGV4dCk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICAvKiogUmVkcmF3IHRoZSBuZWNlc3NhcnkgVmlldyBDb21wb25lbnQgKi9cbiAgcmVkcmF3Vmlld0NvbXBvbmVudChjcmVhdGVkVmlldzogQ3JlYXRlZFZpZXcpIHtcbiAgICBjb25zdCBjb250YWluZXJFbGVtZW50cyA9IHRoaXMuZ3JpZENvbnRhaW5lckVsZW1lbnQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZShgJHtST1dfREVUQUlMX0NPTlRBSU5FUl9QUkVGSVh9JHtjcmVhdGVkVmlldy5pZH1gKTtcbiAgICBpZiAoY29udGFpbmVyRWxlbWVudHM/Lmxlbmd0aCA+PSAwKSB7XG4gICAgICB0aGlzLnJlbmRlclZpZXdNb2RlbChjcmVhdGVkVmlldy5kYXRhQ29udGV4dCk7XG4gICAgfVxuICB9XG5cbiAgLyoqIFJlbmRlciAob3IgcmUtcmVuZGVyKSB0aGUgVmlldyBDb21wb25lbnQgKFJvdyBEZXRhaWwpICovXG4gIHJlbmRlclByZWxvYWRWaWV3KCkge1xuICAgIGNvbnN0IGNvbnRhaW5lckVsZW1lbnRzID0gdGhpcy5ncmlkQ29udGFpbmVyRWxlbWVudC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKGAke1BSRUxPQURfQ09OVEFJTkVSX1BSRUZJWH1gKSBhcyBIVE1MQ29sbGVjdGlvbk9mPEhUTUxFbGVtZW50PjtcbiAgICBpZiAodGhpcy5fcHJlbG9hZENvbXBvbmVudCAmJiBjb250YWluZXJFbGVtZW50cz8ubGVuZ3RoID49IDApIHtcbiAgICAgIHRoaXMuYW5ndWxhclV0aWxTZXJ2aWNlLmNyZWF0ZUFuZ3VsYXJDb21wb25lbnRBcHBlbmRUb0RvbSh0aGlzLl9wcmVsb2FkQ29tcG9uZW50LCBjb250YWluZXJFbGVtZW50c1tjb250YWluZXJFbGVtZW50cy5sZW5ndGggLSAxXSk7XG4gICAgfVxuICB9XG5cbiAgLyoqIFJlbmRlciAob3IgcmUtcmVuZGVyKSB0aGUgVmlldyBDb21wb25lbnQgKFJvdyBEZXRhaWwpICovXG4gIHJlbmRlclZpZXdNb2RlbChpdGVtOiBhbnkpOiBDcmVhdGVkVmlldyB8IHVuZGVmaW5lZCB7XG4gICAgY29uc3QgY29udGFpbmVyRWxlbWVudHMgPSB0aGlzLmdyaWRDb250YWluZXJFbGVtZW50LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoYCR7Uk9XX0RFVEFJTF9DT05UQUlORVJfUFJFRklYfSR7aXRlbVt0aGlzLmRhdGFzZXRJZFByb3BOYW1lXX1gKSBhcyBIVE1MQ29sbGVjdGlvbk9mPEhUTUxFbGVtZW50PjtcbiAgICBpZiAodGhpcy5fdmlld0NvbXBvbmVudCAmJiBjb250YWluZXJFbGVtZW50cz8ubGVuZ3RoID4gMCkge1xuICAgICAgY29uc3QgY29tcG9uZW50T3V0cHV0ID0gdGhpcy5hbmd1bGFyVXRpbFNlcnZpY2UuY3JlYXRlQW5ndWxhckNvbXBvbmVudEFwcGVuZFRvRG9tKHRoaXMuX3ZpZXdDb21wb25lbnQsIGNvbnRhaW5lckVsZW1lbnRzW2NvbnRhaW5lckVsZW1lbnRzLmxlbmd0aCAtIDFdLCB7XG4gICAgICAgIG1vZGVsOiBpdGVtLFxuICAgICAgICBhZGRvbjogdGhpcyxcbiAgICAgICAgZ3JpZDogdGhpcy5fZ3JpZCxcbiAgICAgICAgZGF0YVZpZXc6IHRoaXMuZGF0YVZpZXcsXG4gICAgICAgIHBhcmVudDogdGhpcy5yb3dEZXRhaWxWaWV3T3B0aW9ucz8ucGFyZW50LFxuICAgICAgfSk7XG4gICAgICBpZiAoY29tcG9uZW50T3V0cHV0Py5jb21wb25lbnRSZWYpIHtcbiAgICAgICAgY29uc3Qgdmlld09iaiA9IHRoaXMuX3ZpZXdzLmZpbmQob2JqID0+IG9iai5pZCA9PT0gaXRlbVt0aGlzLmRhdGFzZXRJZFByb3BOYW1lXSk7XG4gICAgICAgIGlmICh2aWV3T2JqKSB7XG4gICAgICAgICAgdmlld09iai5jb21wb25lbnRSZWYgPSBjb21wb25lbnRPdXRwdXQuY29tcG9uZW50UmVmO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB2aWV3T2JqO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG5cbiAgLy8gLS1cbiAgLy8gcHJvdGVjdGVkIGZ1bmN0aW9uc1xuICAvLyAtLS0tLS0tLS0tLS0tLS0tLS1cblxuICBwcm90ZWN0ZWQgZGlzcG9zZVZpZXdDb21wb25lbnQoZXhwYW5kZWRWaWV3OiBDcmVhdGVkVmlldyk6IENyZWF0ZWRWaWV3IHwgdm9pZCB7XG4gICAgY29uc3QgY29tcFJlZiA9IGV4cGFuZGVkVmlldz8uY29tcG9uZW50UmVmO1xuICAgIGlmIChjb21wUmVmKSB7XG4gICAgICB0aGlzLmFwcFJlZi5kZXRhY2hWaWV3KGNvbXBSZWYuaG9zdFZpZXcpO1xuICAgICAgaWYgKGNvbXBSZWY/LmRlc3Ryb3kpIHtcbiAgICAgICAgY29tcFJlZi5kZXN0cm95KCk7XG4gICAgICB9XG4gICAgICByZXR1cm4gZXhwYW5kZWRWaWV3O1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBub3RpZnkgdGhlIG9uQXN5bmNSZXNwb25zZSB3aXRoIHRoZSBcImFyZ3MuaXRlbVwiIChyZXF1aXJlZCBwcm9wZXJ0eSlcbiAgICogdGhlIHBsdWdpbiB3aWxsIHRoZW4gdXNlIGl0ZW0gdG8gcG9wdWxhdGUgdGhlIHJvdyBkZXRhaWwgcGFuZWwgd2l0aCB0aGUgXCJwb3N0VGVtcGxhdGVcIlxuICAgKiBAcGFyYW0gaXRlbVxuICAgKi9cbiAgcHJvdGVjdGVkIG5vdGlmeVRlbXBsYXRlKGl0ZW06IGFueSkge1xuICAgIGlmICh0aGlzLm9uQXN5bmNSZXNwb25zZSkge1xuICAgICAgdGhpcy5vbkFzeW5jUmVzcG9uc2Uubm90aWZ5KHsgaXRlbSwgaXRlbURldGFpbDogaXRlbSB9LCB1bmRlZmluZWQsIHRoaXMpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBPbiBQcm9jZXNzaW5nLCB3ZSB3aWxsIG5vdGlmeSB0aGUgcGx1Z2luIHdpdGggdGhlIG5ldyBpdGVtIGRldGFpbCBvbmNlIGJhY2tlbmQgc2VydmVyIGNhbGwgY29tcGxldGVzXG4gICAqIEBwYXJhbSBpdGVtXG4gICAqL1xuICBwcm90ZWN0ZWQgYXN5bmMgb25Qcm9jZXNzaW5nKGl0ZW06IGFueSkge1xuICAgIGlmIChpdGVtICYmIHR5cGVvZiB0aGlzLl91c2VyUHJvY2Vzc0ZuID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICBsZXQgYXdhaXRlZEl0ZW1EZXRhaWw6IGFueTtcbiAgICAgIGNvbnN0IHVzZXJQcm9jZXNzRm4gPSB0aGlzLl91c2VyUHJvY2Vzc0ZuKGl0ZW0pO1xuXG4gICAgICAvLyB3YWl0IGZvciB0aGUgXCJ1c2VyUHJvY2Vzc0ZuXCIsIG9uY2UgcmVzb2x2ZWQgd2Ugd2lsbCBzYXZlIGl0IGludG8gdGhlIFwiY29sbGVjdGlvblwiXG4gICAgICBjb25zdCByZXNwb25zZTogYW55IHwgYW55W10gPSBhd2FpdCB1c2VyUHJvY2Vzc0ZuO1xuXG4gICAgICBpZiAodGhpcy5kYXRhc2V0SWRQcm9wTmFtZSBpbiByZXNwb25zZSkge1xuICAgICAgICBhd2FpdGVkSXRlbURldGFpbCA9IHJlc3BvbnNlOyAvLyBmcm9tIFByb21pc2VcbiAgICAgIH0gZWxzZSBpZiAocmVzcG9uc2UgJiYgcmVzcG9uc2UgaW5zdGFuY2VvZiBPYnNlcnZhYmxlIHx8IHJlc3BvbnNlIGluc3RhbmNlb2YgUHJvbWlzZSkge1xuICAgICAgICBhd2FpdGVkSXRlbURldGFpbCA9IGF3YWl0IGNhc3RPYnNlcnZhYmxlVG9Qcm9taXNlKHRoaXMucnhqcyBhcyBSeEpzRmFjYWRlLCByZXNwb25zZSk7IC8vIGZyb20gQW5ndWxhci1odHRwLWNsaWVudFxuICAgICAgfVxuXG4gICAgICBpZiAoIWF3YWl0ZWRJdGVtRGV0YWlsIHx8ICEodGhpcy5kYXRhc2V0SWRQcm9wTmFtZSBpbiBhd2FpdGVkSXRlbURldGFpbCkpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBbQW5ndWxhci1TbGlja2dyaWRdIGNvdWxkIG5vdCBwcm9jZXNzIHRoZSBSb3cgRGV0YWlsLCB5b3UgbXVzdCBtYWtlIHN1cmUgdGhhdCB5b3VyIFwicHJvY2Vzc1wiIGNhbGxiYWNrXG4gICAgICAgICAgKGEgUHJvbWlzZSBvciBhbiBIdHRwQ2xpZW50IGNhbGwgcmV0dXJuaW5nIGFuIE9ic2VydmFibGUpIHJldHVybnMgYW4gaXRlbSBvYmplY3QgdGhhdCBoYXMgYW4gXCIke3RoaXMuZGF0YXNldElkUHJvcE5hbWV9XCIgcHJvcGVydHlgKTtcbiAgICAgIH1cblxuICAgICAgLy8gbm90aWZ5IHRoZSBwbHVnaW4gd2l0aCB0aGUgbmV3IGl0ZW0gZGV0YWlsc1xuICAgICAgdGhpcy5ub3RpZnlUZW1wbGF0ZShhd2FpdGVkSXRlbURldGFpbCB8fCB7fSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEp1c3QgYmVmb3JlIHRoZSByb3cgZ2V0IGV4cGFuZGVkIG9yIGNvbGxhcHNlZCB3ZSB3aWxsIGRvIHRoZSBmb2xsb3dpbmdcbiAgICogRmlyc3QgZGV0ZXJtaW5lIGlmIHRoZSByb3cgaXMgZXhwYW5kaW5nIG9yIGNvbGxhcHNpbmcsXG4gICAqIGlmIGl0J3MgZXhwYW5kaW5nIHdlIHdpbGwgYWRkIGl0IHRvIG91ciBWaWV3IENvbXBvbmVudHMgcmVmZXJlbmNlIGFycmF5IGlmIHdlIGRvbid0IGFscmVhZHkgaGF2ZSBpdFxuICAgKiBvciBpZiBpdCdzIGNvbGxhcHNpbmcgd2Ugd2lsbCByZW1vdmUgaXQgZnJvbSBvdXIgVmlldyBDb21wb25lbnRzIHJlZmVyZW5jZSBhcnJheVxuICAgKi9cbiAgcHJvdGVjdGVkIGhhbmRsZU9uQmVmb3JlUm93RGV0YWlsVG9nZ2xlKF9lOiBTbGlja0V2ZW50RGF0YTxPbkJlZm9yZVJvd0RldGFpbFRvZ2dsZUFyZ3M+LCBhcmdzOiB7IGdyaWQ6IFNsaWNrR3JpZDsgaXRlbTogYW55OyB9KSB7XG4gICAgLy8gZXhwYW5kaW5nXG4gICAgaWYgKGFyZ3M/Lml0ZW0/Ll9fY29sbGFwc2VkKSB7XG4gICAgICAvLyBleHBhbmRpbmcgcm93IGRldGFpbFxuICAgICAgY29uc3Qgdmlld0luZm86IENyZWF0ZWRWaWV3ID0ge1xuICAgICAgICBpZDogYXJncy5pdGVtW3RoaXMuZGF0YXNldElkUHJvcE5hbWVdLFxuICAgICAgICBkYXRhQ29udGV4dDogYXJncy5pdGVtXG4gICAgICB9O1xuICAgICAgY29uc3QgaWRQcm9wTmFtZSA9IHRoaXMuZ3JpZE9wdGlvbnMuZGF0YXNldElkUHJvcGVydHlOYW1lIHx8ICdpZCc7XG4gICAgICBhZGRUb0FycmF5V2hlbk5vdEV4aXN0cyh0aGlzLl92aWV3cywgdmlld0luZm8sIGlkUHJvcE5hbWUpO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBjb2xsYXBzaW5nLCBzbyBkaXNwb3NlIG9mIHRoZSBWaWV3L0NvbXBvbmVudFxuICAgICAgY29uc3QgZm91bmRWaWV3SW5kZXggPSB0aGlzLl92aWV3cy5maW5kSW5kZXgoKHZpZXc6IENyZWF0ZWRWaWV3KSA9PiB2aWV3LmlkID09PSBhcmdzLml0ZW1bdGhpcy5kYXRhc2V0SWRQcm9wTmFtZV0pO1xuICAgICAgaWYgKGZvdW5kVmlld0luZGV4ID49IDAgJiYgZm91bmRWaWV3SW5kZXggaW4gdGhpcy5fdmlld3MpIHtcbiAgICAgICAgY29uc3QgY29tcFJlZiA9IHRoaXMuX3ZpZXdzW2ZvdW5kVmlld0luZGV4XS5jb21wb25lbnRSZWY7XG4gICAgICAgIGlmIChjb21wUmVmKSB7XG4gICAgICAgICAgdGhpcy5hcHBSZWYuZGV0YWNoVmlldyhjb21wUmVmLmhvc3RWaWV3KTtcbiAgICAgICAgICBjb21wUmVmLmRlc3Ryb3koKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl92aWV3cy5zcGxpY2UoZm91bmRWaWV3SW5kZXgsIDEpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8qKiBXaGVuIFJvdyBjb21lcyBiYWNrIHRvIFZpZXdwb3J0IFJhbmdlLCB3ZSBuZWVkIHRvIHJlZHJhdyB0aGUgVmlldyAqL1xuICBwcm90ZWN0ZWQgaGFuZGxlT25Sb3dCYWNrVG9WaWV3cG9ydFJhbmdlKF9lOiBTbGlja0V2ZW50RGF0YTxPblJvd0JhY2tUb1ZpZXdwb3J0UmFuZ2VBcmdzPiwgYXJnczogT25Sb3dCYWNrVG9WaWV3cG9ydFJhbmdlQXJncykge1xuICAgIGlmIChhcmdzPy5pdGVtKSB7XG4gICAgICB0aGlzLnJlZHJhd0FsbFZpZXdDb21wb25lbnRzKCk7XG4gICAgfVxuICB9XG59XG4iXX0=
|
|
296
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2xpY2tSb3dEZXRhaWxWaWV3LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9tb2R1bGVzL2FuZ3VsYXItc2xpY2tncmlkL2V4dGVuc2lvbnMvc2xpY2tSb3dEZXRhaWxWaWV3LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSx1QkFBdUIsRUFBRSxzQkFBc0IsRUFBRSxjQUFjLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUV2SSxPQUFPLEVBQUUsa0JBQWtCLElBQUksMkJBQTJCLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQztBQUNoSCxPQUFPLEVBQUUsVUFBVSxFQUFnQixNQUFNLE1BQU0sQ0FBQztBQUtoRCxNQUFNLDJCQUEyQixHQUFHLFlBQVksQ0FBQztBQUNqRCxNQUFNLHdCQUF3QixHQUFHLG1CQUFtQixDQUFDO0FBUXJELE1BQU0sT0FBTyxrQkFBbUIsU0FBUSwyQkFBMkI7SUFRakUsWUFDcUIsa0JBQXNDLEVBQ3RDLE1BQXNCLEVBQ3RCLGtCQUFzQyxFQUN0QyxvQkFBb0MsRUFDN0MsSUFBaUI7UUFFM0IsS0FBSyxDQUFDLGtCQUFrQixDQUFDLENBQUM7UUFOUCx1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW9CO1FBQ3RDLFdBQU0sR0FBTixNQUFNLENBQWdCO1FBQ3RCLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBb0I7UUFDdEMseUJBQW9CLEdBQXBCLG9CQUFvQixDQUFnQjtRQUM3QyxTQUFJLEdBQUosSUFBSSxDQUFhO1FBVm5CLFdBQU0sR0FBa0IsRUFBRSxDQUFDO1FBRTNCLG1CQUFjLEdBQXdCLEVBQUUsQ0FBQztJQVduRCxDQUFDO0lBRUQsSUFBSSxZQUFZO1FBQ2QsT0FBTyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7SUFDM0IsQ0FBQztJQUVELElBQWMsaUJBQWlCO1FBQzdCLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxxQkFBcUIsSUFBSSxJQUFJLENBQUM7SUFDeEQsQ0FBQztJQUVELElBQUksWUFBWTtRQUNkLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQztJQUM1QixDQUFDO0lBQ0QsSUFBSSxZQUFZLENBQUMsWUFBK0I7UUFDOUMsSUFBSSxDQUFDLGFBQWEsR0FBRyxZQUFZLENBQUM7SUFDcEMsQ0FBQztJQUVELGlFQUFpRTtJQUNqRSxJQUFJLFdBQVc7UUFDYixPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxVQUFVLEVBQUUsSUFBSSxFQUFFLENBQWUsQ0FBQztJQUN4RCxDQUFDO0lBRUQsSUFBSSxvQkFBb0I7UUFDdEIsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQztJQUN4QyxDQUFDO0lBRUQsZUFBZSxDQUFDLElBQWdCO1FBQzlCLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO0lBQ25CLENBQUM7SUFFRCw2Q0FBNkM7SUFDN0MsT0FBTztRQUNMLElBQUksQ0FBQyx3QkFBd0IsRUFBRSxDQUFDO1FBQ2hDLElBQUksQ0FBQyxjQUFjLEdBQUcsY0FBYyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLDBDQUEwQztRQUNyRyxLQUFLLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDbEIsQ0FBQztJQUVELDBFQUEwRTtJQUMxRSx3QkFBd0I7UUFDdEIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO1FBQ3JFLElBQUksQ0FBQyxNQUFNLEdBQUcsRUFBRSxDQUFDO0lBQ25CLENBQUM7SUFFRCxtRUFBbUU7SUFDbkUsZ0JBQWdCO1FBQ2QsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQsSUFBSSxDQUFDLElBQWU7UUFDbEIsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUM7UUFDbEIsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDdkIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsaUJBQWlCLEVBQTRCLENBQUMsQ0FBQztJQUNyRSxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsUUFBUSxDQUFDLGtCQUEyQztRQUNsRCxJQUFJLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLEVBQUUsT0FBTyxLQUFLLFVBQVUsRUFBRSxDQUFDO1lBQ2xFLHlGQUF5RjtZQUN6RixrSEFBa0g7WUFDbEgsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQyxPQUFzQyxDQUFDLENBQWdCLDZCQUE2QjtZQUN6SSxJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sR0FBRyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFFLGdEQUFnRDtRQUNsSCxDQUFDO2FBQU0sQ0FBQztZQUNOLE1BQU0sSUFBSSxLQUFLLENBQUMsNEdBQTRHLENBQUMsQ0FBQztRQUNoSSxDQUFDO1FBRUQsSUFBSSxJQUFJLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUUsYUFBYSxFQUFFLENBQUM7WUFDbEQsNEZBQTRGO1lBQzVGLHlKQUF5SjtZQUN6SixJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLENBQUMsV0FBVyxFQUFFLENBQUM7Z0JBQ2hELElBQUksQ0FBQyxpQkFBaUIsR0FBRyxJQUFJLENBQUMsV0FBVyxFQUFFLGFBQWEsRUFBRSxnQkFBZ0IsQ0FBQztnQkFDM0UsSUFBSSxDQUFDLFlBQVksQ0FBQyxXQUFXLEdBQUcsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxlQUFlLHdCQUF3QixVQUFVLENBQVcsQ0FBQztZQUNuSSxDQUFDO1lBQ0QsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsYUFBYSxDQUFDLFlBQVksRUFBRSxDQUFDO2dCQUNqRCxJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQyxXQUFXLEVBQUUsYUFBYSxFQUFFLGFBQWEsQ0FBQztnQkFDckUsSUFBSSxDQUFDLFlBQVksQ0FBQyxZQUFZLEdBQUcsQ0FBQyxVQUFlLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsa0JBQWtCLENBQUMsZUFBZSwyQkFBMkIsR0FBRyxVQUFVLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFVBQVUsQ0FBVyxDQUFDO1lBQzNMLENBQUM7WUFFRCxzRUFBc0U7WUFDdEUsSUFBSSxDQUFDLGtCQUFrQixJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxpQkFBaUIsRUFBRSxFQUFFLENBQUM7Z0JBQzNELGtCQUFrQixHQUFHLElBQUksc0JBQXNCLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxtQkFBbUIsSUFBSSxFQUFFLGVBQWUsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO2dCQUNuSCxJQUFJLENBQUMsS0FBSyxDQUFDLGlCQUFpQixDQUFDLGtCQUFrQixDQUFDLENBQUM7WUFDbkQsQ0FBQztZQUVELGtCQUFrQjtZQUNsQixJQUFJLElBQUksQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUM7Z0JBQzVDLElBQUksSUFBSSxDQUFDLG9CQUFvQixDQUFDLHFCQUFxQixFQUFFLENBQUM7b0JBQ3BELElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDeEQsQ0FBQztnQkFFRCxJQUFJLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztvQkFDekIsSUFBSSxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDLEtBQUssRUFBRSxJQUFJLEVBQUUsRUFBRTt3QkFDaEUsSUFBSSxJQUFJLENBQUMsb0JBQW9CLElBQUksT0FBTyxJQUFJLENBQUMsb0JBQW9CLENBQUMsZUFBZSxLQUFLLFVBQVUsRUFBRSxDQUFDOzRCQUNqRyxJQUFJLENBQUMsb0JBQW9CLENBQUMsZUFBZSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsQ0FBQzt3QkFDekQsQ0FBQztvQkFDSCxDQUFDLENBQUMsQ0FBQztnQkFDTCxDQUFDO2dCQUVELElBQUksSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7b0JBQzFCLElBQUksQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRTt3QkFDN0QsMkRBQTJEO3dCQUMzRCxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQzt3QkFFakMsSUFBSSxJQUFJLENBQUMsb0JBQW9CLElBQUksT0FBTyxJQUFJLENBQUMsb0JBQW9CLENBQUMsZ0JBQWdCLEtBQUssVUFBVSxFQUFFLENBQUM7NEJBQ2xHLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUM7d0JBQ3RELENBQUM7b0JBQ0gsQ0FBQyxDQUFDLENBQUM7Z0JBQ0wsQ0FBQztnQkFFRCxJQUFJLElBQUksQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO29CQUNoQyxJQUFJLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsc0JBQXNCLEVBQUUsQ0FBQyxDQUFNLEVBQUUsSUFBMkUsRUFBRSxFQUFFO3dCQUMvSSxpRkFBaUY7d0JBQ2pGLHdHQUF3Rzt3QkFDeEcsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7d0JBQ3pCLElBQUksQ0FBQyx1QkFBdUIsRUFBRSxDQUFDO3dCQUUvQixJQUFJLElBQUksQ0FBQyxvQkFBb0IsSUFBSSxPQUFPLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxzQkFBc0IsS0FBSyxVQUFVLEVBQUUsQ0FBQzs0QkFDeEcsSUFBSSxDQUFDLG9CQUFvQixDQUFDLHNCQUFzQixDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQzt3QkFDNUQsQ0FBQztvQkFDSCxDQUFDLENBQUMsQ0FBQztnQkFDTCxDQUFDO2dCQUVELElBQUksSUFBSSxDQUFDLHVCQUF1QixFQUFFLENBQUM7b0JBQ2pDLElBQUksQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyx1QkFBdUIsRUFBRSxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRTt3QkFDcEUsbUZBQW1GO3dCQUNuRixJQUFJLENBQUMsNkJBQTZCLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDO3dCQUU1QyxJQUFJLElBQUksQ0FBQyxvQkFBb0IsSUFBSSxPQUFPLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyx1QkFBdUIsS0FBSyxVQUFVLEVBQUUsQ0FBQzs0QkFDekcsT0FBTyxJQUFJLENBQUMsb0JBQW9CLENBQUMsdUJBQXVCLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDO3dCQUNwRSxDQUFDO3dCQUNELE9BQU8sSUFBSSxDQUFDO29CQUNkLENBQUMsQ0FBQyxDQUFDO2dCQUNMLENBQUM7Z0JBRUQsSUFBSSxJQUFJLENBQUMsd0JBQXdCLEVBQUUsQ0FBQztvQkFDbEMsSUFBSSxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLHdCQUF3QixFQUFFLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFO3dCQUNyRSw4RUFBOEU7d0JBQzlFLElBQUksQ0FBQyw4QkFBOEIsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUM7d0JBRTdDLElBQUksSUFBSSxDQUFDLG9CQUFvQixJQUFJLE9BQU8sSUFBSSxDQUFDLG9CQUFvQixDQUFDLHdCQUF3QixLQUFLLFVBQVUsRUFBRSxDQUFDOzRCQUMxRyxJQUFJLENBQUMsb0JBQW9CLENBQUMsd0JBQXdCLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDO3dCQUM5RCxDQUFDO29CQUNILENBQUMsQ0FBQyxDQUFDO2dCQUNMLENBQUM7Z0JBRUQsSUFBSSxJQUFJLENBQUMsdUJBQXVCLEVBQUUsQ0FBQztvQkFDakMsSUFBSSxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLHVCQUF1QixFQUFFLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFO3dCQUNwRSxJQUFJLElBQUksQ0FBQyxvQkFBb0IsSUFBSSxPQUFPLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyx1QkFBdUIsS0FBSyxVQUFVLEVBQUUsQ0FBQzs0QkFDekcsSUFBSSxDQUFDLG9CQUFvQixDQUFDLHVCQUF1QixDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQzt3QkFDN0QsQ0FBQztvQkFDSCxDQUFDLENBQUMsQ0FBQztnQkFDTCxDQUFDO2dCQUVELEtBQUs7Z0JBQ0wsK0NBQStDO2dCQUUvQyx5Q0FBeUM7Z0JBQ3pDLElBQUksQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztnQkFFNUYsbURBQW1EO2dCQUNuRCxJQUFJLElBQUksQ0FBQyxXQUFXLENBQUMsa0JBQWtCLElBQUksSUFBSSxDQUFDLFdBQVcsQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO29CQUNuRixJQUFJLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLHFCQUFxQixFQUFFLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztnQkFDekcsQ0FBQztnQkFFRCxtRkFBbUY7Z0JBQ25GLElBQUksQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztnQkFFekYsb0RBQW9EO2dCQUNwRCxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FDdEIsSUFBSSxDQUFDLGtCQUFrQixFQUFFLFNBQVMsQ0FBQyxpQkFBaUIsRUFBRSxJQUFJLENBQUMsdUJBQXVCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQzlGLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxTQUFTLENBQUMsQ0FBQywyQkFBMkIsRUFBRSwyQkFBMkIsQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLHVCQUF1QixFQUFFLENBQUMsQ0FBQyxDQUM5SixDQUFDO1lBQ0osQ0FBQztRQUNILENBQUM7UUFDRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRCxxRUFBcUU7SUFDckUsdUJBQXVCO1FBQ3JCLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUU7WUFDOUIsSUFBSSxDQUFDLG1CQUFtQixDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3BDLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELHlEQUF5RDtJQUN6RCx1QkFBdUI7UUFDckIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtZQUMzQixJQUFJLElBQUksRUFBRSxXQUFXLEVBQUUsQ0FBQztnQkFDdEIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7WUFDekMsQ0FBQztRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELDBDQUEwQztJQUMxQyxtQkFBbUIsQ0FBQyxXQUF3QjtRQUMxQyxNQUFNLGlCQUFpQixHQUFHLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxzQkFBc0IsQ0FBQyxHQUFHLDJCQUEyQixHQUFHLFdBQVcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQzlILElBQUksaUJBQWlCLEVBQUUsTUFBTSxJQUFJLENBQUMsRUFBRSxDQUFDO1lBQ25DLElBQUksQ0FBQyxlQUFlLENBQUMsV0FBVyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ2hELENBQUM7SUFDSCxDQUFDO0lBRUQsNERBQTREO0lBQzVELGlCQUFpQjtRQUNmLE1BQU0saUJBQWlCLEdBQUcsSUFBSSxDQUFDLG9CQUFvQixDQUFDLHNCQUFzQixDQUFDLEdBQUcsd0JBQXdCLEVBQUUsQ0FBa0MsQ0FBQztRQUMzSSxJQUFJLElBQUksQ0FBQyxpQkFBaUIsSUFBSSxpQkFBaUIsRUFBRSxNQUFNLElBQUksQ0FBQyxFQUFFLENBQUM7WUFDN0QsSUFBSSxDQUFDLGtCQUFrQixDQUFDLGlDQUFpQyxDQUFDLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxpQkFBaUIsQ0FBQyxpQkFBaUIsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNySSxDQUFDO0lBQ0gsQ0FBQztJQUVELDREQUE0RDtJQUM1RCxlQUFlLENBQUMsSUFBUztRQUN2QixNQUFNLGlCQUFpQixHQUFHLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxzQkFBc0IsQ0FBQyxHQUFHLDJCQUEyQixHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsRUFBRSxDQUFrQyxDQUFDO1FBQzdLLElBQUksSUFBSSxDQUFDLGNBQWMsSUFBSSxpQkFBaUIsRUFBRSxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDekQsTUFBTSxlQUFlLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLGlDQUFpQyxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUUsaUJBQWlCLENBQUMsaUJBQWlCLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxFQUFFO2dCQUN0SixLQUFLLEVBQUUsSUFBSTtnQkFDWCxLQUFLLEVBQUUsSUFBSTtnQkFDWCxJQUFJLEVBQUUsSUFBSSxDQUFDLEtBQUs7Z0JBQ2hCLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUTtnQkFDdkIsTUFBTSxFQUFFLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxNQUFNO2FBQzFDLENBQUMsQ0FBQztZQUNILElBQUksZUFBZSxFQUFFLFlBQVksRUFBRSxDQUFDO2dCQUNsQyxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEtBQUssSUFBSSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLENBQUM7Z0JBQ2pGLElBQUksT0FBTyxFQUFFLENBQUM7b0JBQ1osT0FBTyxDQUFDLFlBQVksR0FBRyxlQUFlLENBQUMsWUFBWSxDQUFDO2dCQUN0RCxDQUFDO2dCQUNELE9BQU8sT0FBTyxDQUFDO1lBQ2pCLENBQUM7UUFDSCxDQUFDO1FBQ0QsT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQztJQUVELEtBQUs7SUFDTCxzQkFBc0I7SUFDdEIscUJBQXFCO0lBRVgsb0JBQW9CLENBQUMsWUFBeUI7UUFDdEQsTUFBTSxPQUFPLEdBQUcsWUFBWSxFQUFFLFlBQVksQ0FBQztRQUMzQyxJQUFJLE9BQU8sRUFBRSxDQUFDO1lBQ1osSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQ3pDLElBQUksT0FBTyxFQUFFLE9BQU8sRUFBRSxDQUFDO2dCQUNyQixPQUFPLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDcEIsQ0FBQztZQUNELE9BQU8sWUFBWSxDQUFDO1FBQ3RCLENBQUM7SUFDSCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNPLGNBQWMsQ0FBQyxJQUFTO1FBQ2hDLElBQUksSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO1lBQ3pCLElBQUksQ0FBQyxlQUFlLENBQUMsTUFBTSxDQUFDLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUUsRUFBRSxTQUFTLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDM0UsQ0FBQztJQUNILENBQUM7SUFFRDs7O09BR0c7SUFDTyxLQUFLLENBQUMsWUFBWSxDQUFDLElBQVM7UUFDcEMsSUFBSSxJQUFJLElBQUksT0FBTyxJQUFJLENBQUMsY0FBYyxLQUFLLFVBQVUsRUFBRSxDQUFDO1lBQ3RELElBQUksaUJBQXNCLENBQUM7WUFDM0IsTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUVoRCxvRkFBb0Y7WUFDcEYsTUFBTSxRQUFRLEdBQWdCLE1BQU0sYUFBYSxDQUFDO1lBRWxELElBQUksSUFBSSxDQUFDLGlCQUFpQixJQUFJLFFBQVEsRUFBRSxDQUFDO2dCQUN2QyxpQkFBaUIsR0FBRyxRQUFRLENBQUMsQ0FBQyxlQUFlO1lBQy9DLENBQUM7aUJBQU0sSUFBSSxRQUFRLElBQUksUUFBUSxZQUFZLFVBQVUsSUFBSSxRQUFRLFlBQVksT0FBTyxFQUFFLENBQUM7Z0JBQ3JGLGlCQUFpQixHQUFHLE1BQU0sdUJBQXVCLENBQUMsSUFBSSxDQUFDLElBQWtCLEVBQUUsUUFBUSxDQUFDLENBQUMsQ0FBQywyQkFBMkI7WUFDbkgsQ0FBQztZQUVELElBQUksQ0FBQyxpQkFBaUIsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLGlCQUFpQixJQUFJLGlCQUFpQixDQUFDLEVBQUUsQ0FBQztnQkFDekUsTUFBTSxJQUFJLEtBQUssQ0FBQzswR0FDa0YsSUFBSSxDQUFDLGlCQUFpQixZQUFZLENBQUMsQ0FBQztZQUN4SSxDQUFDO1lBRUQsOENBQThDO1lBQzlDLElBQUksQ0FBQyxjQUFjLENBQUMsaUJBQWlCLElBQUksRUFBRSxDQUFDLENBQUM7UUFDL0MsQ0FBQztJQUNILENBQUM7SUFFRDs7Ozs7T0FLRztJQUNPLDZCQUE2QixDQUFDLEVBQStDLEVBQUUsSUFBcUM7UUFDNUgsWUFBWTtRQUNaLElBQUksSUFBSSxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUUsQ0FBQztZQUM1Qix1QkFBdUI7WUFDdkIsTUFBTSxRQUFRLEdBQWdCO2dCQUM1QixFQUFFLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUM7Z0JBQ3JDLFdBQVcsRUFBRSxJQUFJLENBQUMsSUFBSTthQUN2QixDQUFDO1lBQ0YsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxxQkFBcUIsSUFBSSxJQUFJLENBQUM7WUFDbEUsdUJBQXVCLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxRQUFRLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFDN0QsQ0FBQzthQUFNLENBQUM7WUFDTiwrQ0FBK0M7WUFDL0MsTUFBTSxjQUFjLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQyxJQUFpQixFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxLQUFLLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FBQztZQUNuSCxJQUFJLGNBQWMsSUFBSSxDQUFDLElBQUksY0FBYyxJQUFJLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztnQkFDekQsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQyxZQUFZLENBQUM7Z0JBQ3pELElBQUksT0FBTyxFQUFFLENBQUM7b0JBQ1osSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDO29CQUN6QyxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUM7Z0JBQ3BCLENBQUM7Z0JBQ0QsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsY0FBYyxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQ3hDLENBQUM7UUFDSCxDQUFDO0lBQ0gsQ0FBQztJQUVELHdFQUF3RTtJQUM5RCw4QkFBOEIsQ0FBQyxFQUFnRCxFQUFFLElBQWtDO1FBQzNILElBQUksSUFBSSxFQUFFLElBQUksRUFBRSxDQUFDO1lBQ2YsSUFBSSxDQUFDLHVCQUF1QixFQUFFLENBQUM7UUFDakMsQ0FBQztJQUNILENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgQXBwbGljYXRpb25SZWYsIENvbXBvbmVudFJlZiwgVHlwZSwgVmlld0NvbnRhaW5lclJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHR5cGUgeyBFdmVudFN1YnNjcmlwdGlvbiwgT25CZWZvcmVSb3dEZXRhaWxUb2dnbGVBcmdzLCBPblJvd0JhY2tUb1ZpZXdwb3J0UmFuZ2VBcmdzLCBSeEpzRmFjYWRlLCBTbGlja0V2ZW50RGF0YSwgU2xpY2tFdmVudEhhbmRsZXIsIFNsaWNrR3JpZCB9IGZyb20gJ0BzbGlja2dyaWQtdW5pdmVyc2FsL2NvbW1vbic7XG5pbXBvcnQgeyBhZGRUb0FycmF5V2hlbk5vdEV4aXN0cywgY2FzdE9ic2VydmFibGVUb1Byb21pc2UsIFNsaWNrUm93U2VsZWN0aW9uTW9kZWwsIHVuc3Vic2NyaWJlQWxsIH0gZnJvbSAnQHNsaWNrZ3JpZC11bml2ZXJzYWwvY29tbW9uJztcbmltcG9ydCB0eXBlIHsgRXZlbnRQdWJTdWJTZXJ2aWNlIH0gZnJvbSAnQHNsaWNrZ3JpZC11bml2ZXJzYWwvZXZlbnQtcHViLXN1Yic7XG5pbXBvcnQgeyBTbGlja1Jvd0RldGFpbFZpZXcgYXMgVW5pdmVyc2FsU2xpY2tSb3dEZXRhaWxWaWV3IH0gZnJvbSAnQHNsaWNrZ3JpZC11bml2ZXJzYWwvcm93LWRldGFpbC12aWV3LXBsdWdpbic7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCB0eXBlIFN1YmplY3QgfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHR5cGUgeyBHcmlkT3B0aW9uLCBSb3dEZXRhaWxWaWV3IH0gZnJvbSAnLi4vbW9kZWxzL2luZGV4JztcbmltcG9ydCB0eXBlIHsgQW5ndWxhclV0aWxTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvYW5ndWxhclV0aWwuc2VydmljZSc7XG5cbmNvbnN0IFJPV19ERVRBSUxfQ09OVEFJTkVSX1BSRUZJWCA9ICdjb250YWluZXJfJztcbmNvbnN0IFBSRUxPQURfQ09OVEFJTkVSX1BSRUZJWCA9ICdjb250YWluZXJfbG9hZGluZyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ3JlYXRlZFZpZXcge1xuICBpZDogc3RyaW5nIHwgbnVtYmVyO1xuICBkYXRhQ29udGV4dDogYW55O1xuICBjb21wb25lbnRSZWY/OiBDb21wb25lbnRSZWY8YW55Pjtcbn1cblxuZXhwb3J0IGNsYXNzIFNsaWNrUm93RGV0YWlsVmlldyBleHRlbmRzIFVuaXZlcnNhbFNsaWNrUm93RGV0YWlsVmlldyB7XG4gIHJvd0RldGFpbENvbnRhaW5lciE6IFZpZXdDb250YWluZXJSZWY7XG4gIHByb3RlY3RlZCBfcHJlbG9hZENvbXBvbmVudDogVHlwZTxvYmplY3Q+IHwgdW5kZWZpbmVkO1xuICBwcm90ZWN0ZWQgX3ZpZXdzOiBDcmVhdGVkVmlld1tdID0gW107XG4gIHByb3RlY3RlZCBfdmlld0NvbXBvbmVudCE6IFR5cGU8b2JqZWN0PjtcbiAgcHJvdGVjdGVkIF9zdWJzY3JpcHRpb25zOiBFdmVudFN1YnNjcmlwdGlvbltdID0gW107XG4gIHByb3RlY3RlZCBfdXNlclByb2Nlc3NGbiE6IChpdGVtOiBhbnkpID0+IFByb21pc2U8YW55PiB8IE9ic2VydmFibGU8YW55PiB8IFN1YmplY3Q8YW55PjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgYW5ndWxhclV0aWxTZXJ2aWNlOiBBbmd1bGFyVXRpbFNlcnZpY2UsXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGFwcFJlZjogQXBwbGljYXRpb25SZWYsXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGV2ZW50UHViU3ViU2VydmljZTogRXZlbnRQdWJTdWJTZXJ2aWNlLFxuICAgIHByb3RlY3RlZCByZWFkb25seSBncmlkQ29udGFpbmVyRWxlbWVudDogSFRNTERpdkVsZW1lbnQsXG4gICAgcHJvdGVjdGVkIHJ4anM/OiBSeEpzRmFjYWRlLFxuICApIHtcbiAgICBzdXBlcihldmVudFB1YlN1YlNlcnZpY2UpO1xuICB9XG5cbiAgZ2V0IGFkZG9uT3B0aW9ucygpIHtcbiAgICByZXR1cm4gdGhpcy5nZXRPcHRpb25zKCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgZ2V0IGRhdGFzZXRJZFByb3BOYW1lKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuZ3JpZE9wdGlvbnMuZGF0YXNldElkUHJvcGVydHlOYW1lIHx8ICdpZCc7XG4gIH1cblxuICBnZXQgZXZlbnRIYW5kbGVyKCk6IFNsaWNrRXZlbnRIYW5kbGVyIHtcbiAgICByZXR1cm4gdGhpcy5fZXZlbnRIYW5kbGVyO1xuICB9XG4gIHNldCBldmVudEhhbmRsZXIoZXZlbnRIYW5kbGVyOiBTbGlja0V2ZW50SGFuZGxlcikge1xuICAgIHRoaXMuX2V2ZW50SGFuZGxlciA9IGV2ZW50SGFuZGxlcjtcbiAgfVxuXG4gIC8qKiBHZXR0ZXIgZm9yIHRoZSBHcmlkIE9wdGlvbnMgcHVsbGVkIHRocm91Z2ggdGhlIEdyaWQgT2JqZWN0ICovXG4gIGdldCBncmlkT3B0aW9ucygpOiBHcmlkT3B0aW9uIHtcbiAgICByZXR1cm4gKHRoaXMuX2dyaWQ/LmdldE9wdGlvbnMoKSB8fCB7fSkgYXMgR3JpZE9wdGlvbjtcbiAgfVxuXG4gIGdldCByb3dEZXRhaWxWaWV3T3B0aW9ucygpOiBSb3dEZXRhaWxWaWV3IHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5ncmlkT3B0aW9ucy5yb3dEZXRhaWxWaWV3O1xuICB9XG5cbiAgYWRkUnhKc1Jlc291cmNlKHJ4anM6IFJ4SnNGYWNhZGUpIHtcbiAgICB0aGlzLnJ4anMgPSByeGpzO1xuICB9XG5cbiAgLyoqIERpc3Bvc2Ugb2YgdGhlIFJvd0RldGFpbFZpZXcgRXh0ZW5zaW9uICovXG4gIGRpc3Bvc2UoKSB7XG4gICAgdGhpcy5kaXNwb3NlQWxsVmlld0NvbXBvbmVudHMoKTtcbiAgICB0aGlzLl9zdWJzY3JpcHRpb25zID0gdW5zdWJzY3JpYmVBbGwodGhpcy5fc3Vic2NyaXB0aW9ucyk7IC8vIGFsc28gdW5zdWJzY3JpYmUgYWxsIFJ4SlMgc3Vic2NyaXB0aW9uc1xuICAgIHN1cGVyLmRpc3Bvc2UoKTtcbiAgfVxuXG4gIC8qKiBEaXNwb3NlIG9mIGFsbCB0aGUgb3BlbmVkIFJvdyBEZXRhaWwgUGFuZWxzIEFuZ3VsYXIgVmlldyBDb21wb25lbnRzICovXG4gIGRpc3Bvc2VBbGxWaWV3Q29tcG9uZW50cygpIHtcbiAgICB0aGlzLl92aWV3cy5mb3JFYWNoKChjb21wUmVmKSA9PiB0aGlzLmRpc3Bvc2VWaWV3Q29tcG9uZW50KGNvbXBSZWYpKTtcbiAgICB0aGlzLl92aWV3cyA9IFtdO1xuICB9XG5cbiAgLyoqIEdldCB0aGUgaW5zdGFuY2Ugb2YgdGhlIFNsaWNrR3JpZCBhZGRvbiAoY29udHJvbCBvciBwbHVnaW4pLiAqL1xuICBnZXRBZGRvbkluc3RhbmNlKCk6IFNsaWNrUm93RGV0YWlsVmlldyB8IG51bGwge1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgaW5pdChncmlkOiBTbGlja0dyaWQpIHtcbiAgICB0aGlzLl9ncmlkID0gZ3JpZDtcbiAgICBzdXBlci5pbml0KHRoaXMuX2dyaWQpO1xuICAgIHRoaXMucmVnaXN0ZXIoZ3JpZD8uZ2V0U2VsZWN0aW9uTW9kZWwoKSBhcyBTbGlja1Jvd1NlbGVjdGlvbk1vZGVsKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGUgdGhlIHBsdWdpbiBiZWZvcmUgdGhlIEdyaWQgY3JlYXRpb24sIGVsc2UgaXQgd2lsbCBiZWhhdmUgb2RkbHkuXG4gICAqIE1vc3RseSBiZWNhdXNlIHRoZSBjb2x1bW4gZGVmaW5pdGlvbnMgbWlnaHQgY2hhbmdlIGFmdGVyIHRoZSBncmlkIGNyZWF0aW9uXG4gICAqL1xuICByZWdpc3Rlcihyb3dTZWxlY3Rpb25QbHVnaW4/OiBTbGlja1Jvd1NlbGVjdGlvbk1vZGVsKSB7XG4gICAgaWYgKHR5cGVvZiB0aGlzLmdyaWRPcHRpb25zLnJvd0RldGFpbFZpZXc/LnByb2Nlc3MgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIC8vIHdlIG5lZWQgdG8ga2VlcCB0aGUgdXNlciBcInByb2Nlc3NcIiBtZXRob2QgYW5kIHJlcGxhY2UgaXQgd2l0aCBvdXIgb3duIGV4ZWN1dGlvbiBtZXRob2RcbiAgICAgIC8vIHdlIGRvIHRoaXMgYmVjYXVzZSB3aGVuIHdlIGdldCB0aGUgaXRlbSBkZXRhaWwsIHdlIG5lZWQgdG8gY2FsbCBcIm9uQXN5bmNSZXNwb25zZS5ub3RpZnlcIiBmb3IgdGhlIHBsdWdpbiB0byB3b3JrXG4gICAgICB0aGlzLl91c2VyUHJvY2Vzc0ZuID0gdGhpcy5ncmlkT3B0aW9ucy5yb3dEZXRhaWxWaWV3LnByb2Nlc3MgYXMgKGl0ZW06IGFueSkgPT4gUHJvbWlzZTxhbnk+OyAgICAgICAgICAgICAgICAvLyBrZWVwIHVzZXIncyBwcm9jZXNzIG1ldGhvZFxuICAgICAgdGhpcy5hZGRvbk9wdGlvbnMucHJvY2VzcyA9IChpdGVtKSA9PiB0aGlzLm9uUHJvY2Vzc2luZyhpdGVtKTsgIC8vIHJlcGxhY2UgcHJvY2VzcyBtZXRob2QgJiBydW4gb3VyIGludGVybmFsIG9uZVxuICAgIH0gZWxzZSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ1tBbmd1bGFyLVNsaWNrZ3JpZF0gWW91IG5lZWQgdG8gcHJvdmlkZSBhIFwicHJvY2Vzc1wiIGZ1bmN0aW9uIGZvciB0aGUgUm93IERldGFpbCBFeHRlbnNpb24gdG8gd29yayBwcm9wZXJseScpO1xuICAgIH1cblxuICAgIGlmICh0aGlzLl9ncmlkICYmIHRoaXMuZ3JpZE9wdGlvbnM/LnJvd0RldGFpbFZpZXcpIHtcbiAgICAgIC8vIGxvYWQgdGhlIFByZWxvYWQgJiBSb3dEZXRhaWwgVGVtcGxhdGVzIChjb3VsZCBiZSBzdHJhaWdodCBIVE1MIG9yIEFuZ3VsYXIgVmlldy9WaWV3TW9kZWwpXG4gICAgICAvLyB3aGVuIHRob3NlIGFyZSBBbmd1bGFyIFZpZXcvVmlld01vZGVsLCB3ZSBuZWVkIHRvIGNyZWF0ZSBWaWV3IENvbXBvbmVudCAmIHByb3ZpZGUgdGhlIGh0bWwgY29udGFpbmVycyB0byB0aGUgUGx1Z2luIChwcmVUZW1wbGF0ZS9wb3N0VGVtcGxhdGUgbWV0aG9kcylcbiAgICAgIGlmICghdGhpcy5ncmlkT3B0aW9ucy5yb3dEZXRhaWxWaWV3LnByZVRlbXBsYXRlKSB7XG4gICAgICAgIHRoaXMuX3ByZWxvYWRDb21wb25lbnQgPSB0aGlzLmdyaWRPcHRpb25zPy5yb3dEZXRhaWxWaWV3Py5wcmVsb2FkQ29tcG9uZW50O1xuICAgICAgICB0aGlzLmFkZG9uT3B0aW9ucy5wcmVUZW1wbGF0ZSA9ICgpID0+IHRoaXMuX2dyaWQuc2FuaXRpemVIdG1sU3RyaW5nKGA8ZGl2IGNsYXNzPVwiJHtQUkVMT0FEX0NPTlRBSU5FUl9QUkVGSVh9XCI+PC9kaXY+YCkgYXMgc3RyaW5nO1xuICAgICAgfVxuICAgICAgaWYgKCF0aGlzLmdyaWRPcHRpb25zLnJvd0RldGFpbFZpZXcucG9zdFRlbXBsYXRlKSB7XG4gICAgICAgIHRoaXMuX3ZpZXdDb21wb25lbnQgPSB0aGlzLmdyaWRPcHRpb25zPy5yb3dEZXRhaWxWaWV3Py52aWV3Q29tcG9uZW50O1xuICAgICAgICB0aGlzLmFkZG9uT3B0aW9ucy5wb3N0VGVtcGxhdGUgPSAoaXRlbURldGFpbDogYW55KSA9PiB0aGlzLl9ncmlkLnNhbml0aXplSHRtbFN0cmluZyhgPGRpdiBjbGFzcz1cIiR7Uk9XX0RFVEFJTF9DT05UQUlORVJfUFJFRklYfSR7aXRlbURldGFpbFt0aGlzLmRhdGFzZXRJZFByb3BOYW1lXX1cIj48L2Rpdj5gKSBhcyBzdHJpbmc7XG4gICAgICB9XG5cbiAgICAgIC8vIHRoaXMgYWxzbyByZXF1aXJlcyB0aGUgUm93IFNlbGVjdGlvbiBNb2RlbCB0byBiZSByZWdpc3RlcmVkIGFzIHdlbGxcbiAgICAgIGlmICghcm93U2VsZWN0aW9uUGx1Z2luIHx8ICF0aGlzLl9ncmlkLmdldFNlbGVjdGlvbk1vZGVsKCkpIHtcbiAgICAgICAgcm93U2VsZWN0aW9uUGx1Z2luID0gbmV3IFNsaWNrUm93U2VsZWN0aW9uTW9kZWwodGhpcy5ncmlkT3B0aW9ucy5yb3dTZWxlY3Rpb25PcHRpb25zIHx8IHsgc2VsZWN0QWN0aXZlUm93OiB0cnVlIH0pO1xuICAgICAgICB0aGlzLl9ncmlkLnNldFNlbGVjdGlvbk1vZGVsKHJvd1NlbGVjdGlvblBsdWdpbik7XG4gICAgICB9XG5cbiAgICAgIC8vIGhvb2sgYWxsIGV2ZW50c1xuICAgICAgaWYgKHRoaXMuX2dyaWQgJiYgdGhpcy5yb3dEZXRhaWxWaWV3T3B0aW9ucykge1xuICAgICAgICBpZiAodGhpcy5yb3dEZXRhaWxWaWV3T3B0aW9ucy5vbkV4dGVuc2lvblJlZ2lzdGVyZWQpIHtcbiAgICAgICAgICB0aGlzLnJvd0RldGFpbFZpZXdPcHRpb25zLm9uRXh0ZW5zaW9uUmVnaXN0ZXJlZCh0aGlzKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLm9uQXN5bmNSZXNwb25zZSkge1xuICAgICAgICAgIHRoaXMuZXZlbnRIYW5kbGVyLnN1YnNjcmliZSh0aGlzLm9uQXN5bmNSZXNwb25zZSwgKGV2ZW50LCBhcmdzKSA9PiB7XG4gICAgICAgICAgICBpZiAodGhpcy5yb3dEZXRhaWxWaWV3T3B0aW9ucyAmJiB0eXBlb2YgdGhpcy5yb3dEZXRhaWxWaWV3T3B0aW9ucy5vbkFzeW5jUmVzcG9uc2UgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgICAgdGhpcy5yb3dEZXRhaWxWaWV3T3B0aW9ucy5vbkFzeW5jUmVzcG9uc2UoZXZlbnQsIGFyZ3MpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMub25Bc3luY0VuZFVwZGF0ZSkge1xuICAgICAgICAgIHRoaXMuZXZlbnRIYW5kbGVyLnN1YnNjcmliZSh0aGlzLm9uQXN5bmNFbmRVcGRhdGUsIChlLCBhcmdzKSA9PiB7XG4gICAgICAgICAgICAvLyB0cmlnZ2VycyBhZnRlciBiYWNrZW5kIGNhbGxlZCBcIm9uQXN5bmNSZXNwb25zZS5ub3RpZnkoKVwiXG4gICAgICAgICAgICB0aGlzLnJlbmRlclZpZXdNb2RlbChhcmdzPy5pdGVtKTtcblxuICAgICAgICAgICAgaWYgKHRoaXMucm93RGV0YWlsVmlld09wdGlvbnMgJiYgdHlwZW9mIHRoaXMucm93RGV0YWlsVmlld09wdGlvbnMub25Bc3luY0VuZFVwZGF0ZSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgICB0aGlzLnJvd0RldGFpbFZpZXdPcHRpb25zLm9uQXN5bmNFbmRVcGRhdGUoZSwgYXJncyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5vbkFmdGVyUm93RGV0YWlsVG9nZ2xlKSB7XG4gICAgICAgICAgdGhpcy5ldmVudEhhbmRsZXIuc3Vic2NyaWJlKHRoaXMub25BZnRlclJvd0RldGFpbFRvZ2dsZSwgKGU6IGFueSwgYXJnczogeyBncmlkOiBTbGlja0dyaWQ7IGl0ZW06IGFueTsgZXhwYW5kZWRSb3dzOiBBcnJheTxudW1iZXIgfCBzdHJpbmc+OyB9KSA9PiB7XG4gICAgICAgICAgICAvLyBkaXNwbGF5IHByZWxvYWQgdGVtcGxhdGUgJiByZS1yZW5kZXIgYWxsIHRoZSBvdGhlciBEZXRhaWwgVmlld3MgYWZ0ZXIgdG9nZ2xpbmdcbiAgICAgICAgICAgIC8vIHRoZSBwcmVsb2FkIFZpZXcgd2lsbCBldmVudHVhbGx5IGdvIGF3YXkgb25jZSB0aGUgZGF0YSBnZXRzIGxvYWRlZCBhZnRlciB0aGUgXCJvbkFzeW5jRW5kVXBkYXRlXCIgZXZlbnRcbiAgICAgICAgICAgIHRoaXMucmVuZGVyUHJlbG9hZFZpZXcoKTtcbiAgICAgICAgICAgIHRoaXMucmVuZGVyQWxsVmlld0NvbXBvbmVudHMoKTtcblxuICAgICAgICAgICAgaWYgKHRoaXMucm93RGV0YWlsVmlld09wdGlvbnMgJiYgdHlwZW9mIHRoaXMucm93RGV0YWlsVmlld09wdGlvbnMub25BZnRlclJvd0RldGFpbFRvZ2dsZSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgICB0aGlzLnJvd0RldGFpbFZpZXdPcHRpb25zLm9uQWZ0ZXJSb3dEZXRhaWxUb2dnbGUoZSwgYXJncyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5vbkJlZm9yZVJvd0RldGFpbFRvZ2dsZSkge1xuICAgICAgICAgIHRoaXMuZXZlbnRIYW5kbGVyLnN1YnNjcmliZSh0aGlzLm9uQmVmb3JlUm93RGV0YWlsVG9nZ2xlLCAoZSwgYXJncykgPT4ge1xuICAgICAgICAgICAgLy8gYmVmb3JlIHRvZ2dsaW5nIHJvdyBkZXRhaWwsIHdlIG5lZWQgdG8gY3JlYXRlIFZpZXcgQ29tcG9uZW50IGlmIGl0IGRvZXNuJ3QgZXhpc3RcbiAgICAgICAgICAgIHRoaXMuaGFuZGxlT25CZWZvcmVSb3dEZXRhaWxUb2dnbGUoZSwgYXJncyk7XG5cbiAgICAgICAgICAgIGlmICh0aGlzLnJvd0RldGFpbFZpZXdPcHRpb25zICYmIHR5cGVvZiB0aGlzLnJvd0RldGFpbFZpZXdPcHRpb25zLm9uQmVmb3JlUm93RGV0YWlsVG9nZ2xlID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgICAgIHJldHVybiB0aGlzLnJvd0RldGFpbFZpZXdPcHRpb25zLm9uQmVmb3JlUm93RGV0YWlsVG9nZ2xlKGUsIGFyZ3MpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5vblJvd0JhY2tUb1ZpZXdwb3J0UmFuZ2UpIHtcbiAgICAgICAgICB0aGlzLmV2ZW50SGFuZGxlci5zdWJzY3JpYmUodGhpcy5vblJvd0JhY2tUb1ZpZXdwb3J0UmFuZ2UsIChlLCBhcmdzKSA9PiB7XG4gICAgICAgICAgICAvLyB3aGVuIHJvdyBpcyBiYWNrIHRvIHZpZXdwb3J0IHJhbmdlLCB3ZSB3aWxsIHJlLXJlbmRlciB0aGUgVmlldyBDb21wb25lbnQocylcbiAgICAgICAgICAgIHRoaXMuaGFuZGxlT25Sb3dCYWNrVG9WaWV3cG9ydFJhbmdlKGUsIGFyZ3MpO1xuXG4gICAgICAgICAgICBpZiAodGhpcy5yb3dEZXRhaWxWaWV3T3B0aW9ucyAmJiB0eXBlb2YgdGhpcy5yb3dEZXRhaWxWaWV3T3B0aW9ucy5vblJvd0JhY2tUb1ZpZXdwb3J0UmFuZ2UgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgICAgdGhpcy5yb3dEZXRhaWxWaWV3T3B0aW9ucy5vblJvd0JhY2tUb1ZpZXdwb3J0UmFuZ2UoZSwgYXJncyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5vblJvd091dE9mVmlld3BvcnRSYW5nZSkge1xuICAgICAgICAgIHRoaXMuZXZlbnRIYW5kbGVyLnN1YnNjcmliZSh0aGlzLm9uUm93T3V0T2ZWaWV3cG9ydFJhbmdlLCAoZSwgYXJncykgPT4ge1xuICAgICAgICAgICAgaWYgKHRoaXMucm93RGV0YWlsVmlld09wdGlvbnMgJiYgdHlwZW9mIHRoaXMucm93RGV0YWlsVmlld09wdGlvbnMub25Sb3dPdXRPZlZpZXdwb3J0UmFuZ2UgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgICAgdGhpcy5yb3dEZXRhaWxWaWV3T3B0aW9ucy5vblJvd091dE9mVmlld3BvcnRSYW5nZShlLCBhcmdzKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIC0tXG4gICAgICAgIC8vIGhvb2sgc29tZSBldmVudHMgbmVlZGVkIGJ5IHRoZSBQbHVnaW4gaXRzZWxmXG5cbiAgICAgICAgLy8gcmVkcmF3IGFueXRpbWUgdGhlIGdyaWQgaXMgcmUtcmVuZGVyZWRcbiAgICAgICAgdGhpcy5ldmVudEhhbmRsZXIuc3Vic2NyaWJlKHRoaXMuX2dyaWQub25SZW5kZXJlZCwgdGhpcy5yZWRyYXdBbGxWaWV3Q29tcG9uZW50cy5iaW5kKHRoaXMpKTtcblxuICAgICAgICAvLyBvbiByb3cgc2VsZWN0aW9uIGNoYW5nZWQsIHdlIGFsc28gbmVlZCB0byByZWRyYXdcbiAgICAgICAgaWYgKHRoaXMuZ3JpZE9wdGlvbnMuZW5hYmxlUm93U2VsZWN0aW9uIHx8IHRoaXMuZ3JpZE9wdGlvbnMuZW5hYmxlQ2hlY2tib3hTZWxlY3Rvcikge1xuICAgICAgICAgIHRoaXMuZXZlbnRIYW5kbGVyLnN1YnNjcmliZSh0aGlzLl9ncmlkLm9uU2VsZWN0ZWRSb3dzQ2hhbmdlZCwgdGhpcy5yZWRyYXdBbGxWaWV3Q29tcG9uZW50cy5iaW5kKHRoaXMpKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIG9uIHNvcnQsIGFsbCByb3cgZGV0YWlsIGFyZSBjb2xsYXBzZWQgc28gd2UgY2FuIGRpc3Bvc2Ugb2YgYWxsIHRoZSBWaWV3cyBhcyB3ZWxsXG4gICAgICAgIHRoaXMuZXZlbnRIYW5kbGVyLnN1YnNjcmliZSh0aGlzLl9ncmlkLm9uU29ydCwgdGhpcy5kaXNwb3NlQWxsVmlld0NvbXBvbmVudHMuYmluZCh0aGlzKSk7XG5cbiAgICAgICAgLy8gb24gZmlsdGVyIGNoYW5nZWQsIHdlIG5lZWQgdG8gcmUtcmVuZGVyIGFsbCBWaWV3c1xuICAgICAgICB0aGlzLl9zdWJzY3JpcHRpb25zLnB1c2goXG4gICAgICAgICAgdGhpcy5ldmVudFB1YlN1YlNlcnZpY2U/LnN1YnNjcmliZSgnb25GaWx0ZXJDaGFuZ2VkJywgdGhpcy5yZWRyYXdBbGxWaWV3Q29tcG9uZW50cy5iaW5kKHRoaXMpKSxcbiAgICAgICAgICB0aGlzLmV2ZW50UHViU3ViU2VydmljZT8uc3Vic2NyaWJlKFsnb25HcmlkTWVudUNsZWFyQWxsRmlsdGVycycsICdvbkdyaWRNZW51Q2xlYXJBbGxTb3J0aW5nJ10sICgpID0+IHdpbmRvdy5zZXRUaW1lb3V0KCgpID0+IHRoaXMucmVkcmF3QWxsVmlld0NvbXBvbmVudHMoKSkpLFxuICAgICAgICApO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKiBSZWRyYXcgKHJlLXJlbmRlcikgYWxsIHRoZSBleHBhbmRlZCByb3cgZGV0YWlsIFZpZXcgQ29tcG9uZW50cyAqL1xuICByZWRyYXdBbGxWaWV3Q29tcG9uZW50cygpIHtcbiAgICB0aGlzLl92aWV3cy5mb3JFYWNoKChjb21wUmVmKSA9PiB7XG4gICAgICB0aGlzLnJlZHJhd1ZpZXdDb21wb25lbnQoY29tcFJlZik7XG4gICAgfSk7XG4gIH1cblxuICAvKiogUmVuZGVyIGFsbCB0aGUgZXhwYW5kZWQgcm93IGRldGFpbCBWaWV3IENvbXBvbmVudHMgKi9cbiAgcmVuZGVyQWxsVmlld0NvbXBvbmVudHMoKSB7XG4gICAgdGhpcy5fdmlld3MuZm9yRWFjaCgodmlldykgPT4ge1xuICAgICAgaWYgKHZpZXc/LmRhdGFDb250ZXh0KSB7XG4gICAgICAgIHRoaXMucmVuZGVyVmlld01vZGVsKHZpZXcuZGF0YUNvbnRleHQpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgLyoqIFJlZHJhdyB0aGUgbmVjZXNzYXJ5IFZpZXcgQ29tcG9uZW50ICovXG4gIHJlZHJhd1ZpZXdDb21wb25lbnQoY3JlYXRlZFZpZXc6IENyZWF0ZWRWaWV3KSB7XG4gICAgY29uc3QgY29udGFpbmVyRWxlbWVudHMgPSB0aGlzLmdyaWRDb250YWluZXJFbGVtZW50LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoYCR7Uk9XX0RFVEFJTF9DT05UQUlORVJfUFJFRklYfSR7Y3JlYXRlZFZpZXcuaWR9YCk7XG4gICAgaWYgKGNvbnRhaW5lckVsZW1lbnRzPy5sZW5ndGggPj0gMCkge1xuICAgICAgdGhpcy5yZW5kZXJWaWV3TW9kZWwoY3JlYXRlZFZpZXcuZGF0YUNvbnRleHQpO1xuICAgIH1cbiAgfVxuXG4gIC8qKiBSZW5kZXIgKG9yIHJlLXJlbmRlcikgdGhlIFZpZXcgQ29tcG9uZW50IChSb3cgRGV0YWlsKSAqL1xuICByZW5kZXJQcmVsb2FkVmlldygpIHtcbiAgICBjb25zdCBjb250YWluZXJFbGVtZW50cyA9IHRoaXMuZ3JpZENvbnRhaW5lckVsZW1lbnQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZShgJHtQUkVMT0FEX0NPTlRBSU5FUl9QUkVGSVh9YCkgYXMgSFRNTENvbGxlY3Rpb25PZjxIVE1MRWxlbWVudD47XG4gICAgaWYgKHRoaXMuX3ByZWxvYWRDb21wb25lbnQgJiYgY29udGFpbmVyRWxlbWVudHM/Lmxlbmd0aCA+PSAwKSB7XG4gICAgICB0aGlzLmFuZ3VsYXJVdGlsU2VydmljZS5jcmVhdGVBbmd1bGFyQ29tcG9uZW50QXBwZW5kVG9Eb20odGhpcy5fcHJlbG9hZENvbXBvbmVudCwgY29udGFpbmVyRWxlbWVudHNbY29udGFpbmVyRWxlbWVudHMubGVuZ3RoIC0gMV0pO1xuICAgIH1cbiAgfVxuXG4gIC8qKiBSZW5kZXIgKG9yIHJlLXJlbmRlcikgdGhlIFZpZXcgQ29tcG9uZW50IChSb3cgRGV0YWlsKSAqL1xuICByZW5kZXJWaWV3TW9kZWwoaXRlbTogYW55KTogQ3JlYXRlZFZpZXcgfCB1bmRlZmluZWQge1xuICAgIGNvbnN0IGNvbnRhaW5lckVsZW1lbnRzID0gdGhpcy5ncmlkQ29udGFpbmVyRWxlbWVudC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKGAke1JPV19ERVRBSUxfQ09OVEFJTkVSX1BSRUZJWH0ke2l0ZW1bdGhpcy5kYXRhc2V0SWRQcm9wTmFtZV19YCkgYXMgSFRNTENvbGxlY3Rpb25PZjxIVE1MRWxlbWVudD47XG4gICAgaWYgKHRoaXMuX3ZpZXdDb21wb25lbnQgJiYgY29udGFpbmVyRWxlbWVudHM/Lmxlbmd0aCA+IDApIHtcbiAgICAgIGNvbnN0IGNvbXBvbmVudE91dHB1dCA9IHRoaXMuYW5ndWxhclV0aWxTZXJ2aWNlLmNyZWF0ZUFuZ3VsYXJDb21wb25lbnRBcHBlbmRUb0RvbSh0aGlzLl92aWV3Q29tcG9uZW50LCBjb250YWluZXJFbGVtZW50c1tjb250YWluZXJFbGVtZW50cy5sZW5ndGggLSAxXSwge1xuICAgICAgICBtb2RlbDogaXRlbSxcbiAgICAgICAgYWRkb246IHRoaXMsXG4gICAgICAgIGdyaWQ6IHRoaXMuX2dyaWQsXG4gICAgICAgIGRhdGFWaWV3OiB0aGlzLmRhdGFWaWV3LFxuICAgICAgICBwYXJlbnQ6IHRoaXMucm93RGV0YWlsVmlld09wdGlvbnM/LnBhcmVudCxcbiAgICAgIH0pO1xuICAgICAgaWYgKGNvbXBvbmVudE91dHB1dD8uY29tcG9uZW50UmVmKSB7XG4gICAgICAgIGNvbnN0IHZpZXdPYmogPSB0aGlzLl92aWV3cy5maW5kKG9iaiA9PiBvYmouaWQgPT09IGl0ZW1bdGhpcy5kYXRhc2V0SWRQcm9wTmFtZV0pO1xuICAgICAgICBpZiAodmlld09iaikge1xuICAgICAgICAgIHZpZXdPYmouY29tcG9uZW50UmVmID0gY29tcG9uZW50T3V0cHV0LmNvbXBvbmVudFJlZjtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdmlld09iajtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuXG4gIC8vIC0tXG4gIC8vIHByb3RlY3RlZCBmdW5jdGlvbnNcbiAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiAgcHJvdGVjdGVkIGRpc3Bvc2VWaWV3Q29tcG9uZW50KGV4cGFuZGVkVmlldzogQ3JlYXRlZFZpZXcpOiBDcmVhdGVkVmlldyB8IHZvaWQge1xuICAgIGNvbnN0IGNvbXBSZWYgPSBleHBhbmRlZFZpZXc/LmNvbXBvbmVudFJlZjtcbiAgICBpZiAoY29tcFJlZikge1xuICAgICAgdGhpcy5hcHBSZWYuZGV0YWNoVmlldyhjb21wUmVmLmhvc3RWaWV3KTtcbiAgICAgIGlmIChjb21wUmVmPy5kZXN0cm95KSB7XG4gICAgICAgIGNvbXBSZWYuZGVzdHJveSgpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGV4cGFuZGVkVmlldztcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogbm90aWZ5IHRoZSBvbkFzeW5jUmVzcG9uc2Ugd2l0aCB0aGUgXCJhcmdzLml0ZW1cIiAocmVxdWlyZWQgcHJvcGVydHkpXG4gICAqIHRoZSBwbHVnaW4gd2lsbCB0aGVuIHVzZSBpdGVtIHRvIHBvcHVsYXRlIHRoZSByb3cgZGV0YWlsIHBhbmVsIHdpdGggdGhlIFwicG9zdFRlbXBsYXRlXCJcbiAgICogQHBhcmFtIGl0ZW1cbiAgICovXG4gIHByb3RlY3RlZCBub3RpZnlUZW1wbGF0ZShpdGVtOiBhbnkpIHtcbiAgICBpZiAodGhpcy5vbkFzeW5jUmVzcG9uc2UpIHtcbiAgICAgIHRoaXMub25Bc3luY1Jlc3BvbnNlLm5vdGlmeSh7IGl0ZW0sIGl0ZW1EZXRhaWw6IGl0ZW0gfSwgdW5kZWZpbmVkLCB0aGlzKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogT24gUHJvY2Vzc2luZywgd2Ugd2lsbCBub3RpZnkgdGhlIHBsdWdpbiB3aXRoIHRoZSBuZXcgaXRlbSBkZXRhaWwgb25jZSBiYWNrZW5kIHNlcnZlciBjYWxsIGNvbXBsZXRlc1xuICAgKiBAcGFyYW0gaXRlbVxuICAgKi9cbiAgcHJvdGVjdGVkIGFzeW5jIG9uUHJvY2Vzc2luZyhpdGVtOiBhbnkpIHtcbiAgICBpZiAoaXRlbSAmJiB0eXBlb2YgdGhpcy5fdXNlclByb2Nlc3NGbiA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgbGV0IGF3YWl0ZWRJdGVtRGV0YWlsOiBhbnk7XG4gICAgICBjb25zdCB1c2VyUHJvY2Vzc0ZuID0gdGhpcy5fdXNlclByb2Nlc3NGbihpdGVtKTtcblxuICAgICAgLy8gd2FpdCBmb3IgdGhlIFwidXNlclByb2Nlc3NGblwiLCBvbmNlIHJlc29sdmVkIHdlIHdpbGwgc2F2ZSBpdCBpbnRvIHRoZSBcImNvbGxlY3Rpb25cIlxuICAgICAgY29uc3QgcmVzcG9uc2U6IGFueSB8IGFueVtdID0gYXdhaXQgdXNlclByb2Nlc3NGbjtcblxuICAgICAgaWYgKHRoaXMuZGF0YXNldElkUHJvcE5hbWUgaW4gcmVzcG9uc2UpIHtcbiAgICAgICAgYXdhaXRlZEl0ZW1EZXRhaWwgPSByZXNwb25zZTsgLy8gZnJvbSBQcm9taXNlXG4gICAgICB9IGVsc2UgaWYgKHJlc3BvbnNlICYmIHJlc3BvbnNlIGluc3RhbmNlb2YgT2JzZXJ2YWJsZSB8fCByZXNwb25zZSBpbnN0YW5jZW9mIFByb21pc2UpIHtcbiAgICAgICAgYXdhaXRlZEl0ZW1EZXRhaWwgPSBhd2FpdCBjYXN0T2JzZXJ2YWJsZVRvUHJvbWlzZSh0aGlzLnJ4anMgYXMgUnhKc0ZhY2FkZSwgcmVzcG9uc2UpOyAvLyBmcm9tIEFuZ3VsYXItaHR0cC1jbGllbnRcbiAgICAgIH1cblxuICAgICAgaWYgKCFhd2FpdGVkSXRlbURldGFpbCB8fCAhKHRoaXMuZGF0YXNldElkUHJvcE5hbWUgaW4gYXdhaXRlZEl0ZW1EZXRhaWwpKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgW0FuZ3VsYXItU2xpY2tncmlkXSBjb3VsZCBub3QgcHJvY2VzcyB0aGUgUm93IERldGFpbCwgeW91IG11c3QgbWFrZSBzdXJlIHRoYXQgeW91ciBcInByb2Nlc3NcIiBjYWxsYmFja1xuICAgICAgICAgIChhIFByb21pc2Ugb3IgYW4gSHR0cENsaWVudCBjYWxsIHJldHVybmluZyBhbiBPYnNlcnZhYmxlKSByZXR1cm5zIGFuIGl0ZW0gb2JqZWN0IHRoYXQgaGFzIGFuIFwiJHt0aGlzLmRhdGFzZXRJZFByb3BOYW1lfVwiIHByb3BlcnR5YCk7XG4gICAgICB9XG5cbiAgICAgIC8vIG5vdGlmeSB0aGUgcGx1Z2luIHdpdGggdGhlIG5ldyBpdGVtIGRldGFpbHNcbiAgICAgIHRoaXMubm90aWZ5VGVtcGxhdGUoYXdhaXRlZEl0ZW1EZXRhaWwgfHwge30pO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBKdXN0IGJlZm9yZSB0aGUgcm93IGdldCBleHBhbmRlZCBvciBjb2xsYXBzZWQgd2Ugd2lsbCBkbyB0aGUgZm9sbG93aW5nXG4gICAqIEZpcnN0IGRldGVybWluZSBpZiB0aGUgcm93IGlzIGV4cGFuZGluZyBvciBjb2xsYXBzaW5nLFxuICAgKiBpZiBpdCdzIGV4cGFuZGluZyB3ZSB3aWxsIGFkZCBpdCB0byBvdXIgVmlldyBDb21wb25lbnRzIHJlZmVyZW5jZSBhcnJheSBpZiB3ZSBkb24ndCBhbHJlYWR5IGhhdmUgaXRcbiAgICogb3IgaWYgaXQncyBjb2xsYXBzaW5nIHdlIHdpbGwgcmVtb3ZlIGl0IGZyb20gb3VyIFZpZXcgQ29tcG9uZW50cyByZWZlcmVuY2UgYXJyYXlcbiAgICovXG4gIHByb3RlY3RlZCBoYW5kbGVPbkJlZm9yZVJvd0RldGFpbFRvZ2dsZShfZTogU2xpY2tFdmVudERhdGE8T25CZWZvcmVSb3dEZXRhaWxUb2dnbGVBcmdzPiwgYXJnczogeyBncmlkOiBTbGlja0dyaWQ7IGl0ZW06IGFueTsgfSkge1xuICAgIC8vIGV4cGFuZGluZ1xuICAgIGlmIChhcmdzPy5pdGVtPy5fX2NvbGxhcHNlZCkge1xuICAgICAgLy8gZXhwYW5kaW5nIHJvdyBkZXRhaWxcbiAgICAgIGNvbnN0IHZpZXdJbmZvOiBDcmVhdGVkVmlldyA9IHtcbiAgICAgICAgaWQ6IGFyZ3MuaXRlbVt0aGlzLmRhdGFzZXRJZFByb3BOYW1lXSxcbiAgICAgICAgZGF0YUNvbnRleHQ6IGFyZ3MuaXRlbVxuICAgICAgfTtcbiAgICAgIGNvbnN0IGlkUHJvcE5hbWUgPSB0aGlzLmdyaWRPcHRpb25zLmRhdGFzZXRJZFByb3BlcnR5TmFtZSB8fCAnaWQnO1xuICAgICAgYWRkVG9BcnJheVdoZW5Ob3RFeGlzdHModGhpcy5fdmlld3MsIHZpZXdJbmZvLCBpZFByb3BOYW1lKTtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gY29sbGFwc2luZywgc28gZGlzcG9zZSBvZiB0aGUgVmlldy9Db21wb25lbnRcbiAgICAgIGNvbnN0IGZvdW5kVmlld0luZGV4ID0gdGhpcy5fdmlld3MuZmluZEluZGV4KCh2aWV3OiBDcmVhdGVkVmlldykgPT4gdmlldy5pZCA9PT0gYXJncy5pdGVtW3RoaXMuZGF0YXNldElkUHJvcE5hbWVdKTtcbiAgICAgIGlmIChmb3VuZFZpZXdJbmRleCA+PSAwICYmIGZvdW5kVmlld0luZGV4IGluIHRoaXMuX3ZpZXdzKSB7XG4gICAgICAgIGNvbnN0IGNvbXBSZWYgPSB0aGlzLl92aWV3c1tmb3VuZFZpZXdJbmRleF0uY29tcG9uZW50UmVmO1xuICAgICAgICBpZiAoY29tcFJlZikge1xuICAgICAgICAgIHRoaXMuYXBwUmVmLmRldGFjaFZpZXcoY29tcFJlZi5ob3N0Vmlldyk7XG4gICAgICAgICAgY29tcFJlZi5kZXN0cm95KCk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5fdmlld3Muc3BsaWNlKGZvdW5kVmlld0luZGV4LCAxKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvKiogV2hlbiBSb3cgY29tZXMgYmFjayB0byBWaWV3cG9ydCBSYW5nZSwgd2UgbmVlZCB0byByZWRyYXcgdGhlIFZpZXcgKi9cbiAgcHJvdGVjdGVkIGhhbmRsZU9uUm93QmFja1RvVmlld3BvcnRSYW5nZShfZTogU2xpY2tFdmVudERhdGE8T25Sb3dCYWNrVG9WaWV3cG9ydFJhbmdlQXJncz4sIGFyZ3M6IE9uUm93QmFja1RvVmlld3BvcnRSYW5nZUFyZ3MpIHtcbiAgICBpZiAoYXJncz8uaXRlbSkge1xuICAgICAgdGhpcy5yZWRyYXdBbGxWaWV3Q29tcG9uZW50cygpO1xuICAgIH1cbiAgfVxufVxuIl19
|
|
@@ -17,13 +17,13 @@ export class AngularSlickgridModule {
|
|
|
17
17
|
]
|
|
18
18
|
};
|
|
19
19
|
}
|
|
20
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.
|
|
21
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.
|
|
20
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: AngularSlickgridModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
21
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.6", ngImport: i0, type: AngularSlickgridModule, declarations: [AngularSlickgridComponent], imports: [CommonModule,
|
|
22
22
|
TranslateModule], exports: [AngularSlickgridComponent] }); }
|
|
23
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.
|
|
23
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: AngularSlickgridModule, imports: [CommonModule,
|
|
24
24
|
TranslateModule] }); }
|
|
25
25
|
}
|
|
26
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.
|
|
26
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: AngularSlickgridModule, decorators: [{
|
|
27
27
|
type: NgModule,
|
|
28
28
|
args: [{
|
|
29
29
|
imports: [
|
|
@@ -75,10 +75,10 @@ export class AngularUtilService {
|
|
|
75
75
|
}
|
|
76
76
|
return componentOutput;
|
|
77
77
|
}
|
|
78
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.
|
|
79
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.
|
|
78
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: AngularUtilService, deps: [{ token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
79
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: AngularUtilService }); }
|
|
80
80
|
}
|
|
81
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.
|
|
81
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: AngularUtilService, decorators: [{
|
|
82
82
|
type: Injectable
|
|
83
83
|
}], ctorParameters: () => [{ type: i0.ViewContainerRef }] });
|
|
84
84
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5ndWxhclV0aWwuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvbW9kdWxlcy9hbmd1bGFyLXNsaWNrZ3JpZC9zZXJ2aWNlcy9hbmd1bGFyVXRpbC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBZTdELE1BQU0sT0FBTyxrQkFBa0I7SUFFN0IsWUFBb0IsR0FBcUI7UUFBckIsUUFBRyxHQUFILEdBQUcsQ0FBa0I7SUFBSSxDQUFDO0lBRTlDLGlDQUFpQyxDQUFJLFNBQWtCLEVBQUUsYUFBc0IsRUFBRSxJQUFVLEVBQUUsaUJBQXlDO1FBQ3BJLGtEQUFrRDtRQUNsRCxNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLGVBQWUsQ0FBQyxTQUFTLEVBQUUsaUJBQWlCLENBQUMsQ0FBQztRQUU1RSw4REFBOEQ7UUFDOUQsSUFBSSxZQUFZLEVBQUUsUUFBUSxJQUFJLElBQUksRUFBRSxDQUFDO1lBQ25DLE1BQU0sQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLFFBQWUsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUNwRCxDQUFDO1FBRUQsaUNBQWlDO1FBQ2pDLElBQUksT0FBTyxHQUF1QixJQUFJLENBQUM7UUFDdkMsTUFBTSxPQUFPLEdBQUksWUFBWSxDQUFDLFFBQWlDLENBQUM7UUFFaEUsSUFBSSxPQUFPLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLElBQUksT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1lBQ3hFLE9BQU8sR0FBRyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBZ0IsQ0FBQztZQUU5QyxxSEFBcUg7WUFDckgsSUFBSSxhQUFhLElBQUksT0FBTyxFQUFFLENBQUM7Z0JBQzdCLGFBQWEsQ0FBQyxlQUFlLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsQ0FBQztZQUNyRSxDQUFDO1FBQ0gsQ0FBQztRQUVELE9BQU8sRUFBRSxZQUFZLEVBQUUsVUFBVSxFQUFFLE9BQXNCLEVBQUUsQ0FBQztJQUM5RCxDQUFDO0lBRUQ7Ozs7Ozs7T0FPRztJQUNILHNCQUFzQixDQUFJLFNBQWtCLEVBQUUsYUFBdUIsRUFBRSxJQUFVLEVBQUUsaUJBQXlDO1FBQzFILGtEQUFrRDtRQUNsRCxNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLGVBQWUsQ0FBQyxTQUFTLEVBQUUsaUJBQWlCLENBQUMsQ0FBQztRQUU1RSw4REFBOEQ7UUFDOUQsSUFBSSxZQUFZLEVBQUUsUUFBUSxJQUFJLElBQUksRUFBRSxDQUFDO1lBQ25DLE1BQU0sQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLFFBQWUsRUFBRSxJQUFJLENBQUMsQ0FBQztZQUVsRCx3RkFBd0Y7WUFDeEYsK0dBQStHO1lBQy9HLGtHQUFrRztZQUNsRyxZQUFZLENBQUMsaUJBQWlCLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDakQsQ0FBQztRQUVELGlDQUFpQztRQUNqQyxJQUFJLE9BQU8sR0FBdUIsSUFBSSxDQUFDO1FBQ3ZDLE1BQU0sT0FBTyxHQUFJLFlBQVksQ0FBQyxRQUFpQyxDQUFDO1FBRWhFLDRHQUE0RztRQUM1RyxJQUFJLE9BQU8sSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsSUFBSSxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFDeEUsT0FBTyxHQUFHLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFnQixDQUFDO1lBRTlDLHVIQUF1SDtZQUN2SCxJQUFJLGFBQWEsSUFBSSxPQUFPLEVBQUUsQ0FBQztnQkFDN0IsYUFBYSxDQUFDLFNBQVMsR0FBRyxPQUFPLENBQUMsU0FBUyxDQUFDO1lBQzlDLENBQUM7UUFDSCxDQUFDO1FBRUQsT0FBTyxFQUFFLFlBQVksRUFBRSxVQUFVLEVBQUUsT0FBc0IsRUFBRSxDQUFDO0lBQzlELENBQUM7SUFFRDs7Ozs7Ozs7T0FRRztJQUNILGlDQUFpQyxDQUFJLFNBQWtCLEVBQUUsYUFBdUIsRUFBRSxJQUFVLEVBQUUsaUJBQXlDO1FBQ3JJLE1BQU0sZUFBZSxHQUFHLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxTQUFTLEVBQUUsYUFBYSxFQUFFLElBQUksRUFBRSxpQkFBaUIsQ0FBQyxDQUFDO1FBRXZHLG1EQUFtRDtRQUNuRCxJQUFJLGFBQWEsRUFBRSxlQUFlLEVBQUUsQ0FBQztZQUNuQyxhQUFhLENBQUMsZUFBZSxDQUFDLGVBQWUsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUM1RCxDQUFDO2FBQU0sQ0FBQztZQUNOLFFBQVEsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLGVBQWUsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLGdFQUFnRTtRQUN6SCxDQUFDO1FBRUQsT0FBTyxlQUFlLENBQUM7SUFDekIsQ0FBQzs4R0F4RlUsa0JBQWtCO2tIQUFsQixrQkFBa0I7OzJGQUFsQixrQkFBa0I7a0JBRDlCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBWaWV3Q29udGFpbmVyUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgdHlwZSB7IEVtYmVkZGVkVmlld1JlZiwgRW52aXJvbm1lbnRJbmplY3RvciwgSW5qZWN0b3IsIE5nTW9kdWxlUmVmLCBUeXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB0eXBlIHsgQW5ndWxhckNvbXBvbmVudE91dHB1dCB9IGZyb20gJy4uL21vZGVscy9hbmd1bGFyQ29tcG9uZW50T3V0cHV0LmludGVyZmFjZSc7XG5cblxuaW50ZXJmYWNlIENyZWF0ZUNvbXBvbmVudE9wdGlvbiB7XG4gIGluZGV4PzogbnVtYmVyO1xuICBpbmplY3Rvcj86IEluamVjdG9yO1xuICBuZ01vZHVsZVJlZj86IE5nTW9kdWxlUmVmPHVua25vd24+O1xuICBlbnZpcm9ubWVudEluamVjdG9yPzogRW52aXJvbm1lbnRJbmplY3RvciB8IE5nTW9kdWxlUmVmPHVua25vd24+O1xuICBwcm9qZWN0YWJsZU5vZGVzPzogTm9kZVtdW107XG59XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBBbmd1bGFyVXRpbFNlcnZpY2Uge1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgdmNyOiBWaWV3Q29udGFpbmVyUmVmKSB7IH1cblxuICBjcmVhdGVJbnRlcmFjdGl2ZUFuZ3VsYXJDb21wb25lbnQ8Qz4oY29tcG9uZW50OiBUeXBlPEM+LCB0YXJnZXRFbGVtZW50OiBFbGVtZW50LCBkYXRhPzogYW55LCBjcmVhdGVDb21wT3B0aW9ucz86IENyZWF0ZUNvbXBvbmVudE9wdGlvbik6IEFuZ3VsYXJDb21wb25lbnRPdXRwdXQge1xuICAgIC8vIENyZWF0ZSBhIGNvbXBvbmVudCByZWZlcmVuY2UgZnJvbSB0aGUgY29tcG9uZW50XG4gICAgY29uc3QgY29tcG9uZW50UmVmID0gdGhpcy52Y3IuY3JlYXRlQ29tcG9uZW50KGNvbXBvbmVudCwgY3JlYXRlQ29tcE9wdGlvbnMpO1xuXG4gICAgLy8gdXNlciBjb3VsZCBwcm92aWRlIGRhdGEgdG8gYXNzaWduIHRvIHRoZSBjb21wb25lbnQgaW5zdGFuY2VcbiAgICBpZiAoY29tcG9uZW50UmVmPy5pbnN0YW5jZSAmJiBkYXRhKSB7XG4gICAgICBPYmplY3QuYXNzaWduKGNvbXBvbmVudFJlZi5pbnN0YW5jZSBhcyBhbnksIGRhdGEpO1xuICAgIH1cblxuICAgIC8vIEdldCBET00gZWxlbWVudCBmcm9tIGNvbXBvbmVudFxuICAgIGxldCBkb21FbGVtOiBIVE1MRWxlbWVudCB8IG51bGwgPSBudWxsO1xuICAgIGNvbnN0IHZpZXdSZWYgPSAoY29tcG9uZW50UmVmLmhvc3RWaWV3IGFzIEVtYmVkZGVkVmlld1JlZjxhbnk+KTtcblxuICAgIGlmICh2aWV3UmVmICYmIEFycmF5LmlzQXJyYXkodmlld1JlZi5yb290Tm9kZXMpICYmIHZpZXdSZWYucm9vdE5vZGVzWzBdKSB7XG4gICAgICBkb21FbGVtID0gdmlld1JlZi5yb290Tm9kZXNbMF0gYXMgSFRNTEVsZW1lbnQ7XG5cbiAgICAgIC8vIHdoZW4gdXNlciBwcm92aWRlcyB0aGUgRE9NIGVsZW1lbnQgdGFyZ2V0LCB3ZSB3aWxsIG1vdmUgdGhlIGR5bmFtaWMgY29tcG9uZW50IGludG8gdGhhdCB0YXJnZXQgKGFrYSBwb3J0YWwtaW5nIGl0KVxuICAgICAgaWYgKHRhcmdldEVsZW1lbnQgJiYgZG9tRWxlbSkge1xuICAgICAgICB0YXJnZXRFbGVtZW50LnJlcGxhY2VDaGlsZHJlbihjb21wb25lbnRSZWYubG9jYXRpb24ubmF0aXZlRWxlbWVudCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHsgY29tcG9uZW50UmVmLCBkb21FbGVtZW50OiBkb21FbGVtIGFzIEhUTUxFbGVtZW50IH07XG4gIH1cblxuICAvKipcbiAgICogRHluYW1pY2FsbHkgY3JlYXRlIGFuIEFuZ3VsYXIgY29tcG9uZW50LCB1c2VyIGNvdWxkIGFsc28gcHJvdmlkZSBvcHRpb25hbCBhcmd1bWVudHMgZm9yIHRhcmdldCwgZGF0YSAmIGNyZWF0ZUNvbXBvbmVudCBvcHRpb25zXG4gICAqIEBwYXJhbSB7Q29tcG9uZW50fSBjb21wb25lbnRcbiAgICogQHBhcmFtIHtIVE1MRWxlbWVudH0gW3RhcmdldEVsZW1lbnRdXG4gICAqIEBwYXJhbSB7Kn0gW2RhdGFdXG4gICAqIEBwYXJhbSB7Q3JlYXRlQ29tcG9uZW50T3B0aW9ufSBbY3JlYXRlQ29tcE9wdGlvbnNdXG4gICAqIEByZXR1cm5zXG4gICAqL1xuICBjcmVhdGVBbmd1bGFyQ29tcG9uZW50PEM+KGNvbXBvbmVudDogVHlwZTxDPiwgdGFyZ2V0RWxlbWVudD86IEVsZW1lbnQsIGRhdGE/OiBhbnksIGNyZWF0ZUNvbXBPcHRpb25zPzogQ3JlYXRlQ29tcG9uZW50T3B0aW9uKTogQW5ndWxhckNvbXBvbmVudE91dHB1dCB7XG4gICAgLy8gQ3JlYXRlIGEgY29tcG9uZW50IHJlZmVyZW5jZSBmcm9tIHRoZSBjb21wb25lbnRcbiAgICBjb25zdCBjb21wb25lbnRSZWYgPSB0aGlzLnZjci5jcmVhdGVDb21wb25lbnQoY29tcG9uZW50LCBjcmVhdGVDb21wT3B0aW9ucyk7XG5cbiAgICAvLyB1c2VyIGNvdWxkIHByb3ZpZGUgZGF0YSB0byBhc3NpZ24gdG8gdGhlIGNvbXBvbmVudCBpbnN0YW5jZVxuICAgIGlmIChjb21wb25lbnRSZWY/Lmluc3RhbmNlICYmIGRhdGEpIHtcbiAgICAgIE9iamVjdC5hc3NpZ24oY29tcG9uZW50UmVmLmluc3RhbmNlIGFzIGFueSwgZGF0YSk7XG5cbiAgICAgIC8vIE5PVEU6IGRldGVjdENoYW5nZXMoKSBNVVNUIGJlIGRvbmUgQkVGT1JFIHJldHVybmluZyB0aGUgRE9NIGVsZW1lbnQgaW4gdGhlIG5leHQgc3RlcCxcbiAgICAgIC8vIGJlY2F1c2UgaWYgd2UgZG8gaXQgb25seSBhZnRlciByZXR1cm5pbmcgdGhlIHJvb3ROb2RlcyAoZG9tRWxlbWVudCkgdGhlbiBpdCB3b24ndCBoYXZlIHRoZSBpbnN0YW5jZSBkYXRhIHlldFxuICAgICAgLy8gYW5kIHdlIHdvdWxkIGhhdmUgdG8gd2FpdCBhbiBleHRyYSBjeWNsZSB0byBzZWUgdGhlIHJlc3VsdCwgdGhpcyBiYXNpY2FsbHkgaGVscHMgd2l0aCBFeGFtcGxlMjJcbiAgICAgIGNvbXBvbmVudFJlZi5jaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfVxuXG4gICAgLy8gR2V0IERPTSBlbGVtZW50IGZyb20gY29tcG9uZW50XG4gICAgbGV0IGRvbUVsZW06IEhUTUxFbGVtZW50IHwgbnVsbCA9IG51bGw7XG4gICAgY29uc3Qgdmlld1JlZiA9IChjb21wb25lbnRSZWYuaG9zdFZpZXcgYXMgRW1iZWRkZWRWaWV3UmVmPGFueT4pO1xuXG4gICAgLy8gZ2V0IERPTSBlbGVtZW50IGZyb20gdGhlIG5ldyBkeW5hbWljIENvbXBvbmVudCwgbWFrZSBzdXJlIHRoaXMgaXMgcmVhZCBhZnRlciBhbnkgZGF0YSBhbmQgZGV0ZWN0Q2hhbmdlcygpXG4gICAgaWYgKHZpZXdSZWYgJiYgQXJyYXkuaXNBcnJheSh2aWV3UmVmLnJvb3ROb2RlcykgJiYgdmlld1JlZi5yb290Tm9kZXNbMF0pIHtcbiAgICAgIGRvbUVsZW0gPSB2aWV3UmVmLnJvb3ROb2Rlc1swXSBhcyBIVE1MRWxlbWVudDtcblxuICAgICAgLy8gd2hlbiB1c2VyIHByb3ZpZGVzIHRoZSBET00gZWxlbWVudCB0YXJnZXQsIHdlIHdpbGwgcmVhZCB0aGUgbmV3IENvbXBvbmVudCBodG1sIGFuZCB1c2UgaXQgdG8gcmVwbGFjZSB0aGUgdGFyZ2V0IGh0bWxcbiAgICAgIGlmICh0YXJnZXRFbGVtZW50ICYmIGRvbUVsZW0pIHtcbiAgICAgICAgdGFyZ2V0RWxlbWVudC5pbm5lckhUTUwgPSBkb21FbGVtLmlubmVySFRNTDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4geyBjb21wb25lbnRSZWYsIGRvbUVsZW1lbnQ6IGRvbUVsZW0gYXMgSFRNTEVsZW1lbnQgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBEeW5hbWljYWxseSBjcmVhdGUgYW4gQW5ndWxhciBjb21wb25lbnQgYW5kIGFwcGVuZCBpdCB0byB0aGUgRE9NIHVubGVzcyBhIHRhcmdldCBlbGVtZW50IGlzIHByb3ZpZGVkLFxuICAgKiB1c2VyIGNvdWxkIGFsc28gcHJvdmlkZSBvdGhlciBvcHRpb25hbCBhcmd1bWVudHMgZm9yIGRhdGEgJiBjcmVhdGVDb21wb25lbnQgb3B0aW9ucy5cbiAgICogQHBhcmFtIHtDb21wb25lbnR9IGNvbXBvbmVudFxuICAgKiBAcGFyYW0ge0hUTUxFbGVtZW50fSBbdGFyZ2V0RWxlbWVudF1cbiAgICogQHBhcmFtIHsqfSBbZGF0YV1cbiAgICogQHBhcmFtIHtDcmVhdGVDb21wb25lbnRPcHRpb259IFtjcmVhdGVDb21wT3B0aW9uc11cbiAgICogQHJldHVybnNcbiAgICovXG4gIGNyZWF0ZUFuZ3VsYXJDb21wb25lbnRBcHBlbmRUb0RvbTxDPihjb21wb25lbnQ6IFR5cGU8Qz4sIHRhcmdldEVsZW1lbnQ/OiBFbGVtZW50LCBkYXRhPzogYW55LCBjcmVhdGVDb21wT3B0aW9ucz86IENyZWF0ZUNvbXBvbmVudE9wdGlvbik6IEFuZ3VsYXJDb21wb25lbnRPdXRwdXQge1xuICAgIGNvbnN0IGNvbXBvbmVudE91dHB1dCA9IHRoaXMuY3JlYXRlQW5ndWxhckNvbXBvbmVudChjb21wb25lbnQsIHRhcmdldEVsZW1lbnQsIGRhdGEsIGNyZWF0ZUNvbXBPcHRpb25zKTtcblxuICAgIC8vIEFwcGVuZCBET00gZWxlbWVudCB0byB0aGUgSFRNTCBlbGVtZW50IHNwZWNpZmllZFxuICAgIGlmICh0YXJnZXRFbGVtZW50Py5yZXBsYWNlQ2hpbGRyZW4pIHtcbiAgICAgIHRhcmdldEVsZW1lbnQucmVwbGFjZUNoaWxkcmVuKGNvbXBvbmVudE91dHB1dC5kb21FbGVtZW50KTtcbiAgICB9IGVsc2Uge1xuICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChjb21wb25lbnRPdXRwdXQuZG9tRWxlbWVudCk7IC8vIHdoZW4gbm8gdGFyZ2V0IHByb3ZpZGVkLCB3ZSdsbCBzaW1wbHkgYWRkIGl0IHRvIHRoZSBIVE1MIEJvZHlcbiAgICB9XG5cbiAgICByZXR1cm4gY29tcG9uZW50T3V0cHV0O1xuICB9XG59XG4iXX0=
|
|
@@ -20,10 +20,10 @@ export class ContainerService {
|
|
|
20
20
|
this.dependencies.push({ key, instance });
|
|
21
21
|
}
|
|
22
22
|
}
|
|
23
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.
|
|
24
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.
|
|
23
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: ContainerService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
24
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: ContainerService }); }
|
|
25
25
|
}
|
|
26
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.
|
|
26
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: ContainerService, decorators: [{
|
|
27
27
|
type: Injectable
|
|
28
28
|
}] });
|
|
29
29
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGFpbmVyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL21vZHVsZXMvYW5ndWxhci1zbGlja2dyaWQvc2VydmljZXMvY29udGFpbmVyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFJM0MsTUFBTSxPQUFPLGdCQUFnQjtJQUQ3QjtRQUVFLGlCQUFZLEdBQXdCLEVBQUUsQ0FBQztLQW9CeEM7SUFsQkMsR0FBRyxDQUFVLEdBQVc7UUFDdEIsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsR0FBRyxLQUFLLEdBQUcsQ0FBQyxDQUFDO1FBQ2xFLElBQUksVUFBVSxFQUFFLFFBQVEsRUFBRSxDQUFDO1lBQ3pCLE9BQU8sVUFBVSxDQUFDLFFBQVEsQ0FBQztRQUM3QixDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQsT0FBTztRQUNMLElBQUksQ0FBQyxZQUFZLEdBQUcsRUFBRSxDQUFDO0lBQ3pCLENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxHQUFXLEVBQUUsUUFBYTtRQUN6QyxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEtBQUssR0FBRyxDQUFDLENBQUM7UUFDbEUsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQ2hCLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLEVBQUUsR0FBRyxFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUM7UUFDNUMsQ0FBQztJQUNILENBQUM7OEdBcEJVLGdCQUFnQjtrSEFBaEIsZ0JBQWdCOzsyRkFBaEIsZ0JBQWdCO2tCQUQ1QixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgdHlwZSBDb250YWluZXJJbnN0YW5jZSwgQ29udGFpbmVyU2VydmljZSBhcyBVbml2ZXJzYWxDb250YWluZXJTZXJ2aWNlIH0gZnJvbSAnQHNsaWNrZ3JpZC11bml2ZXJzYWwvY29tbW9uJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIENvbnRhaW5lclNlcnZpY2UgaW1wbGVtZW50cyBVbml2ZXJzYWxDb250YWluZXJTZXJ2aWNlIHtcbiAgZGVwZW5kZW5jaWVzOiBDb250YWluZXJJbnN0YW5jZVtdID0gW107XG5cbiAgZ2V0PFQgPSBhbnk+KGtleTogc3RyaW5nKTogVCB8IG51bGwge1xuICAgIGNvbnN0IGRlcGVuZGVuY3kgPSB0aGlzLmRlcGVuZGVuY2llcy5maW5kKGRlcCA9PiBkZXAua2V5ID09PSBrZXkpO1xuICAgIGlmIChkZXBlbmRlbmN5Py5pbnN0YW5jZSkge1xuICAgICAgcmV0dXJuIGRlcGVuZGVuY3kuaW5zdGFuY2U7XG4gICAgfVxuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgZGlzcG9zZSgpIHtcbiAgICB0aGlzLmRlcGVuZGVuY2llcyA9IFtdO1xuICB9XG5cbiAgcmVnaXN0ZXJJbnN0YW5jZShrZXk6IHN0cmluZywgaW5zdGFuY2U6IGFueSkge1xuICAgIGNvbnN0IGRlcGVuZGVuY3kgPSB0aGlzLmRlcGVuZGVuY2llcy5zb21lKGRlcCA9PiBkZXAua2V5ID09PSBrZXkpO1xuICAgIGlmICghZGVwZW5kZW5jeSkge1xuICAgICAgdGhpcy5kZXBlbmRlbmNpZXMucHVzaCh7IGtleSwgaW5zdGFuY2UgfSk7XG4gICAgfVxuICB9XG59XG4iXX0=
|
|
@@ -33,10 +33,10 @@ export class TranslaterService {
|
|
|
33
33
|
translate(translationKey) {
|
|
34
34
|
return this.translateService?.instant?.(translationKey || ' ');
|
|
35
35
|
}
|
|
36
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.
|
|
37
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.
|
|
36
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: TranslaterService, deps: [{ token: i1.TranslateService, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
37
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: TranslaterService }); }
|
|
38
38
|
}
|
|
39
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.
|
|
39
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: TranslaterService, decorators: [{
|
|
40
40
|
type: Injectable
|
|
41
41
|
}], ctorParameters: () => [{ type: i1.TranslateService, decorators: [{
|
|
42
42
|
type: Optional
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { unsubscribeAll, SlickRowSelectionModel, castObservableToPromise, addToArrayWhenNotExists, Filters, OperatorType, EventNamingStyle, FileType, DelimiterType, SlickEventHandler, SlickgridConfig as SlickgridConfig$1, BackendUtilityService, GridEventService, SharedService, CollectionService, ExtensionUtility, FilterFactory, FilterService, ResizerService, SortService, TreeDataService, PaginationService, ExtensionService, GridStateService, GridService, GroupingAndColspanService, emptyElement, SlickGroupItemMetadataProvider, SlickDataView, autoAddEditorFormatterToColumnsWithEditor, SlickGrid, GridStateType, ExtensionName } from '@slickgrid-universal/common';
|
|
1
|
+
import { unsubscribeAll, SlickRowSelectionModel, castObservableToPromise, addToArrayWhenNotExists, Filters, OperatorType, EventNamingStyle, FileType, DelimiterType, SlickEventHandler, SlickgridConfig as SlickgridConfig$1, BackendUtilityService, GridEventService, SharedService, CollectionService, ExtensionUtility, FilterFactory, FilterService, ResizerService, SortService, TreeDataService, PaginationService, ExtensionService, GridStateService, GridService, GroupingAndColspanService, emptyElement, SlickGroupItemMetadataProvider, SlickDataView, autoAddEditorFormatterToColumnsWithEditor, SlickGrid, GridStateType, ExtensionName, isColumnDateType } from '@slickgrid-universal/common';
|
|
2
2
|
export * from '@slickgrid-universal/common';
|
|
3
3
|
import * as i0 from '@angular/core';
|
|
4
4
|
import { Injectable, Optional, EventEmitter, Component, Inject, Input, Output, ContentChild, NgModule } from '@angular/core';
|
|
@@ -91,10 +91,10 @@ class AngularUtilService {
|
|
|
91
91
|
}
|
|
92
92
|
return componentOutput;
|
|
93
93
|
}
|
|
94
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.
|
|
95
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.
|
|
94
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: AngularUtilService, deps: [{ token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
95
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: AngularUtilService }); }
|
|
96
96
|
}
|
|
97
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.
|
|
97
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: AngularUtilService, decorators: [{
|
|
98
98
|
type: Injectable
|
|
99
99
|
}], ctorParameters: () => [{ type: i0.ViewContainerRef }] });
|
|
100
100
|
|
|
@@ -118,10 +118,10 @@ class ContainerService {
|
|
|
118
118
|
this.dependencies.push({ key, instance });
|
|
119
119
|
}
|
|
120
120
|
}
|
|
121
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.
|
|
122
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.
|
|
121
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: ContainerService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
122
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: ContainerService }); }
|
|
123
123
|
}
|
|
124
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.
|
|
124
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: ContainerService, decorators: [{
|
|
125
125
|
type: Injectable
|
|
126
126
|
}] });
|
|
127
127
|
|
|
@@ -156,10 +156,10 @@ class TranslaterService {
|
|
|
156
156
|
translate(translationKey) {
|
|
157
157
|
return this.translateService?.instant?.(translationKey || ' ');
|
|
158
158
|
}
|
|
159
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.
|
|
160
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.
|
|
159
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: TranslaterService, deps: [{ token: i1.TranslateService, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
160
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: TranslaterService }); }
|
|
161
161
|
}
|
|
162
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.
|
|
162
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: TranslaterService, decorators: [{
|
|
163
163
|
type: Injectable
|
|
164
164
|
}], ctorParameters: () => [{ type: i1.TranslateService, decorators: [{
|
|
165
165
|
type: Optional
|
|
@@ -329,8 +329,8 @@ class SlickRowDetailView extends SlickRowDetailView$1 {
|
|
|
329
329
|
}
|
|
330
330
|
// --
|
|
331
331
|
// hook some events needed by the Plugin itself
|
|
332
|
-
//
|
|
333
|
-
this.eventHandler.subscribe(this._grid.
|
|
332
|
+
// redraw anytime the grid is re-rendered
|
|
333
|
+
this.eventHandler.subscribe(this._grid.onRendered, this.redrawAllViewComponents.bind(this));
|
|
334
334
|
// on row selection changed, we also need to redraw
|
|
335
335
|
if (this.gridOptions.enableRowSelection || this.gridOptions.enableCheckboxSelector) {
|
|
336
336
|
this.eventHandler.subscribe(this._grid.onSelectedRowsChanged, this.redrawAllViewComponents.bind(this));
|
|
@@ -338,7 +338,7 @@ class SlickRowDetailView extends SlickRowDetailView$1 {
|
|
|
338
338
|
// on sort, all row detail are collapsed so we can dispose of all the Views as well
|
|
339
339
|
this.eventHandler.subscribe(this._grid.onSort, this.disposeAllViewComponents.bind(this));
|
|
340
340
|
// on filter changed, we need to re-render all Views
|
|
341
|
-
this._subscriptions.push(this.eventPubSubService?.subscribe('onFilterChanged', this.redrawAllViewComponents.bind(this)), this.eventPubSubService?.subscribe('onGridMenuClearAllFilters',
|
|
341
|
+
this._subscriptions.push(this.eventPubSubService?.subscribe('onFilterChanged', this.redrawAllViewComponents.bind(this)), this.eventPubSubService?.subscribe(['onGridMenuClearAllFilters', 'onGridMenuClearAllSorting'], () => window.setTimeout(() => this.redrawAllViewComponents())));
|
|
342
342
|
}
|
|
343
343
|
}
|
|
344
344
|
return this;
|
|
@@ -840,6 +840,7 @@ class Constants {
|
|
|
840
840
|
static { this.VALIDATION_EDITOR_TEXT_MIN_LENGTH_INCLUSIVE = 'Please make sure your text is at least {{minLength}} character(s)'; }
|
|
841
841
|
}
|
|
842
842
|
|
|
843
|
+
const WARN_NO_PREPARSE_DATE_SIZE = 5000; // data size to warn user when pre-parse isn't enabled
|
|
843
844
|
class AngularSlickgridComponent {
|
|
844
845
|
get paginationOptions() {
|
|
845
846
|
return this._paginationOptions;
|
|
@@ -887,6 +888,7 @@ class AngularSlickgridComponent {
|
|
|
887
888
|
this.slickGrid.autosizeColumns();
|
|
888
889
|
this._isAutosizeColsCalled = true;
|
|
889
890
|
}
|
|
891
|
+
this.suggestDateParsingWhenHelpful();
|
|
890
892
|
}
|
|
891
893
|
get datasetHierarchical() {
|
|
892
894
|
return this.sharedService.hierarchicalDataset;
|
|
@@ -980,7 +982,7 @@ class AngularSlickgridComponent {
|
|
|
980
982
|
this.filterFactory = new FilterFactory(slickgridConfig, this.translaterService, this.collectionService);
|
|
981
983
|
this.filterService = externalServices?.filterService ?? new FilterService(this.filterFactory, this._eventPubSubService, this.sharedService, this.backendUtilityService);
|
|
982
984
|
this.resizerService = externalServices?.resizerService ?? new ResizerService(this._eventPubSubService);
|
|
983
|
-
this.sortService = externalServices?.sortService ?? new SortService(this.sharedService, this._eventPubSubService, this.backendUtilityService);
|
|
985
|
+
this.sortService = externalServices?.sortService ?? new SortService(this.collectionService, this.sharedService, this._eventPubSubService, this.backendUtilityService);
|
|
984
986
|
this.treeDataService = externalServices?.treeDataService ?? new TreeDataService(this._eventPubSubService, this.sharedService, this.sortService);
|
|
985
987
|
this.paginationService = externalServices?.paginationService ?? new PaginationService(this._eventPubSubService, this.sharedService, this.backendUtilityService);
|
|
986
988
|
this.extensionService = externalServices?.extensionService ?? new ExtensionService(this.extensionUtility, this.filterService, this._eventPubSubService, this.sharedService, this.sortService, this.treeDataService, this.translaterService, () => this.gridService);
|
|
@@ -1033,6 +1035,7 @@ class AngularSlickgridComponent {
|
|
|
1033
1035
|
if (this.gridOptions.darkMode) {
|
|
1034
1036
|
this.setDarkMode(true);
|
|
1035
1037
|
}
|
|
1038
|
+
this.suggestDateParsingWhenHelpful();
|
|
1036
1039
|
}
|
|
1037
1040
|
ngOnDestroy() {
|
|
1038
1041
|
this._eventPubSubService.publish('onBeforeGridDestroy', this.slickGrid);
|
|
@@ -1520,6 +1523,7 @@ class AngularSlickgridComponent {
|
|
|
1520
1523
|
this.handleOnItemCountChanged(dataView.getFilteredItemCount() || 0, dataView.getItemCount() || 0);
|
|
1521
1524
|
});
|
|
1522
1525
|
this._eventHandler.subscribe(dataView.onSetItemsCalled, (_e, args) => {
|
|
1526
|
+
this.sharedService.isItemsDateParsed = false;
|
|
1523
1527
|
this.handleOnItemCountChanged(dataView.getFilteredItemCount() || 0, args.itemCount);
|
|
1524
1528
|
// when user has resize by content enabled, we'll force a full width calculation since we change our entire dataset
|
|
1525
1529
|
if (args.itemCount > 0 && (this.gridOptions.autosizeColumnsByCellContentOnFirstLoad || this.gridOptions.enableAutoResizeColumnsByCellContent)) {
|
|
@@ -2004,6 +2008,12 @@ class AngularSlickgridComponent {
|
|
|
2004
2008
|
return { ...column, editorClass: column.editor?.model };
|
|
2005
2009
|
});
|
|
2006
2010
|
}
|
|
2011
|
+
suggestDateParsingWhenHelpful() {
|
|
2012
|
+
if (this.dataView?.getItemCount() > WARN_NO_PREPARSE_DATE_SIZE && !this.gridOptions.preParseDateColumns && this.slickGrid.getColumns().some(c => isColumnDateType(c.type))) {
|
|
2013
|
+
console.warn('[Slickgrid-Universal] For getting better perf, we suggest you enable the `preParseDateColumns` grid option, ' +
|
|
2014
|
+
'for more info visit:: https://ghiscoding.gitbook.io/slickgrid-universal/column-functionalities/sorting#pre-parse-date-columns-for-better-perf');
|
|
2015
|
+
}
|
|
2016
|
+
}
|
|
2007
2017
|
/**
|
|
2008
2018
|
* When the Editor(s) has a "editor.collection" property, we'll load the async collection.
|
|
2009
2019
|
* Since this is called after the async call resolves, the pointer will not be the same as the "column" argument passed.
|
|
@@ -2021,14 +2031,14 @@ class AngularSlickgridComponent {
|
|
|
2021
2031
|
}
|
|
2022
2032
|
}
|
|
2023
2033
|
}
|
|
2024
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.
|
|
2025
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.
|
|
2034
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: AngularSlickgridComponent, deps: [{ token: AngularUtilService }, { token: i0.ApplicationRef }, { token: i0.ChangeDetectorRef }, { token: ContainerService }, { token: i0.ElementRef }, { token: i1.TranslateService, optional: true }, { token: TranslaterService, optional: true }, { token: 'config' }, { token: 'externalService' }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
2035
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.6", type: AngularSlickgridComponent, selector: "angular-slickgrid", inputs: { customDataView: "customDataView", gridId: "gridId", gridOptions: "gridOptions", paginationOptions: "paginationOptions", columnDefinitions: "columnDefinitions", dataset: "dataset", datasetHierarchical: "datasetHierarchical" }, outputs: { columnDefinitionsChange: "columnDefinitionsChange" }, providers: [
|
|
2026
2036
|
// make everything transient (non-singleton)
|
|
2027
2037
|
AngularUtilService,
|
|
2028
2038
|
TranslaterService,
|
|
2029
2039
|
], queries: [{ propertyName: "slickgridHeader", first: true, predicate: ["slickgridHeader"], descendants: true, static: true }, { propertyName: "slickgridFooter", first: true, predicate: ["slickgridFooter"], descendants: true, static: true }], ngImport: i0, template: "<div id=\"slickGridContainer-{{gridId}}\" class=\"gridPane\">\n <ng-container *ngTemplateOutlet=\"slickgridHeader\"></ng-container>\n <div attr.id='{{gridId}}' class=\"slickgrid-container\">\n </div>\n <ng-container *ngTemplateOutlet=\"slickgridFooter\"></ng-container>\n</div>", dependencies: [{ kind: "directive", type: i5.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], preserveWhitespaces: true }); }
|
|
2030
2040
|
}
|
|
2031
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.
|
|
2041
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: AngularSlickgridComponent, decorators: [{
|
|
2032
2042
|
type: Component,
|
|
2033
2043
|
args: [{ selector: 'angular-slickgrid', providers: [
|
|
2034
2044
|
// make everything transient (non-singleton)
|
|
@@ -2081,13 +2091,13 @@ class AngularSlickgridModule {
|
|
|
2081
2091
|
]
|
|
2082
2092
|
};
|
|
2083
2093
|
}
|
|
2084
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.
|
|
2085
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.
|
|
2094
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: AngularSlickgridModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
2095
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.6", ngImport: i0, type: AngularSlickgridModule, declarations: [AngularSlickgridComponent], imports: [CommonModule,
|
|
2086
2096
|
TranslateModule], exports: [AngularSlickgridComponent] }); }
|
|
2087
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.
|
|
2097
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: AngularSlickgridModule, imports: [CommonModule,
|
|
2088
2098
|
TranslateModule] }); }
|
|
2089
2099
|
}
|
|
2090
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.
|
|
2100
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: AngularSlickgridModule, decorators: [{
|
|
2091
2101
|
type: NgModule,
|
|
2092
2102
|
args: [{
|
|
2093
2103
|
imports: [
|