@skyux/ag-grid 8.8.0 → 8.8.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/documentation.json +423 -423
- package/esm2020/lib/modules/ag-grid/ag-grid.service.mjs +5 -1
- package/esm2020/lib/modules/ag-grid/cell-editors/cell-editor-autocomplete/cell-editor-autocomplete.component.mjs +25 -6
- package/esm2020/lib/modules/ag-grid/cell-editors/cell-editor-datepicker/cell-editor-datepicker.component.mjs +35 -18
- package/esm2020/lib/modules/ag-grid/cell-editors/cell-editor-lookup/cell-editor-lookup.component.mjs +23 -6
- package/fesm2015/skyux-ag-grid.mjs +89 -32
- package/fesm2015/skyux-ag-grid.mjs.map +1 -1
- package/fesm2020/skyux-ag-grid.mjs +87 -30
- package/fesm2020/skyux-ag-grid.mjs.map +1 -1
- package/lib/modules/ag-grid/cell-editors/cell-editor-autocomplete/cell-editor-autocomplete.component.d.ts +2 -0
- package/lib/modules/ag-grid/cell-editors/cell-editor-datepicker/cell-editor-datepicker.component.d.ts +5 -4
- package/lib/modules/ag-grid/cell-editors/cell-editor-lookup/cell-editor-lookup.component.d.ts +2 -0
- package/package.json +12 -12
|
@@ -125,6 +125,10 @@ export class SkyAgGridService {
|
|
|
125
125
|
getEditableGridOptions(args) {
|
|
126
126
|
const defaultGridOptions = __classPrivateFieldGet(this, _SkyAgGridService_instances, "m", _SkyAgGridService_getDefaultEditableGridOptions).call(this, args);
|
|
127
127
|
const mergedGridOptions = __classPrivateFieldGet(this, _SkyAgGridService_instances, "m", _SkyAgGridService_mergeGridOptions).call(this, defaultGridOptions, args.gridOptions);
|
|
128
|
+
mergedGridOptions.context || (mergedGridOptions.context = {});
|
|
129
|
+
mergedGridOptions.context.gridOptions = {
|
|
130
|
+
...mergedGridOptions,
|
|
131
|
+
};
|
|
128
132
|
return mergedGridOptions;
|
|
129
133
|
}
|
|
130
134
|
getHeaderHeight() {
|
|
@@ -450,4 +454,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
|
|
|
450
454
|
}] }, { type: i3.SkyLibResourcesService, decorators: [{
|
|
451
455
|
type: Optional
|
|
452
456
|
}] }]; } });
|
|
453
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWctZ3JpZC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2FnLWdyaWQvc3JjL2xpYi9tb2R1bGVzL2FnLWdyaWQvYWctZ3JpZC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsT0FBTyxFQUFFLFVBQVUsRUFBYSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFlaEUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFHM0MsT0FBTyxFQUFFLGdDQUFnQyxFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDdEYsT0FBTyxFQUFFLHdDQUF3QyxFQUFFLE1BQU0sNEVBQTRFLENBQUM7QUFDdEksT0FBTyxFQUFFLG9DQUFvQyxFQUFFLE1BQU0sb0VBQW9FLENBQUM7QUFDMUgsT0FBTyxFQUFFLHNDQUFzQyxFQUFFLE1BQU0sd0VBQXdFLENBQUM7QUFDaEksT0FBTyxFQUFFLGtDQUFrQyxFQUFFLE1BQU0sZ0VBQWdFLENBQUM7QUFDcEgsT0FBTyxFQUFFLGtDQUFrQyxFQUFFLE1BQU0sZ0VBQWdFLENBQUM7QUFDcEgsT0FBTyxFQUFFLGdDQUFnQyxFQUFFLE1BQU0sNERBQTRELENBQUM7QUFDOUcsT0FBTyxFQUFFLCtDQUErQyxFQUFFLE1BQU0sb0ZBQW9GLENBQUM7QUFDckosT0FBTyxFQUFFLHNDQUFzQyxFQUFFLE1BQU0sMEVBQTBFLENBQUM7QUFDbEksT0FBTyxFQUFFLG9DQUFvQyxFQUFFLE1BQU0sc0VBQXNFLENBQUM7QUFDNUgsT0FBTyxFQUFFLHlDQUF5QyxFQUFFLE1BQU0sa0ZBQWtGLENBQUM7QUFDN0ksT0FBTyxFQUFFLDhDQUE4QyxFQUFFLE1BQU0sNEZBQTRGLENBQUM7QUFDNUosT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0saUNBQWlD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LGlCQUFpQixDQUNsQixDQUFDO1lBQ0YsTUFBTSxRQUFRLEdBQUcsTUFBTSxJQUFJLE9BQU8sQ0FBQztZQUVuQyxNQUFNLDBCQUEwQixHQUM5Qix1QkFBQSxJQUFJLDhDQUFzQixDQUFDLHVCQUF1QixDQUNoRCxrQkFBa0IsRUFDbEIsUUFBUSxFQUNSLE1BQU0sQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUN0QixDQUFDO1lBQ0osT0FBTyxDQUFDLENBQUMsMEJBQTBCLENBQUM7U0FDckM7UUFDRCxPQUFPLElBQUksQ0FBQztLQUNiO0lBQ0QsT0FBTyxLQUFLLENBQUM7QUFDZixDQUFDO0lBR0MsT0FBTyx1QkFBQSxJQUFJLHNDQUFjLEVBQUUsS0FBSyxFQUFFLElBQUksS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO0FBQ2hFLENBQUM7NkdBdGNVLGdCQUFnQjtpSEFBaEIsZ0JBQWdCLGNBRmYsS0FBSzsyRkFFTixnQkFBZ0I7a0JBSDVCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLEtBQUs7aUJBQ2xCOzswQkFXSSxRQUFROzswQkFDUixRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgT25EZXN0cm95LCBPcHRpb25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU2t5TGliUmVzb3VyY2VzU2VydmljZSB9IGZyb20gJ0Bza3l1eC9pMThuJztcbmltcG9ydCB7IFNreVRoZW1lU2VydmljZSwgU2t5VGhlbWVTZXR0aW5ncyB9IGZyb20gJ0Bza3l1eC90aGVtZSc7XG5cbmltcG9ydCB7XG4gIENlbGxDbGFzc1BhcmFtcyxcbiAgQ29sRGVmLFxuICBFZGl0YWJsZUNhbGxiYWNrUGFyYW1zLFxuICBHcmlkT3B0aW9ucyxcbiAgSUNlbGxSZW5kZXJlclBhcmFtcyxcbiAgUm93Q2xhc3NQYXJhbXMsXG4gIFN1cHByZXNzSGVhZGVyS2V5Ym9hcmRFdmVudFBhcmFtcyxcbiAgU3VwcHJlc3NLZXlib2FyZEV2ZW50UGFyYW1zLFxuICBWYWx1ZUZvcm1hdHRlclBhcmFtcyxcbn0gZnJvbSAnYWctZ3JpZC1jb21tdW5pdHknO1xuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBTa3lBZ0dyaWRBZGFwdGVyU2VydmljZSB9IGZyb20gJy4vYWctZ3JpZC1hZGFwdGVyLnNlcnZpY2UnO1xuaW1wb3J0IHsgYXBwbHlTa3lMb29rdXBQcm9wZXJ0aWVzRGVmYXVsdHMgfSBmcm9tICcuL2FwcGx5LWxvb2t1cC1wcm9wZXJ0aWVzLWRlZmF1bHRzJztcbmltcG9ydCB7IFNreUFnR3JpZENlbGxFZGl0b3JBdXRvY29tcGxldGVDb21wb25lbnQgfSBmcm9tICcuL2NlbGwtZWRpdG9ycy9jZWxsLWVkaXRvci1hdXRvY29tcGxldGUvY2VsbC1lZGl0b3ItYXV0b2NvbXBsZXRlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTa3lBZ0dyaWRDZWxsRWRpdG9yQ3VycmVuY3lDb21wb25lbnQgfSBmcm9tICcuL2NlbGwtZWRpdG9ycy9jZWxsLWVkaXRvci1jdXJyZW5jeS9jZWxsLWVkaXRvci1jdXJyZW5jeS5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2t5QWdHcmlkQ2VsbEVkaXRvckRhdGVwaWNrZXJDb21wb25lbnQgfSBmcm9tICcuL2NlbGwtZWRpdG9ycy9jZWxsLWVkaXRvci1kYXRlcGlja2VyL2NlbGwtZWRpdG9yLWRhdGVwaWNrZXIuY29tcG9uZW50JztcbmltcG9ydCB7IFNreUFnR3JpZENlbGxFZGl0b3JMb29rdXBDb21wb25lbnQgfSBmcm9tICcuL2NlbGwtZWRpdG9ycy9jZWxsLWVkaXRvci1sb29rdXAvY2VsbC1lZGl0b3ItbG9va3VwLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTa3lBZ0dyaWRDZWxsRWRpdG9yTnVtYmVyQ29tcG9uZW50IH0gZnJvbSAnLi9jZWxsLWVkaXRvcnMvY2VsbC1lZGl0b3ItbnVtYmVyL2NlbGwtZWRpdG9yLW51bWJlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2t5QWdHcmlkQ2VsbEVkaXRvclRleHRDb21wb25lbnQgfSBmcm9tICcuL2NlbGwtZWRpdG9ycy9jZWxsLWVkaXRvci10ZXh0L2NlbGwtZWRpdG9yLXRleHQuY29tcG9uZW50JztcbmltcG9ydCB7IFNreUFnR3JpZENlbGxSZW5kZXJlckN1cnJlbmN5VmFsaWRhdG9yQ29tcG9uZW50IH0gZnJvbSAnLi9jZWxsLXJlbmRlcmVycy9jZWxsLXJlbmRlcmVyLWN1cnJlbmN5L2NlbGwtcmVuZGVyZXItY3VycmVuY3ktdmFsaWRhdG9yLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTa3lBZ0dyaWRDZWxsUmVuZGVyZXJDdXJyZW5jeUNvbXBvbmVudCB9IGZyb20gJy4vY2VsbC1yZW5kZXJlcnMvY2VsbC1yZW5kZXJlci1jdXJyZW5jeS9jZWxsLXJlbmRlcmVyLWN1cnJlbmN5LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTa3lBZ0dyaWRDZWxsUmVuZGVyZXJMb29rdXBDb21wb25lbnQgfSBmcm9tICcuL2NlbGwtcmVuZGVyZXJzL2NlbGwtcmVuZGVyZXItbG9va3VwL2NlbGwtcmVuZGVyZXItbG9va3VwLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTa3lBZ0dyaWRDZWxsUmVuZGVyZXJSb3dTZWxlY3RvckNvbXBvbmVudCB9IGZyb20gJy4vY2VsbC1yZW5kZXJlcnMvY2VsbC1yZW5kZXJlci1yb3ctc2VsZWN0b3IvY2VsbC1yZW5kZXJlci1yb3ctc2VsZWN0b3IuY29tcG9uZW50JztcbmltcG9ydCB7IFNreUFnR3JpZENlbGxSZW5kZXJlclZhbGlkYXRvclRvb2x0aXBDb21wb25lbnQgfSBmcm9tICcuL2NlbGwtcmVuZGVyZXJzL2NlbGwtcmVuZGVyZXItdmFsaWRhdG9yLXRvb2x0aXAvY2VsbC1yZW5kZXJlci12YWxpZGF0b3ItdG9vbHRpcC5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2t5QWdHcmlkSGVhZGVyR3JvdXBDb21wb25lbnQgfSBmcm9tICcuL2hlYWRlci9oZWFkZXItZ3JvdXAuY29tcG9uZW50JztcbmltcG9ydCB7IFNreUFnR3JpZEhlYWRlckNvbXBvbmVudCB9IGZyb20gJy4vaGVhZGVyL2hlYWRlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgSWNvbk1hcFR5cGUsIGljb25NYXAgfSBmcm9tICcuL2ljb25zL2ljb24tbWFwJztcbmltcG9ydCB7IFNreUNlbGxDbGFzcyB9IGZyb20gJy4vdHlwZXMvY2VsbC1jbGFzcyc7XG5pbXBvcnQgeyBTa3lDZWxsVHlwZSB9IGZyb20gJy4vdHlwZXMvY2VsbC10eXBlJztcbmltcG9ydCB7IFNreUhlYWRlckNsYXNzIH0gZnJvbSAnLi90eXBlcy9oZWFkZXItY2xhc3MnO1xuaW1wb3J0IHsgU2t5R2V0R3JpZE9wdGlvbnNBcmdzIH0gZnJvbSAnLi90eXBlcy9za3ktZ3JpZC1vcHRpb25zJztcblxuZnVuY3Rpb24gYXV0b2NvbXBsZXRlQ29tcGFyYXRvcihcbiAgdmFsdWUxOiB7IG5hbWU6IHN0cmluZyB9LFxuICB2YWx1ZTI6IHsgbmFtZTogc3RyaW5nIH1cbik6IG51bWJlciB7XG4gIGlmICh2YWx1ZTEgJiYgdmFsdWUyKSB7XG4gICAgaWYgKHZhbHVlMS5uYW1lID4gdmFsdWUyLm5hbWUpIHtcbiAgICAgIHJldHVybiAxO1xuICAgIH1cblxuICAgIGlmICh2YWx1ZTEubmFtZSA8IHZhbHVlMi5uYW1lKSB7XG4gICAgICByZXR1cm4gLTE7XG4gICAgfVxuXG4gICAgcmV0dXJuIDA7XG4gIH1cblxuICByZXR1cm4gdmFsdWUxID8gMSA6IC0xO1xufVxuXG5mdW5jdGlvbiBhdXRvY29tcGxldGVGb3JtYXR0ZXIocGFyYW1zOiBWYWx1ZUZvcm1hdHRlclBhcmFtcyk6IHN0cmluZyB7XG4gIHJldHVybiBwYXJhbXMudmFsdWUgJiYgcGFyYW1zLnZhbHVlLm5hbWU7XG59XG5cbmZ1bmN0aW9uIGRhdGVDb21wYXJhdG9yKGRhdGUxOiBEYXRlIHwgc3RyaW5nLCBkYXRlMjogRGF0ZSB8IHN0cmluZyk6IG51bWJlciB7XG4gIGxldCBkYXRlMXZhbHVlID0gZGF0ZTE7XG4gIGxldCBkYXRlMnZhbHVlID0gZGF0ZTI7XG5cbiAgaWYgKHR5cGVvZiBkYXRlMXZhbHVlID09PSAnc3RyaW5nJykge1xuICAgIGRhdGUxdmFsdWUgPSBuZXcgRGF0ZShkYXRlMSk7XG4gIH1cblxuICBpZiAodHlwZW9mIGRhdGUydmFsdWUgPT09ICdzdHJpbmcnKSB7XG4gICAgZGF0ZTJ2YWx1ZSA9IG5ldyBEYXRlKGRhdGUyKTtcbiAgfVxuXG4gIGlmIChkYXRlMXZhbHVlICYmIGRhdGUydmFsdWUpIHtcbiAgICBpZiAoZGF0ZTF2YWx1ZSA+IGRhdGUydmFsdWUpIHtcbiAgICAgIHJldHVybiAxO1xuICAgIH1cblxuICAgIGlmIChkYXRlMXZhbHVlIDwgZGF0ZTJ2YWx1ZSkge1xuICAgICAgcmV0dXJuIC0xO1xuICAgIH1cblxuICAgIHJldHVybiAwO1xuICB9XG5cbiAgcmV0dXJuIGRhdGUxdmFsdWUgPyAxIDogLTE7XG59XG5cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG5mdW5jdGlvbiBnZXRWYWxpZGF0b3JDZWxsUmVuZGVyZXJTZWxlY3Rvcihjb21wb25lbnQ6IHN0cmluZywgZmFsbGJhY2s/OiBhbnkpIHtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgcmV0dXJuIChwYXJhbXM6IElDZWxsUmVuZGVyZXJQYXJhbXMpOiBhbnkgPT4ge1xuICAgIGlmIChcbiAgICAgIHBhcmFtcy5jb2xEZWYgJiZcbiAgICAgIHR5cGVvZiBwYXJhbXMuY29sRGVmLmNlbGxSZW5kZXJlclBhcmFtcz8uc2t5Q29tcG9uZW50UHJvcGVydGllc1xuICAgICAgICA/LnZhbGlkYXRvciA9PT0gJ2Z1bmN0aW9uJ1xuICAgICkge1xuICAgICAgaWYgKFxuICAgICAgICAhcGFyYW1zLmNvbERlZi5jZWxsUmVuZGVyZXJQYXJhbXMuc2t5Q29tcG9uZW50UHJvcGVydGllcy52YWxpZGF0b3IoXG4gICAgICAgICAgcGFyYW1zLnZhbHVlLFxuICAgICAgICAgIHBhcmFtcy5kYXRhLFxuICAgICAgICAgIHBhcmFtcy5yb3dJbmRleFxuICAgICAgICApXG4gICAgICApIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBjb21wb25lbnQsXG4gICAgICAgICAgcGFyYW1zOiB7XG4gICAgICAgICAgICAuLi5wYXJhbXMuY29sRGVmLmNlbGxSZW5kZXJlclBhcmFtcyxcbiAgICAgICAgICB9LFxuICAgICAgICB9O1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gZmFsbGJhY2s7XG4gIH07XG59XG5cbmxldCByb3dOb2RlSWQgPSAtMTtcblxuLyoqXG4gKiBgU2t5QWdHcmlkU2VydmljZWAgcHJvdmlkZXMgbWV0aG9kcyB0byBnZXQgQUcgR3JpZCBgZ3JpZE9wdGlvbnNgIHRvIGVuc3VyZSBncmlkcyBtYXRjaCBTS1kgVVggZnVuY3Rpb25hbGl0eS4gVGhlIGBncmlkT3B0aW9uc2AgY2FuIGJlIG92ZXJyaWRkZW4sIGFuZCBpbmNsdWRlIHJlZ2lzdGVyZWQgU0tZIFVYIGNvbHVtbiB0eXBlcy5cbiAqL1xuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAnYW55Jyxcbn0pXG5leHBvcnQgY2xhc3MgU2t5QWdHcmlkU2VydmljZSBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICNrZXlNYXAgPSBuZXcgV2Vha01hcDxhbnksIHN0cmluZz4oKTtcbiAgI25nVW5zdWJzY3JpYmUgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuICAjY3VycmVudFRoZW1lOiBTa3lUaGVtZVNldHRpbmdzIHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkO1xuICAjYWdHcmlkQWRhcHRlclNlcnZpY2U6IFNreUFnR3JpZEFkYXB0ZXJTZXJ2aWNlO1xuICAjcmVzb3VyY2VzOiBTa3lMaWJSZXNvdXJjZXNTZXJ2aWNlIHwgdW5kZWZpbmVkO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIGFnR3JpZEFkYXB0ZXJTZXJ2aWNlOiBTa3lBZ0dyaWRBZGFwdGVyU2VydmljZSxcbiAgICBAT3B0aW9uYWwoKSB0aGVtZVN2Yz86IFNreVRoZW1lU2VydmljZSxcbiAgICBAT3B0aW9uYWwoKSByZXNvdXJjZXM/OiBTa3lMaWJSZXNvdXJjZXNTZXJ2aWNlXG4gICkge1xuICAgIHRoaXMuI2FnR3JpZEFkYXB0ZXJTZXJ2aWNlID0gYWdHcmlkQWRhcHRlclNlcnZpY2U7XG4gICAgdGhpcy4jcmVzb3VyY2VzID0gcmVzb3VyY2VzO1xuXG4gICAgLyppc3RhbmJ1bCBpZ25vcmUgZWxzZSovXG4gICAgaWYgKHRoZW1lU3ZjKSB7XG4gICAgICB0aGVtZVN2Yy5zZXR0aW5nc0NoYW5nZVxuICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy4jbmdVbnN1YnNjcmliZSkpXG4gICAgICAgIC5zdWJzY3JpYmUoKHNldHRpbmdzQ2hhbmdlKSA9PiB7XG4gICAgICAgICAgdGhpcy4jY3VycmVudFRoZW1lID0gc2V0dGluZ3NDaGFuZ2UuY3VycmVudFNldHRpbmdzO1xuICAgICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy4jbmdVbnN1YnNjcmliZS5uZXh0KCk7XG4gICAgdGhpcy4jbmdVbnN1YnNjcmliZS5jb21wbGV0ZSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgW0FHIEdyaWQgYGdyaWRPcHRpb25zYF0oaHR0cHM6Ly93d3cuYWctZ3JpZC5jb20vamF2YXNjcmlwdC1ncmlkLXByb3BlcnRpZXMvKSB3aXRoIGRlZmF1bHQgU0tZIFVYIG9wdGlvbnMsIHN0eWxpbmcsIGFuZCBjZWxsIHJlbmRlcmVycyByZWdpc3RlcmVkIGZvciByZWFkLW9ubHkgZ3JpZHMuXG4gICAqIEBwYXJhbSBhcmdzXG4gICAqIEByZXR1cm5zXG4gICAqL1xuICBwdWJsaWMgZ2V0R3JpZE9wdGlvbnMoYXJnczogU2t5R2V0R3JpZE9wdGlvbnNBcmdzKTogR3JpZE9wdGlvbnMge1xuICAgIGNvbnN0IGRlZmF1bHRHcmlkT3B0aW9ucyA9IHRoaXMuI2dldERlZmF1bHRHcmlkT3B0aW9ucyhhcmdzKTtcbiAgICBjb25zdCBtZXJnZWRHcmlkT3B0aW9ucyA9IHRoaXMuI21lcmdlR3JpZE9wdGlvbnMoXG4gICAgICBkZWZhdWx0R3JpZE9wdGlvbnMsXG4gICAgICBhcmdzLmdyaWRPcHRpb25zXG4gICAgKTtcblxuICAgIHJldHVybiBtZXJnZWRHcmlkT3B0aW9ucztcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIFtBRyBHcmlkIGBncmlkT3B0aW9uc2BdKGh0dHBzOi8vd3d3LmFnLWdyaWQuY29tL2phdmFzY3JpcHQtZ3JpZC1wcm9wZXJ0aWVzLykgd2l0aCBkZWZhdWx0IFNLWSBVWCBvcHRpb25zLCBzdHlsaW5nLCBhbmQgY2VsbCBlZGl0b3JzIHJlZ2lzdGVyZWQgZm9yIGVkaXRhYmxlIGdyaWRzLlxuICAgKiBAcGFyYW0gYXJnc1xuICAgKiBAcmV0dXJuc1xuICAgKi9cbiAgcHVibGljIGdldEVkaXRhYmxlR3JpZE9wdGlvbnMoYXJnczogU2t5R2V0R3JpZE9wdGlvbnNBcmdzKTogR3JpZE9wdGlvbnMge1xuICAgIGNvbnN0IGRlZmF1bHRHcmlkT3B0aW9ucyA9IHRoaXMuI2dldERlZmF1bHRFZGl0YWJsZUdyaWRPcHRpb25zKGFyZ3MpO1xuICAgIGNvbnN0IG1lcmdlZEdyaWRPcHRpb25zID0gdGhpcy4jbWVyZ2VHcmlkT3B0aW9ucyhcbiAgICAgIGRlZmF1bHRHcmlkT3B0aW9ucyxcbiAgICAgIGFyZ3MuZ3JpZE9wdGlvbnNcbiAgICApO1xuXG4gICAgcmV0dXJuIG1lcmdlZEdyaWRPcHRpb25zO1xuICB9XG5cbiAgcHVibGljIGdldEhlYWRlckhlaWdodCgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLiNjdXJyZW50VGhlbWU/LnRoZW1lPy5uYW1lID09PSAnbW9kZXJuJyA/IDYwIDogMzc7XG4gIH1cblxuICAjbWVyZ2VHcmlkT3B0aW9ucyhcbiAgICBkZWZhdWx0R3JpZE9wdGlvbnM6IEdyaWRPcHRpb25zLFxuICAgIHByb3ZpZGVkR3JpZE9wdGlvbnM6IEdyaWRPcHRpb25zXG4gICk6IEdyaWRPcHRpb25zIHtcbiAgICBjb25zdCBtZXJnZWRHcmlkT3B0aW9uczogR3JpZE9wdGlvbnMgPSB7XG4gICAgICAuLi5kZWZhdWx0R3JpZE9wdGlvbnMsXG4gICAgICAuLi5wcm92aWRlZEdyaWRPcHRpb25zLFxuICAgICAgY29tcG9uZW50czoge1xuICAgICAgICAuLi5wcm92aWRlZEdyaWRPcHRpb25zLmNvbXBvbmVudHMsXG4gICAgICAgIC8vIEFwcGx5IGRlZmF1bHQgY29tcG9uZW50cyBsYXN0IHRvIHByZXZlbnQgY29uc3VtZXJzIGZyb20gb3ZlcndyaXRpbmcgb3VyIGNvbXBvbmVudCB0eXBlcy5cbiAgICAgICAgLi4uZGVmYXVsdEdyaWRPcHRpb25zLmNvbXBvbmVudHMsXG4gICAgICB9LFxuICAgICAgY29sdW1uVHlwZXM6IHtcbiAgICAgICAgLi4ucHJvdmlkZWRHcmlkT3B0aW9ucy5jb2x1bW5UeXBlcyxcbiAgICAgICAgLy8gYXBwbHkgZGVmYXVsdCBzZWNvbmQgdG8gcHJldmVudCBjb25zdW1lcnMgZnJvbSBvdmVyd3JpdGluZyBvdXIgZGVmYXVsdCBjb2x1bW4gdHlwZXNcbiAgICAgICAgLi4uZGVmYXVsdEdyaWRPcHRpb25zLmNvbHVtblR5cGVzLFxuICAgICAgfSxcbiAgICAgIGRlZmF1bHRDb2xEZWY6IHtcbiAgICAgICAgLi4uZGVmYXVsdEdyaWRPcHRpb25zLmRlZmF1bHRDb2xEZWYsXG4gICAgICAgIC4uLnByb3ZpZGVkR3JpZE9wdGlvbnMuZGVmYXVsdENvbERlZixcbiAgICAgICAgLy8gYWxsb3cgY29uc3VtZXJzIHRvIG92ZXJyaWRlIGFsbCBkZWZhdWx0Q29sRGVmIHByb3BlcnRpZXMgZXhjZXB0IGNlbGxDbGFzc1J1bGVzLCB3aGljaCB3ZSByZXNlcnZlIGZvciBzdHlsaW5nXG4gICAgICAgIGNlbGxDbGFzc1J1bGVzOiBkZWZhdWx0R3JpZE9wdGlvbnMuZGVmYXVsdENvbERlZj8uY2VsbENsYXNzUnVsZXMsXG4gICAgICB9LFxuICAgICAgZGVmYXVsdENvbEdyb3VwRGVmOiB7XG4gICAgICAgIC4uLmRlZmF1bHRHcmlkT3B0aW9ucy5kZWZhdWx0Q29sR3JvdXBEZWYsXG4gICAgICAgIC4uLnByb3ZpZGVkR3JpZE9wdGlvbnMuZGVmYXVsdENvbEdyb3VwRGVmLFxuICAgICAgfSxcbiAgICAgIGljb25zOiB7XG4gICAgICAgIC4uLmRlZmF1bHRHcmlkT3B0aW9ucy5pY29ucyxcbiAgICAgICAgLi4ucHJvdmlkZWRHcmlkT3B0aW9ucy5pY29ucyxcbiAgICAgIH0sXG4gICAgfTtcblxuICAgIC8vIFByZWZlciBgZ2V0Um93Tm9kZUlkYCBvdmVyIGBnZXROb2RlSWRgIGlmIHNldCBieSB0aGUgY29uc3VtZXIsIGZvciBiYWNrd2FyZCBjb21wYXRpYmlsaXR5LlxuICAgIGlmIChtZXJnZWRHcmlkT3B0aW9ucy5nZXRSb3dOb2RlSWQpIHtcbiAgICAgIGRlbGV0ZSBtZXJnZWRHcmlkT3B0aW9ucy5nZXRSb3dJZDtcbiAgICB9XG5cbiAgICByZXR1cm4gbWVyZ2VkR3JpZE9wdGlvbnM7XG4gIH1cblxuICAjZ2V0RGVmYXVsdEdyaWRPcHRpb25zKGFyZ3M6IFNreUdldEdyaWRPcHRpb25zQXJncyk6IEdyaWRPcHRpb25zIHtcbiAgICAvLyBjZWxsQ2xhc3NSdWxlcyBjYW4gYmUgZnVuY3Rpb25zIG9yIHN0cmluZyBleHByZXNzaW9uc1xuICAgIGNvbnN0IGNlbGxDbGFzc1J1bGVUcnVlRXhwcmVzc2lvbiA9ICgpOiBib29sZWFuID0+IHRydWU7XG5cbiAgICBmdW5jdGlvbiBnZXRFZGl0YWJsZUZuKFxuICAgICAgaXNVbmVkaXRhYmxlPzogYm9vbGVhblxuICAgICk6IChwYXJhbXM6IENlbGxDbGFzc1BhcmFtcykgPT4gYm9vbGVhbiB7XG4gICAgICByZXR1cm4gZnVuY3Rpb24gKHBhcmFtczogQ2VsbENsYXNzUGFyYW1zKTogYm9vbGVhbiB7XG4gICAgICAgIGxldCBpc0VkaXRhYmxlID0gcGFyYW1zLmNvbERlZi5lZGl0YWJsZTtcblxuICAgICAgICBpZiAodHlwZW9mIGlzRWRpdGFibGUgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICBjb25zdCBjb2x1bW4gPSBwYXJhbXMuY29sdW1uQXBpLmdldENvbHVtbihwYXJhbXMuY29sRGVmLmZpZWxkKTtcbiAgICAgICAgICBpc0VkaXRhYmxlID0gaXNFZGl0YWJsZSh7XG4gICAgICAgICAgICAuLi5wYXJhbXMsXG4gICAgICAgICAgICBjb2x1bW4sXG4gICAgICAgICAgfSBhcyBFZGl0YWJsZUNhbGxiYWNrUGFyYW1zKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBpc1VuZWRpdGFibGUgPyAhaXNFZGl0YWJsZSA6ICEhaXNFZGl0YWJsZTtcbiAgICAgIH07XG4gICAgfVxuXG4gICAgY29uc3QgZWRpdGFibGVDZWxsQ2xhc3NSdWxlcyA9IHtcbiAgICAgIFtTa3lDZWxsQ2xhc3MuRWRpdGFibGVdOiBnZXRFZGl0YWJsZUZuKCksXG4gICAgICBbU2t5Q2VsbENsYXNzLlVuZWRpdGFibGVdOiBnZXRFZGl0YWJsZUZuKHRydWUpLFxuICAgIH07XG5cbiAgICBmdW5jdGlvbiBnZXRWYWxpZGF0b3JGbigpOiAocGFyYW1zOiBDZWxsQ2xhc3NQYXJhbXMpID0+IGJvb2xlYW4ge1xuICAgICAgcmV0dXJuIGZ1bmN0aW9uIChwYXJhbTogQ2VsbENsYXNzUGFyYW1zKSB7XG4gICAgICAgIGlmIChcbiAgICAgICAgICBwYXJhbS5jb2xEZWYgJiZcbiAgICAgICAgICB0eXBlb2YgcGFyYW0uY29sRGVmLmNlbGxSZW5kZXJlclBhcmFtcz8uc2t5Q29tcG9uZW50UHJvcGVydGllc1xuICAgICAgICAgICAgPy52YWxpZGF0b3IgPT09ICdmdW5jdGlvbidcbiAgICAgICAgKSB7XG4gICAgICAgICAgcmV0dXJuICFwYXJhbS5jb2xEZWYuY2VsbFJlbmRlcmVyUGFyYW1zLnNreUNvbXBvbmVudFByb3BlcnRpZXMudmFsaWRhdG9yKFxuICAgICAgICAgICAgcGFyYW0udmFsdWUsXG4gICAgICAgICAgICBwYXJhbS5kYXRhLFxuICAgICAgICAgICAgcGFyYW0ucm93SW5kZXhcbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH07XG4gICAgfVxuXG4gICAgY29uc3QgdmFsaWRhdG9yQ2VsbENsYXNzUnVsZXMgPSB7XG4gICAgICBbU2t5Q2VsbENsYXNzLkludmFsaWRdOiBnZXRWYWxpZGF0b3JGbigpLFxuICAgIH07XG5cbiAgICBjb25zdCBkZWZhdWx0U2t5R3JpZE9wdGlvbnM6IEdyaWRPcHRpb25zID0ge1xuICAgICAgY29sdW1uVHlwZXM6IHtcbiAgICAgICAgW1NreUNlbGxUeXBlLkF1dG9jb21wbGV0ZV06IHtcbiAgICAgICAgICBjZWxsQ2xhc3NSdWxlczoge1xuICAgICAgICAgICAgW1NreUNlbGxDbGFzcy5BdXRvY29tcGxldGVdOiBjZWxsQ2xhc3NSdWxlVHJ1ZUV4cHJlc3Npb24sXG4gICAgICAgICAgICAuLi5lZGl0YWJsZUNlbGxDbGFzc1J1bGVzLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgY2VsbEVkaXRvcjogU2t5QWdHcmlkQ2VsbEVkaXRvckF1dG9jb21wbGV0ZUNvbXBvbmVudCxcbiAgICAgICAgICB2YWx1ZUZvcm1hdHRlcjogYXV0b2NvbXBsZXRlRm9ybWF0dGVyLFxuICAgICAgICAgIGNvbXBhcmF0b3I6IGF1dG9jb21wbGV0ZUNvbXBhcmF0b3IsXG4gICAgICAgICAgbWluV2lkdGg6IDE4NSxcbiAgICAgICAgfSxcbiAgICAgICAgW1NreUNlbGxUeXBlLkN1cnJlbmN5XToge1xuICAgICAgICAgIGNlbGxDbGFzc1J1bGVzOiB7XG4gICAgICAgICAgICBbU2t5Q2VsbENsYXNzLkN1cnJlbmN5XTogY2VsbENsYXNzUnVsZVRydWVFeHByZXNzaW9uLFxuICAgICAgICAgICAgLi4udmFsaWRhdG9yQ2VsbENsYXNzUnVsZXMsXG4gICAgICAgICAgICAuLi5lZGl0YWJsZUNlbGxDbGFzc1J1bGVzLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgY2VsbFJlbmRlcmVyU2VsZWN0b3I6IGdldFZhbGlkYXRvckNlbGxSZW5kZXJlclNlbGVjdG9yKFxuICAgICAgICAgICAgJ3NreS1hZy1ncmlkLWNlbGwtcmVuZGVyZXItY3VycmVuY3ktdmFsaWRhdG9yJyxcbiAgICAgICAgICAgIHsgY29tcG9uZW50OiAnc2t5LWFnLWdyaWQtY2VsbC1yZW5kZXJlci1jdXJyZW5jeScgfVxuICAgICAgICAgICksXG4gICAgICAgICAgY2VsbEVkaXRvcjogU2t5QWdHcmlkQ2VsbEVkaXRvckN1cnJlbmN5Q29tcG9uZW50LFxuICAgICAgICAgIGhlYWRlckNsYXNzOiBTa3lIZWFkZXJDbGFzcy5SaWdodEFsaWduZWQsXG4gICAgICAgICAgbWluV2lkdGg6IDE4NSxcbiAgICAgICAgfSxcbiAgICAgICAgW1NreUNlbGxUeXBlLkRhdGVdOiB7XG4gICAgICAgICAgY2VsbENsYXNzUnVsZXM6IHtcbiAgICAgICAgICAgIFtTa3lDZWxsQ2xhc3MuRGF0ZV06IGNlbGxDbGFzc1J1bGVUcnVlRXhwcmVzc2lvbixcbiAgICAgICAgICAgIC4uLmVkaXRhYmxlQ2VsbENsYXNzUnVsZXMsXG4gICAgICAgICAgfSxcbiAgICAgICAgICBjZWxsRWRpdG9yOiBTa3lBZ0dyaWRDZWxsRWRpdG9yRGF0ZXBpY2tlckNvbXBvbmVudCxcbiAgICAgICAgICBjb21wYXJhdG9yOiBkYXRlQ29tcGFyYXRvcixcbiAgICAgICAgICBtaW5XaWR0aDogdGhpcy4jY3VycmVudFRoZW1lPy50aGVtZT8ubmFtZSA9PT0gJ21vZGVybicgPyAxODAgOiAxNjAsXG4gICAgICAgICAgdmFsdWVGb3JtYXR0ZXI6IChwYXJhbXM6IFZhbHVlRm9ybWF0dGVyUGFyYW1zKSA9PlxuICAgICAgICAgICAgdGhpcy4jZGF0ZUZvcm1hdHRlcihwYXJhbXMsIGFyZ3MubG9jYWxlKSxcbiAgICAgICAgfSxcbiAgICAgICAgW1NreUNlbGxUeXBlLkxvb2t1cF06IHtcbiAgICAgICAgICBjZWxsQ2xhc3NSdWxlczoge1xuICAgICAgICAgICAgW1NreUNlbGxDbGFzcy5Mb29rdXBdOiBjZWxsQ2xhc3NSdWxlVHJ1ZUV4cHJlc3Npb24sXG4gICAgICAgICAgICAuLi5lZGl0YWJsZUNlbGxDbGFzc1J1bGVzLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgY2VsbEVkaXRvcjogU2t5QWdHcmlkQ2VsbEVkaXRvckxvb2t1cENvbXBvbmVudCxcbiAgICAgICAgICBjZWxsUmVuZGVyZXI6IFNreUFnR3JpZENlbGxSZW5kZXJlckxvb2t1cENvbXBvbmVudCxcbiAgICAgICAgICB2YWx1ZUZvcm1hdHRlcjogKHBhcmFtcykgPT4ge1xuICAgICAgICAgICAgY29uc3QgbG9va3VwUHJvcGVydGllcyA9IGFwcGx5U2t5TG9va3VwUHJvcGVydGllc0RlZmF1bHRzKHBhcmFtcyk7XG4gICAgICAgICAgICByZXR1cm4gKHBhcmFtcy52YWx1ZSB8fCBbXSlcbiAgICAgICAgICAgICAgLm1hcCgodmFsdWU6IFJlY29yZDxzdHJpbmcsIHVua25vd24+KSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHZhbHVlW2xvb2t1cFByb3BlcnRpZXMuZGVzY3JpcHRvclByb3BlcnR5IGFzIHN0cmluZ107XG4gICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgIC5maWx0ZXIoKHZhbHVlOiB1bmtub3duKSA9PiB2YWx1ZSAhPT0gJycgJiYgdmFsdWUgIT09IHVuZGVmaW5lZClcbiAgICAgICAgICAgICAgLmpvaW4oJzsgJyk7XG4gICAgICAgICAgfSxcbiAgICAgICAgICBtaW5XaWR0aDogMTg1LFxuICAgICAgICB9LFxuICAgICAgICBbU2t5Q2VsbFR5cGUuTnVtYmVyXToge1xuICAgICAgICAgIGNlbGxDbGFzc1J1bGVzOiB7XG4gICAgICAgICAgICBbU2t5Q2VsbENsYXNzLk51bWJlcl06IGNlbGxDbGFzc1J1bGVUcnVlRXhwcmVzc2lvbixcbiAgICAgICAgICAgIC4uLnZhbGlkYXRvckNlbGxDbGFzc1J1bGVzLFxuICAgICAgICAgICAgLi4uZWRpdGFibGVDZWxsQ2xhc3NSdWxlcyxcbiAgICAgICAgICB9LFxuICAgICAgICAgIGNlbGxSZW5kZXJlclNlbGVjdG9yOiBnZXRWYWxpZGF0b3JDZWxsUmVuZGVyZXJTZWxlY3RvcihcbiAgICAgICAgICAgICdza3ktYWctZ3JpZC1jZWxsLXJlbmRlcmVyLXZhbGlkYXRvci10b29sdGlwJ1xuICAgICAgICAgICksXG4gICAgICAgICAgY2VsbEVkaXRvcjogU2t5QWdHcmlkQ2VsbEVkaXRvck51bWJlckNvbXBvbmVudCxcbiAgICAgICAgICBoZWFkZXJDbGFzczogU2t5SGVhZGVyQ2xhc3MuUmlnaHRBbGlnbmVkLFxuICAgICAgICB9LFxuICAgICAgICBbU2t5Q2VsbFR5cGUuUm93U2VsZWN0b3JdOiB7XG4gICAgICAgICAgY2VsbENsYXNzUnVsZXM6IHtcbiAgICAgICAgICAgIFtTa3lDZWxsQ2xhc3MuUm93U2VsZWN0b3JdOiBjZWxsQ2xhc3NSdWxlVHJ1ZUV4cHJlc3Npb24sXG4gICAgICAgICAgICBbU2t5Q2VsbENsYXNzLlVuZWRpdGFibGVdOiBjZWxsQ2xhc3NSdWxlVHJ1ZUV4cHJlc3Npb24sXG4gICAgICAgICAgfSxcbiAgICAgICAgICBjZWxsUmVuZGVyZXI6IFNreUFnR3JpZENlbGxSZW5kZXJlclJvd1NlbGVjdG9yQ29tcG9uZW50LFxuICAgICAgICAgIGhlYWRlck5hbWU6ICcnLFxuICAgICAgICAgIG1pbldpZHRoOiA1NSxcbiAgICAgICAgICBtYXhXaWR0aDogNTUsXG4gICAgICAgICAgc29ydGFibGU6IGZhbHNlLFxuICAgICAgICAgIHdpZHRoOiA1NSxcbiAgICAgICAgfSxcbiAgICAgICAgW1NreUNlbGxUeXBlLlRleHRdOiB7XG4gICAgICAgICAgY2VsbENsYXNzUnVsZXM6IHtcbiAgICAgICAgICAgIFtTa3lDZWxsQ2xhc3MuVGV4dF06IGNlbGxDbGFzc1J1bGVUcnVlRXhwcmVzc2lvbixcbiAgICAgICAgICAgIC4uLnZhbGlkYXRvckNlbGxDbGFzc1J1bGVzLFxuICAgICAgICAgICAgLi4uZWRpdGFibGVDZWxsQ2xhc3NSdWxlcyxcbiAgICAgICAgICB9LFxuICAgICAgICAgIGNlbGxFZGl0b3I6IFNreUFnR3JpZENlbGxFZGl0b3JUZXh0Q29tcG9uZW50LFxuICAgICAgICAgIGNlbGxSZW5kZXJlclNlbGVjdG9yOiBnZXRWYWxpZGF0b3JDZWxsUmVuZGVyZXJTZWxlY3RvcihcbiAgICAgICAgICAgICdza3ktYWctZ3JpZC1jZWxsLXJlbmRlcmVyLXZhbGlkYXRvci10b29sdGlwJ1xuICAgICAgICAgICksXG4gICAgICAgIH0sXG4gICAgICAgIFtTa3lDZWxsVHlwZS5WYWxpZGF0b3JdOiB7XG4gICAgICAgICAgY2VsbENsYXNzUnVsZXM6IHtcbiAgICAgICAgICAgIC4uLnZhbGlkYXRvckNlbGxDbGFzc1J1bGVzLFxuICAgICAgICAgICAgLi4uZWRpdGFibGVDZWxsQ2xhc3NSdWxlcyxcbiAgICAgICAgICB9LFxuICAgICAgICAgIGNlbGxSZW5kZXJlclNlbGVjdG9yOiBnZXRWYWxpZGF0b3JDZWxsUmVuZGVyZXJTZWxlY3RvcihcbiAgICAgICAgICAgICdza3ktYWctZ3JpZC1jZWxsLXJlbmRlcmVyLXZhbGlkYXRvci10b29sdGlwJ1xuICAgICAgICAgICksXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAgZGVmYXVsdENvbERlZjoge1xuICAgICAgICBjZWxsQ2xhc3NSdWxlczogZWRpdGFibGVDZWxsQ2xhc3NSdWxlcyxcbiAgICAgICAgaGVhZGVyQ29tcG9uZW50OiBTa3lBZ0dyaWRIZWFkZXJDb21wb25lbnQsXG4gICAgICAgIG1pbldpZHRoOiAxMDAsXG4gICAgICAgIHJlc2l6YWJsZTogdHJ1ZSxcbiAgICAgICAgc29ydGFibGU6IHRydWUsXG4gICAgICAgIHN1cHByZXNzSGVhZGVyS2V5Ym9hcmRFdmVudDogKFxuICAgICAgICAgIGtleXByZXNzOiBTdXBwcmVzc0hlYWRlcktleWJvYXJkRXZlbnRQYXJhbXNcbiAgICAgICAgKSA9PiBrZXlwcmVzcy5ldmVudC5jb2RlID09PSAnVGFiJyxcbiAgICAgICAgc3VwcHJlc3NLZXlib2FyZEV2ZW50OiAoa2V5cHJlc3M6IFN1cHByZXNzS2V5Ym9hcmRFdmVudFBhcmFtcykgPT5cbiAgICAgICAgICB0aGlzLiNzdXBwcmVzc1RhYihrZXlwcmVzcyksXG4gICAgICB9LFxuICAgICAgZGVmYXVsdENvbEdyb3VwRGVmOiB7XG4gICAgICAgIGhlYWRlckdyb3VwQ29tcG9uZW50OiBTa3lBZ0dyaWRIZWFkZXJHcm91cENvbXBvbmVudCxcbiAgICAgIH0sXG4gICAgICBkb21MYXlvdXQ6ICdhdXRvSGVpZ2h0JyxcbiAgICAgIGVuc3VyZURvbU9yZGVyOiB0cnVlLFxuICAgICAgZW50ZXJNb3Zlc0Rvd25BZnRlckVkaXQ6IHRydWUsXG4gICAgICBjb21wb25lbnRzOiB7XG4gICAgICAgICdza3ktYWctZ3JpZC1jZWxsLXJlbmRlcmVyLWN1cnJlbmN5JzpcbiAgICAgICAgICBTa3lBZ0dyaWRDZWxsUmVuZGVyZXJDdXJyZW5jeUNvbXBvbmVudCxcbiAgICAgICAgJ3NreS1hZy1ncmlkLWNlbGwtcmVuZGVyZXItY3VycmVuY3ktdmFsaWRhdG9yJzpcbiAgICAgICAgICBTa3lBZ0dyaWRDZWxsUmVuZGVyZXJDdXJyZW5jeVZhbGlkYXRvckNvbXBvbmVudCxcbiAgICAgICAgJ3NreS1hZy1ncmlkLWNlbGwtcmVuZGVyZXItdmFsaWRhdG9yLXRvb2x0aXAnOlxuICAgICAgICAgIFNreUFnR3JpZENlbGxSZW5kZXJlclZhbGlkYXRvclRvb2x0aXBDb21wb25lbnQsXG4gICAgICB9LFxuICAgICAgZ2V0Um93SWQ6IChwYXJhbXMpID0+IHtcbiAgICAgICAgY29uc3QgZGF0YUlkID0gcGFyYW1zLmRhdGEuaWQ7XG4gICAgICAgIGlmIChkYXRhSWQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgIHJldHVybiBgJHtwYXJhbXMuZGF0YS5pZH1gO1xuICAgICAgICB9XG4gICAgICAgIGlmICghdGhpcy4ja2V5TWFwLmhhcyhwYXJhbXMuZGF0YSkpIHtcbiAgICAgICAgICB0aGlzLiNrZXlNYXAuc2V0KHBhcmFtcy5kYXRhLCBgJHtyb3dOb2RlSWQtLX1gKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy4ja2V5TWFwLmdldChwYXJhbXMuZGF0YSkgYXMgc3RyaW5nO1xuICAgICAgfSxcbiAgICAgIGdldFJvd0NsYXNzOiAocGFyYW1zOiBSb3dDbGFzc1BhcmFtcykgPT4ge1xuICAgICAgICBpZiAocGFyYW1zLm5vZGUuaWQpIHtcbiAgICAgICAgICByZXR1cm4gYHNreS1hZy1ncmlkLXJvdy0ke3BhcmFtcy5ub2RlLmlkfWA7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIGhlYWRlckhlaWdodDogdGhpcy5nZXRIZWFkZXJIZWlnaHQoKSxcbiAgICAgIGljb25zOiB7XG4gICAgICAgIHNvcnREZXNjZW5kaW5nOiB0aGlzLiNnZXRJY29uVGVtcGxhdGUoJ3NvcnREZXNjZW5kaW5nJyksXG4gICAgICAgIHNvcnRBc2NlbmRpbmc6IHRoaXMuI2dldEljb25UZW1wbGF0ZSgnc29ydEFzY2VuZGluZycpLFxuICAgICAgICBjb2x1bW5Nb3ZlTW92ZTogdGhpcy4jZ2V0SWNvblRlbXBsYXRlKCdjb2x1bW5Nb3ZlTW92ZScpLFxuICAgICAgICBjb2x1bW5Nb3ZlSGlkZTogdGhpcy4jZ2V0SWNvblRlbXBsYXRlKCdjb2x1bW5Nb3ZlSGlkZScpLFxuICAgICAgICBjb2x1bW5Nb3ZlTGVmdDogdGhpcy4jZ2V0SWNvblRlbXBsYXRlKCdjb2x1bW5Nb3ZlTGVmdCcpLFxuICAgICAgICBjb2x1bW5Nb3ZlUmlnaHQ6IHRoaXMuI2dldEljb25UZW1wbGF0ZSgnY29sdW1uTW92ZVJpZ2h0JyksXG4gICAgICAgIGNvbHVtbk1vdmVQaW46IHRoaXMuI2dldEljb25UZW1wbGF0ZSgnY29sdW1uTW92ZVBpbicpLFxuICAgICAgfSxcbiAgICAgIG9uQ2VsbEZvY3VzZWQ6ICgpID0+IHRoaXMuI29uQ2VsbEZvY3VzZWQoKSxcbiAgICAgIHJvd0hlaWdodDogdGhpcy4jZ2V0Um93SGVpZ2h0KCksXG4gICAgICBnZXRSb3dIZWlnaHQ6ICgpID0+IHRoaXMuI2dldFJvd0hlaWdodCgpLFxuICAgICAgcm93TXVsdGlTZWxlY3RXaXRoQ2xpY2s6IHRydWUsXG4gICAgICByb3dTZWxlY3Rpb246ICdtdWx0aXBsZScsXG4gICAgICBzaW5nbGVDbGlja0VkaXQ6IHRydWUsXG4gICAgICBzb3J0aW5nT3JkZXI6IFsnZGVzYycsICdhc2MnLCBudWxsXSxcbiAgICAgIHN1cHByZXNzUm93Q2xpY2tTZWxlY3Rpb246IHRydWUsXG4gICAgICBzdXBwcmVzc0RyYWdMZWF2ZUhpZGVzQ29sdW1uczogdHJ1ZSxcbiAgICB9O1xuXG4gICAgY29uc3QgY29sdW1uVHlwZXMgPSBkZWZhdWx0U2t5R3JpZE9wdGlvbnMuY29sdW1uVHlwZXMgYXMgUmVjb3JkPFxuICAgICAgc3RyaW5nLFxuICAgICAgQ29sRGVmXG4gICAgPjtcblxuICAgIGNvbHVtblR5cGVzW1NreUNlbGxUeXBlLkN1cnJlbmN5VmFsaWRhdG9yXSA9IHtcbiAgICAgIC4uLmNvbHVtblR5cGVzW1NreUNlbGxUeXBlLkN1cnJlbmN5XSxcbiAgICAgIGNlbGxSZW5kZXJlclBhcmFtczoge1xuICAgICAgICBza3lDb21wb25lbnRQcm9wZXJ0aWVzOiB7XG4gICAgICAgICAgdmFsaWRhdG9yOiAodmFsdWU6IHN0cmluZyk6IGJvb2xlYW4gPT4ge1xuICAgICAgICAgICAgcmV0dXJuICEhYCR7dmFsdWUgfHwgJyd9YC5tYXRjaCgvXlteMC05XSooXFxkK1ssLl0/KStcXGQqW14wLTldKiQvKTtcbiAgICAgICAgICB9LFxuICAgICAgICAgIHZhbGlkYXRvck1lc3NhZ2U6ICdQbGVhc2UgZW50ZXIgYSB2YWxpZCBjdXJyZW5jeScsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH07XG4gICAgLyppc3RhbmJ1bCBpZ25vcmUgZWxzZSovXG4gICAgaWYgKHRoaXMuI3Jlc291cmNlcykge1xuICAgICAgdGhpcy4jcmVzb3VyY2VzXG4gICAgICAgIC5nZXRTdHJpbmcoJ3NreV9hZ19ncmlkX2NlbGxfcmVuZGVyZXJfY3VycmVuY3lfdmFsaWRhdG9yX21lc3NhZ2UnKVxuICAgICAgICAuc3Vic2NyaWJlKCh2YWx1ZSkgPT4ge1xuICAgICAgICAgIGNvbHVtblR5cGVzW1xuICAgICAgICAgICAgU2t5Q2VsbFR5cGUuQ3VycmVuY3lWYWxpZGF0b3JcbiAgICAgICAgICBdLmNlbGxSZW5kZXJlclBhcmFtcy5za3lDb21wb25lbnRQcm9wZXJ0aWVzLnZhbGlkYXRvck1lc3NhZ2UgPSB2YWx1ZTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgY29sdW1uVHlwZXNbU2t5Q2VsbFR5cGUuTnVtYmVyVmFsaWRhdG9yXSA9IHtcbiAgICAgIC4uLmNvbHVtblR5cGVzW1NreUNlbGxUeXBlLlZhbGlkYXRvcl0sXG4gICAgICAuLi5jb2x1bW5UeXBlc1tTa3lDZWxsVHlwZS5OdW1iZXJdLFxuICAgICAgY2VsbENsYXNzUnVsZXM6IHtcbiAgICAgICAgLi4uY29sdW1uVHlwZXNbU2t5Q2VsbFR5cGUuVmFsaWRhdG9yXS5jZWxsQ2xhc3NSdWxlcyxcbiAgICAgICAgLi4uY29sdW1uVHlwZXNbU2t5Q2VsbFR5cGUuTnVtYmVyXS5jZWxsQ2xhc3NSdWxlcyxcbiAgICAgIH0sXG4gICAgICBjZWxsUmVuZGVyZXJQYXJhbXM6IHtcbiAgICAgICAgc2t5Q29tcG9uZW50UHJvcGVydGllczoge1xuICAgICAgICAgIHZhbGlkYXRvcjogKHZhbHVlOiBzdHJpbmcpOiBib29sZWFuID0+IHtcbiAgICAgICAgICAgIHJldHVybiAhIXZhbHVlICYmICFpc05hTihwYXJzZUZsb2F0KHZhbHVlKSk7XG4gICAgICAgICAgfSxcbiAgICAgICAgICB2YWxpZGF0b3JNZXNzYWdlOiAnUGxlYXNlIGVudGVyIGEgdmFsaWQgbnVtYmVyJyxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfTtcbiAgICAvKmlzdGFuYnVsIGlnbm9yZSBlbHNlKi9cbiAgICBpZiAodGhpcy4jcmVzb3VyY2VzKSB7XG4gICAgICB0aGlzLiNyZXNvdXJjZXNcbiAgICAgICAgLmdldFN0cmluZygnc2t5X2FnX2dyaWRfY2VsbF9yZW5kZXJlcl9udW1iZXJfdmFsaWRhdG9yX21lc3NhZ2UnKVxuICAgICAgICAuc3Vic2NyaWJlKCh2YWx1ZSkgPT4ge1xuICAgICAgICAgIGNvbHVtblR5cGVzW1xuICAgICAgICAgICAgU2t5Q2VsbFR5cGUuTnVtYmVyVmFsaWRhdG9yXG4gICAgICAgICAgXS5jZWxsUmVuZGVyZXJQYXJhbXMuc2t5Q29tcG9uZW50UHJvcGVydGllcy52YWxpZGF0b3JNZXNzYWdlID0gdmFsdWU7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHJldHVybiBkZWZhdWx0U2t5R3JpZE9wdGlvbnM7XG4gIH1cblxuICAjb25DZWxsRm9jdXNlZCgpOiB2b2lkIHtcbiAgICBjb25zdCBjdXJyZW50RWxlbWVudCA9IHRoaXMuI2FnR3JpZEFkYXB0ZXJTZXJ2aWNlLmdldEZvY3VzZWRFbGVtZW50KCk7XG5cbiAgICB0aGlzLiNhZ0dyaWRBZGFwdGVyU2VydmljZS5mb2N1c09uRm9jdXNhYmxlQ2hpbGRyZW4oY3VycmVudEVsZW1lbnQpO1xuICB9XG5cbiAgI2dldERlZmF1bHRFZGl0YWJsZUdyaWRPcHRpb25zKGFyZ3M6IFNreUdldEdyaWRPcHRpb25zQXJncyk6IEdyaWRPcHRpb25zIHtcbiAgICBjb25zdCBkZWZhdWx0R3JpZE9wdGlvbnMgPSB0aGlzLiNnZXREZWZhdWx0R3JpZE9wdGlvbnMoYXJncyk7XG5cbiAgICBkZWZhdWx0R3JpZE9wdGlvbnMucm93U2VsZWN0aW9uID0gdW5kZWZpbmVkO1xuXG4gICAgcmV0dXJuIGRlZmF1bHRHcmlkT3B0aW9ucztcbiAgfVxuXG4gICNkYXRlRm9ybWF0dGVyKFxuICAgIHBhcmFtczogVmFsdWVGb3JtYXR0ZXJQYXJhbXMsXG4gICAgbG9jYWxlOiBzdHJpbmcgPSAnZW4tdXMnXG4gICk6IHN0cmluZyB7XG4gICAgY29uc3QgZGF0ZUNvbmZpZyA9IHsgeWVhcjogJ251bWVyaWMnLCBtb250aDogJzItZGlnaXQnLCBkYXk6ICcyLWRpZ2l0JyB9O1xuICAgIGxldCBkYXRlOiBEYXRlID0gcGFyYW1zLnZhbHVlO1xuXG4gICAgaWYgKGRhdGUgJiYgdHlwZW9mIGRhdGUgPT09ICdzdHJpbmcnKSB7XG4gICAgICBkYXRlID0gbmV3IERhdGUocGFyYW1zLnZhbHVlKTtcbiAgICB9XG5cbiAgICBjb25zdCBmb3JtYXR0ZWREYXRlID1cbiAgICAgIGRhdGUgJiZcbiAgICAgIGRhdGUudG9Mb2NhbGVEYXRlU3RyaW5nICYmXG4gICAgICBkYXRlLnRvTG9jYWxlRGF0ZVN0cmluZyhsb2NhbGUsIGRhdGVDb25maWcgYXMgSW50bC5EYXRlVGltZUZvcm1hdE9wdGlvbnMpO1xuXG4gICAgaWYgKGRhdGUgJiYgZGF0ZS5nZXRUaW1lICYmICFpc05hTihkYXRlLmdldFRpbWUoKSkpIHtcbiAgICAgIHJldHVybiBmb3JtYXR0ZWREYXRlO1xuICAgIH1cblxuICAgIHJldHVybiAnJztcbiAgfVxuXG4gICNnZXRJY29uVGVtcGxhdGUoaWNvbk5hbWU6IGtleW9mIEljb25NYXBUeXBlKTogKCkgPT4gc3RyaW5nIHtcbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgY29uc3QgaWNvbiA9IGljb25NYXBbaWNvbk5hbWVdO1xuICAgICAgaWYgKHRoaXMuI2N1cnJlbnRUaGVtZT8udGhlbWUubmFtZSA9PT0gJ21vZGVybicgJiYgaWNvbi5za3lJY29uKSB7XG4gICAgICAgIHJldHVybiBgPGkgYXJpYS1oaWRkZW49XCJ0cnVlXCIgY2xhc3M9XCJza3ktaS0ke2ljb24uc2t5SWNvbn1cIj48L2k+YDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBgPGkgYXJpYS1oaWRkZW49XCJ0cnVlXCIgY2xhc3M9XCJmYSBmYS0ke2ljb24uZmFJY29ufVwiPjwvaT5gO1xuICAgICAgfVxuICAgIH07XG4gIH1cblxuICAjc3VwcHJlc3NUYWIocGFyYW1zOiBTdXBwcmVzc0tleWJvYXJkRXZlbnRQYXJhbXMpOiBib29sZWFuIHtcbiAgICBpZiAocGFyYW1zLmV2ZW50LmNvZGUgPT09ICdUYWInKSB7XG4gICAgICBpZiAocGFyYW1zLmVkaXRpbmcpIHtcbiAgICAgICAgY29uc3QgY3VycmVudGx5Rm9jdXNlZEVsID1cbiAgICAgICAgICB0aGlzLiNhZ0dyaWRBZGFwdGVyU2VydmljZS5nZXRGb2N1c2VkRWxlbWVudCgpO1xuICAgICAgICAvLyBpbmxpbmUgY2VsbCBlZGl0b3JzIGhhdmUgdGhlICdhZy1jZWxsJyBjbGFzcywgd2hpbGUgcG9wdXAgZWRpdG9ycyBoYXZlIHRoZSAnYWctcG9wdXAtZWRpdG9yJyBjbGFzc1xuICAgICAgICBjb25zdCBjZWxsRWwgPSB0aGlzLiNhZ0dyaWRBZGFwdGVyU2VydmljZS5nZXRFbGVtZW50T3JQYXJlbnRXaXRoQ2xhc3MoXG4gICAgICAgICAgY3VycmVudGx5Rm9jdXNlZEVsLFxuICAgICAgICAgICdhZy1jZWxsJ1xuICAgICAgICApO1xuICAgICAgICBjb25zdCBwb3B1cEVsID0gdGhpcy4jYWdHcmlkQWRhcHRlclNlcnZpY2UuZ2V0RWxlbWVudE9yUGFyZW50V2l0aENsYXNzKFxuICAgICAgICAgIGN1cnJlbnRseUZvY3VzZWRFbCxcbiAgICAgICAgICAnYWctcG9wdXAtZWRpdG9yJ1xuICAgICAgICApO1xuICAgICAgICBjb25zdCBwYXJlbnRFbCA9IGNlbGxFbCB8fCBwb3B1cEVsO1xuXG4gICAgICAgIGNvbnN0IG5leHRGb2N1c2FibGVFbGVtZW50SW5DZWxsID1cbiAgICAgICAgICB0aGlzLiNhZ0dyaWRBZGFwdGVyU2VydmljZS5nZXROZXh0Rm9jdXNhYmxlRWxlbWVudChcbiAgICAgICAgICAgIGN1cnJlbnRseUZvY3VzZWRFbCxcbiAgICAgICAgICAgIHBhcmVudEVsLFxuICAgICAgICAgICAgcGFyYW1zLmV2ZW50LnNoaWZ0S2V5XG4gICAgICAgICAgKTtcbiAgICAgICAgcmV0dXJuICEhbmV4dEZvY3VzYWJsZUVsZW1lbnRJbkNlbGw7XG4gICAgICB9XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgI2dldFJvd0hlaWdodCgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLiNjdXJyZW50VGhlbWU/LnRoZW1lPy5uYW1lID09PSAnbW9kZXJuJyA/IDYwIDogMzg7XG4gIH1cbn1cbiJdfQ==
|
|
457
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWctZ3JpZC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2FnLWdyaWQvc3JjL2xpYi9tb2R1bGVzL2FnLWdyaWQvYWctZ3JpZC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsT0FBTyxFQUFFLFVBQVUsRUFBYSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFlaEUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFHM0MsT0FBTyxFQUFFLGdDQUFnQyxFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDdEYsT0FBTyxFQUFFLHdDQUF3QyxFQUFFLE1BQU0sNEVBQTRFLENBQUM7QUFDdEksT0FBTyxFQUFFLG9DQUFvQyxFQUFFLE1BQU0sb0VBQW9FLENBQUM7QUFDMUgsT0FBTyxFQUFFLHNDQUFzQyxFQUFFLE1BQU0sd0VBQXdFLENBQUM7QUFDaEksT0FBTyxFQUFFLGtDQUFrQyxFQUFFLE1BQU0sZ0VBQWdFLENBQUM7QUFDcEgsT0FBTyxFQUFFLGtDQUFrQyxFQUFFLE1BQU0sZ0VBQWdFLENBQUM7QUFDcEgsT0FBTyxFQUFFLGdDQUFnQyxFQUFFLE1BQU0sNERBQTRELENBQUM7QUFDOUcsT0FBTyxFQUFFLCtDQUErQyxFQUFFLE1BQU0sb0ZBQW9GLENBQUM7QUFDckosT0FBTyxFQUFFLHNDQUFzQyxFQUFFLE1BQU0sMEVBQTBFLENBQUM7QUFDbEksT0FBTyxFQUFFLG9DQUFvQyxFQUFFLE1BQU0sc0VBQXNFLENBQUM7QUFDNUgsT0FBTyxFQUFFLHlDQUF5QyxFQUFFLE1BQU0sa0ZBQWtGLENBQUM7QUFDN0ksT0FBTyxFQUFFLDhDQUE4QyxFQUFFLE1BQU0sNEZBQTRGLENBQUM7QUFDNUosT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0saUNBQWlD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LElBQUksOENBQXNCLENBQUMsMkJBQTJCLENBQ25FLGtCQUFrQixFQUNsQixTQUFTLENBQ1YsQ0FBQztZQUNGLE1BQU0sT0FBTyxHQUFHLHVCQUFBLElBQUksOENBQXNCLENBQUMsMkJBQTJCLENBQ3BFLGtCQUFrQixFQUNsQixpQkFBaUIsQ0FDbEIsQ0FBQztZQUNGLE1BQU0sUUFBUSxHQUFHLE1BQU0sSUFBSSxPQUFPLENBQUM7WUFFbkMsTUFBTSwwQkFBMEIsR0FDOUIsdUJBQUEsSUFBSSw4Q0FBc0IsQ0FBQyx1QkFBdUIsQ0FDaEQsa0JBQWtCLEVBQ2xCLFFBQVEsRUFDUixNQUFNLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FDdEIsQ0FBQztZQUNKLE9BQU8sQ0FBQyxDQUFDLDBCQUEwQixDQUFDO1NBQ3JDO1FBQ0QsT0FBTyxJQUFJLENBQUM7S0FDYjtJQUNELE9BQU8sS0FBSyxDQUFDO0FBQ2YsQ0FBQztJQUdDLE9BQU8sdUJBQUEsSUFBSSxzQ0FBYyxFQUFFLEtBQUssRUFBRSxJQUFJLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztBQUNoRSxDQUFDOzZHQTFjVSxnQkFBZ0I7aUhBQWhCLGdCQUFnQixjQUZmLEtBQUs7MkZBRU4sZ0JBQWdCO2tCQUg1QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxLQUFLO2lCQUNsQjs7MEJBV0ksUUFBUTs7MEJBQ1IsUUFBUSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIE9uRGVzdHJveSwgT3B0aW9uYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFNreUxpYlJlc291cmNlc1NlcnZpY2UgfSBmcm9tICdAc2t5dXgvaTE4bic7XG5pbXBvcnQgeyBTa3lUaGVtZVNlcnZpY2UsIFNreVRoZW1lU2V0dGluZ3MgfSBmcm9tICdAc2t5dXgvdGhlbWUnO1xuXG5pbXBvcnQge1xuICBDZWxsQ2xhc3NQYXJhbXMsXG4gIENvbERlZixcbiAgRWRpdGFibGVDYWxsYmFja1BhcmFtcyxcbiAgR3JpZE9wdGlvbnMsXG4gIElDZWxsUmVuZGVyZXJQYXJhbXMsXG4gIFJvd0NsYXNzUGFyYW1zLFxuICBTdXBwcmVzc0hlYWRlcktleWJvYXJkRXZlbnRQYXJhbXMsXG4gIFN1cHByZXNzS2V5Ym9hcmRFdmVudFBhcmFtcyxcbiAgVmFsdWVGb3JtYXR0ZXJQYXJhbXMsXG59IGZyb20gJ2FnLWdyaWQtY29tbXVuaXR5JztcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgU2t5QWdHcmlkQWRhcHRlclNlcnZpY2UgfSBmcm9tICcuL2FnLWdyaWQtYWRhcHRlci5zZXJ2aWNlJztcbmltcG9ydCB7IGFwcGx5U2t5TG9va3VwUHJvcGVydGllc0RlZmF1bHRzIH0gZnJvbSAnLi9hcHBseS1sb29rdXAtcHJvcGVydGllcy1kZWZhdWx0cyc7XG5pbXBvcnQgeyBTa3lBZ0dyaWRDZWxsRWRpdG9yQXV0b2NvbXBsZXRlQ29tcG9uZW50IH0gZnJvbSAnLi9jZWxsLWVkaXRvcnMvY2VsbC1lZGl0b3ItYXV0b2NvbXBsZXRlL2NlbGwtZWRpdG9yLWF1dG9jb21wbGV0ZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2t5QWdHcmlkQ2VsbEVkaXRvckN1cnJlbmN5Q29tcG9uZW50IH0gZnJvbSAnLi9jZWxsLWVkaXRvcnMvY2VsbC1lZGl0b3ItY3VycmVuY3kvY2VsbC1lZGl0b3ItY3VycmVuY3kuY29tcG9uZW50JztcbmltcG9ydCB7IFNreUFnR3JpZENlbGxFZGl0b3JEYXRlcGlja2VyQ29tcG9uZW50IH0gZnJvbSAnLi9jZWxsLWVkaXRvcnMvY2VsbC1lZGl0b3ItZGF0ZXBpY2tlci9jZWxsLWVkaXRvci1kYXRlcGlja2VyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTa3lBZ0dyaWRDZWxsRWRpdG9yTG9va3VwQ29tcG9uZW50IH0gZnJvbSAnLi9jZWxsLWVkaXRvcnMvY2VsbC1lZGl0b3ItbG9va3VwL2NlbGwtZWRpdG9yLWxvb2t1cC5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2t5QWdHcmlkQ2VsbEVkaXRvck51bWJlckNvbXBvbmVudCB9IGZyb20gJy4vY2VsbC1lZGl0b3JzL2NlbGwtZWRpdG9yLW51bWJlci9jZWxsLWVkaXRvci1udW1iZXIuY29tcG9uZW50JztcbmltcG9ydCB7IFNreUFnR3JpZENlbGxFZGl0b3JUZXh0Q29tcG9uZW50IH0gZnJvbSAnLi9jZWxsLWVkaXRvcnMvY2VsbC1lZGl0b3ItdGV4dC9jZWxsLWVkaXRvci10ZXh0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTa3lBZ0dyaWRDZWxsUmVuZGVyZXJDdXJyZW5jeVZhbGlkYXRvckNvbXBvbmVudCB9IGZyb20gJy4vY2VsbC1yZW5kZXJlcnMvY2VsbC1yZW5kZXJlci1jdXJyZW5jeS9jZWxsLXJlbmRlcmVyLWN1cnJlbmN5LXZhbGlkYXRvci5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2t5QWdHcmlkQ2VsbFJlbmRlcmVyQ3VycmVuY3lDb21wb25lbnQgfSBmcm9tICcuL2NlbGwtcmVuZGVyZXJzL2NlbGwtcmVuZGVyZXItY3VycmVuY3kvY2VsbC1yZW5kZXJlci1jdXJyZW5jeS5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2t5QWdHcmlkQ2VsbFJlbmRlcmVyTG9va3VwQ29tcG9uZW50IH0gZnJvbSAnLi9jZWxsLXJlbmRlcmVycy9jZWxsLXJlbmRlcmVyLWxvb2t1cC9jZWxsLXJlbmRlcmVyLWxvb2t1cC5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2t5QWdHcmlkQ2VsbFJlbmRlcmVyUm93U2VsZWN0b3JDb21wb25lbnQgfSBmcm9tICcuL2NlbGwtcmVuZGVyZXJzL2NlbGwtcmVuZGVyZXItcm93LXNlbGVjdG9yL2NlbGwtcmVuZGVyZXItcm93LXNlbGVjdG9yLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTa3lBZ0dyaWRDZWxsUmVuZGVyZXJWYWxpZGF0b3JUb29sdGlwQ29tcG9uZW50IH0gZnJvbSAnLi9jZWxsLXJlbmRlcmVycy9jZWxsLXJlbmRlcmVyLXZhbGlkYXRvci10b29sdGlwL2NlbGwtcmVuZGVyZXItdmFsaWRhdG9yLXRvb2x0aXAuY29tcG9uZW50JztcbmltcG9ydCB7IFNreUFnR3JpZEhlYWRlckdyb3VwQ29tcG9uZW50IH0gZnJvbSAnLi9oZWFkZXIvaGVhZGVyLWdyb3VwLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTa3lBZ0dyaWRIZWFkZXJDb21wb25lbnQgfSBmcm9tICcuL2hlYWRlci9oZWFkZXIuY29tcG9uZW50JztcbmltcG9ydCB7IEljb25NYXBUeXBlLCBpY29uTWFwIH0gZnJvbSAnLi9pY29ucy9pY29uLW1hcCc7XG5pbXBvcnQgeyBTa3lDZWxsQ2xhc3MgfSBmcm9tICcuL3R5cGVzL2NlbGwtY2xhc3MnO1xuaW1wb3J0IHsgU2t5Q2VsbFR5cGUgfSBmcm9tICcuL3R5cGVzL2NlbGwtdHlwZSc7XG5pbXBvcnQgeyBTa3lIZWFkZXJDbGFzcyB9IGZyb20gJy4vdHlwZXMvaGVhZGVyLWNsYXNzJztcbmltcG9ydCB7IFNreUdldEdyaWRPcHRpb25zQXJncyB9IGZyb20gJy4vdHlwZXMvc2t5LWdyaWQtb3B0aW9ucyc7XG5cbmZ1bmN0aW9uIGF1dG9jb21wbGV0ZUNvbXBhcmF0b3IoXG4gIHZhbHVlMTogeyBuYW1lOiBzdHJpbmcgfSxcbiAgdmFsdWUyOiB7IG5hbWU6IHN0cmluZyB9XG4pOiBudW1iZXIge1xuICBpZiAodmFsdWUxICYmIHZhbHVlMikge1xuICAgIGlmICh2YWx1ZTEubmFtZSA+IHZhbHVlMi5uYW1lKSB7XG4gICAgICByZXR1cm4gMTtcbiAgICB9XG5cbiAgICBpZiAodmFsdWUxLm5hbWUgPCB2YWx1ZTIubmFtZSkge1xuICAgICAgcmV0dXJuIC0xO1xuICAgIH1cblxuICAgIHJldHVybiAwO1xuICB9XG5cbiAgcmV0dXJuIHZhbHVlMSA/IDEgOiAtMTtcbn1cblxuZnVuY3Rpb24gYXV0b2NvbXBsZXRlRm9ybWF0dGVyKHBhcmFtczogVmFsdWVGb3JtYXR0ZXJQYXJhbXMpOiBzdHJpbmcge1xuICByZXR1cm4gcGFyYW1zLnZhbHVlICYmIHBhcmFtcy52YWx1ZS5uYW1lO1xufVxuXG5mdW5jdGlvbiBkYXRlQ29tcGFyYXRvcihkYXRlMTogRGF0ZSB8IHN0cmluZywgZGF0ZTI6IERhdGUgfCBzdHJpbmcpOiBudW1iZXIge1xuICBsZXQgZGF0ZTF2YWx1ZSA9IGRhdGUxO1xuICBsZXQgZGF0ZTJ2YWx1ZSA9IGRhdGUyO1xuXG4gIGlmICh0eXBlb2YgZGF0ZTF2YWx1ZSA9PT0gJ3N0cmluZycpIHtcbiAgICBkYXRlMXZhbHVlID0gbmV3IERhdGUoZGF0ZTEpO1xuICB9XG5cbiAgaWYgKHR5cGVvZiBkYXRlMnZhbHVlID09PSAnc3RyaW5nJykge1xuICAgIGRhdGUydmFsdWUgPSBuZXcgRGF0ZShkYXRlMik7XG4gIH1cblxuICBpZiAoZGF0ZTF2YWx1ZSAmJiBkYXRlMnZhbHVlKSB7XG4gICAgaWYgKGRhdGUxdmFsdWUgPiBkYXRlMnZhbHVlKSB7XG4gICAgICByZXR1cm4gMTtcbiAgICB9XG5cbiAgICBpZiAoZGF0ZTF2YWx1ZSA8IGRhdGUydmFsdWUpIHtcbiAgICAgIHJldHVybiAtMTtcbiAgICB9XG5cbiAgICByZXR1cm4gMDtcbiAgfVxuXG4gIHJldHVybiBkYXRlMXZhbHVlID8gMSA6IC0xO1xufVxuXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuZnVuY3Rpb24gZ2V0VmFsaWRhdG9yQ2VsbFJlbmRlcmVyU2VsZWN0b3IoY29tcG9uZW50OiBzdHJpbmcsIGZhbGxiYWNrPzogYW55KSB7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gIHJldHVybiAocGFyYW1zOiBJQ2VsbFJlbmRlcmVyUGFyYW1zKTogYW55ID0+IHtcbiAgICBpZiAoXG4gICAgICBwYXJhbXMuY29sRGVmICYmXG4gICAgICB0eXBlb2YgcGFyYW1zLmNvbERlZi5jZWxsUmVuZGVyZXJQYXJhbXM/LnNreUNvbXBvbmVudFByb3BlcnRpZXNcbiAgICAgICAgPy52YWxpZGF0b3IgPT09ICdmdW5jdGlvbidcbiAgICApIHtcbiAgICAgIGlmIChcbiAgICAgICAgIXBhcmFtcy5jb2xEZWYuY2VsbFJlbmRlcmVyUGFyYW1zLnNreUNvbXBvbmVudFByb3BlcnRpZXMudmFsaWRhdG9yKFxuICAgICAgICAgIHBhcmFtcy52YWx1ZSxcbiAgICAgICAgICBwYXJhbXMuZGF0YSxcbiAgICAgICAgICBwYXJhbXMucm93SW5kZXhcbiAgICAgICAgKVxuICAgICAgKSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgY29tcG9uZW50LFxuICAgICAgICAgIHBhcmFtczoge1xuICAgICAgICAgICAgLi4ucGFyYW1zLmNvbERlZi5jZWxsUmVuZGVyZXJQYXJhbXMsXG4gICAgICAgICAgfSxcbiAgICAgICAgfTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGZhbGxiYWNrO1xuICB9O1xufVxuXG5sZXQgcm93Tm9kZUlkID0gLTE7XG5cbi8qKlxuICogYFNreUFnR3JpZFNlcnZpY2VgIHByb3ZpZGVzIG1ldGhvZHMgdG8gZ2V0IEFHIEdyaWQgYGdyaWRPcHRpb25zYCB0byBlbnN1cmUgZ3JpZHMgbWF0Y2ggU0tZIFVYIGZ1bmN0aW9uYWxpdHkuIFRoZSBgZ3JpZE9wdGlvbnNgIGNhbiBiZSBvdmVycmlkZGVuLCBhbmQgaW5jbHVkZSByZWdpc3RlcmVkIFNLWSBVWCBjb2x1bW4gdHlwZXMuXG4gKi9cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ2FueScsXG59KVxuZXhwb3J0IGNsYXNzIFNreUFnR3JpZFNlcnZpY2UgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICAja2V5TWFwID0gbmV3IFdlYWtNYXA8YW55LCBzdHJpbmc+KCk7XG4gICNuZ1Vuc3Vic2NyaWJlID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcbiAgI2N1cnJlbnRUaGVtZTogU2t5VGhlbWVTZXR0aW5ncyB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZDtcbiAgI2FnR3JpZEFkYXB0ZXJTZXJ2aWNlOiBTa3lBZ0dyaWRBZGFwdGVyU2VydmljZTtcbiAgI3Jlc291cmNlczogU2t5TGliUmVzb3VyY2VzU2VydmljZSB8IHVuZGVmaW5lZDtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBhZ0dyaWRBZGFwdGVyU2VydmljZTogU2t5QWdHcmlkQWRhcHRlclNlcnZpY2UsXG4gICAgQE9wdGlvbmFsKCkgdGhlbWVTdmM/OiBTa3lUaGVtZVNlcnZpY2UsXG4gICAgQE9wdGlvbmFsKCkgcmVzb3VyY2VzPzogU2t5TGliUmVzb3VyY2VzU2VydmljZVxuICApIHtcbiAgICB0aGlzLiNhZ0dyaWRBZGFwdGVyU2VydmljZSA9IGFnR3JpZEFkYXB0ZXJTZXJ2aWNlO1xuICAgIHRoaXMuI3Jlc291cmNlcyA9IHJlc291cmNlcztcblxuICAgIC8qaXN0YW5idWwgaWdub3JlIGVsc2UqL1xuICAgIGlmICh0aGVtZVN2Yykge1xuICAgICAgdGhlbWVTdmMuc2V0dGluZ3NDaGFuZ2VcbiAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuI25nVW5zdWJzY3JpYmUpKVxuICAgICAgICAuc3Vic2NyaWJlKChzZXR0aW5nc0NoYW5nZSkgPT4ge1xuICAgICAgICAgIHRoaXMuI2N1cnJlbnRUaGVtZSA9IHNldHRpbmdzQ2hhbmdlLmN1cnJlbnRTZXR0aW5ncztcbiAgICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuI25nVW5zdWJzY3JpYmUubmV4dCgpO1xuICAgIHRoaXMuI25nVW5zdWJzY3JpYmUuY29tcGxldGUoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIFtBRyBHcmlkIGBncmlkT3B0aW9uc2BdKGh0dHBzOi8vd3d3LmFnLWdyaWQuY29tL2phdmFzY3JpcHQtZ3JpZC1wcm9wZXJ0aWVzLykgd2l0aCBkZWZhdWx0IFNLWSBVWCBvcHRpb25zLCBzdHlsaW5nLCBhbmQgY2VsbCByZW5kZXJlcnMgcmVnaXN0ZXJlZCBmb3IgcmVhZC1vbmx5IGdyaWRzLlxuICAgKiBAcGFyYW0gYXJnc1xuICAgKiBAcmV0dXJuc1xuICAgKi9cbiAgcHVibGljIGdldEdyaWRPcHRpb25zKGFyZ3M6IFNreUdldEdyaWRPcHRpb25zQXJncyk6IEdyaWRPcHRpb25zIHtcbiAgICBjb25zdCBkZWZhdWx0R3JpZE9wdGlvbnMgPSB0aGlzLiNnZXREZWZhdWx0R3JpZE9wdGlvbnMoYXJncyk7XG4gICAgY29uc3QgbWVyZ2VkR3JpZE9wdGlvbnMgPSB0aGlzLiNtZXJnZUdyaWRPcHRpb25zKFxuICAgICAgZGVmYXVsdEdyaWRPcHRpb25zLFxuICAgICAgYXJncy5ncmlkT3B0aW9uc1xuICAgICk7XG5cbiAgICByZXR1cm4gbWVyZ2VkR3JpZE9wdGlvbnM7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyBbQUcgR3JpZCBgZ3JpZE9wdGlvbnNgXShodHRwczovL3d3dy5hZy1ncmlkLmNvbS9qYXZhc2NyaXB0LWdyaWQtcHJvcGVydGllcy8pIHdpdGggZGVmYXVsdCBTS1kgVVggb3B0aW9ucywgc3R5bGluZywgYW5kIGNlbGwgZWRpdG9ycyByZWdpc3RlcmVkIGZvciBlZGl0YWJsZSBncmlkcy5cbiAgICogQHBhcmFtIGFyZ3NcbiAgICogQHJldHVybnNcbiAgICovXG4gIHB1YmxpYyBnZXRFZGl0YWJsZUdyaWRPcHRpb25zKGFyZ3M6IFNreUdldEdyaWRPcHRpb25zQXJncyk6IEdyaWRPcHRpb25zIHtcbiAgICBjb25zdCBkZWZhdWx0R3JpZE9wdGlvbnMgPSB0aGlzLiNnZXREZWZhdWx0RWRpdGFibGVHcmlkT3B0aW9ucyhhcmdzKTtcbiAgICBjb25zdCBtZXJnZWRHcmlkT3B0aW9ucyA9IHRoaXMuI21lcmdlR3JpZE9wdGlvbnMoXG4gICAgICBkZWZhdWx0R3JpZE9wdGlvbnMsXG4gICAgICBhcmdzLmdyaWRPcHRpb25zXG4gICAgKTtcbiAgICBtZXJnZWRHcmlkT3B0aW9ucy5jb250ZXh0IHx8PSB7fTtcbiAgICBtZXJnZWRHcmlkT3B0aW9ucy5jb250ZXh0LmdyaWRPcHRpb25zID0ge1xuICAgICAgLi4ubWVyZ2VkR3JpZE9wdGlvbnMsXG4gICAgfTtcblxuICAgIHJldHVybiBtZXJnZWRHcmlkT3B0aW9ucztcbiAgfVxuXG4gIHB1YmxpYyBnZXRIZWFkZXJIZWlnaHQoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy4jY3VycmVudFRoZW1lPy50aGVtZT8ubmFtZSA9PT0gJ21vZGVybicgPyA2MCA6IDM3O1xuICB9XG5cbiAgI21lcmdlR3JpZE9wdGlvbnMoXG4gICAgZGVmYXVsdEdyaWRPcHRpb25zOiBHcmlkT3B0aW9ucyxcbiAgICBwcm92aWRlZEdyaWRPcHRpb25zOiBHcmlkT3B0aW9uc1xuICApOiBHcmlkT3B0aW9ucyB7XG4gICAgY29uc3QgbWVyZ2VkR3JpZE9wdGlvbnM6IEdyaWRPcHRpb25zID0ge1xuICAgICAgLi4uZGVmYXVsdEdyaWRPcHRpb25zLFxuICAgICAgLi4ucHJvdmlkZWRHcmlkT3B0aW9ucyxcbiAgICAgIGNvbXBvbmVudHM6IHtcbiAgICAgICAgLi4ucHJvdmlkZWRHcmlkT3B0aW9ucy5jb21wb25lbnRzLFxuICAgICAgICAvLyBBcHBseSBkZWZhdWx0IGNvbXBvbmVudHMgbGFzdCB0byBwcmV2ZW50IGNvbnN1bWVycyBmcm9tIG92ZXJ3cml0aW5nIG91ciBjb21wb25lbnQgdHlwZXMuXG4gICAgICAgIC4uLmRlZmF1bHRHcmlkT3B0aW9ucy5jb21wb25lbnRzLFxuICAgICAgfSxcbiAgICAgIGNvbHVtblR5cGVzOiB7XG4gICAgICAgIC4uLnByb3ZpZGVkR3JpZE9wdGlvbnMuY29sdW1uVHlwZXMsXG4gICAgICAgIC8vIGFwcGx5IGRlZmF1bHQgc2Vjb25kIHRvIHByZXZlbnQgY29uc3VtZXJzIGZyb20gb3ZlcndyaXRpbmcgb3VyIGRlZmF1bHQgY29sdW1uIHR5cGVzXG4gICAgICAgIC4uLmRlZmF1bHRHcmlkT3B0aW9ucy5jb2x1bW5UeXBlcyxcbiAgICAgIH0sXG4gICAgICBkZWZhdWx0Q29sRGVmOiB7XG4gICAgICAgIC4uLmRlZmF1bHRHcmlkT3B0aW9ucy5kZWZhdWx0Q29sRGVmLFxuICAgICAgICAuLi5wcm92aWRlZEdyaWRPcHRpb25zLmRlZmF1bHRDb2xEZWYsXG4gICAgICAgIC8vIGFsbG93IGNvbnN1bWVycyB0byBvdmVycmlkZSBhbGwgZGVmYXVsdENvbERlZiBwcm9wZXJ0aWVzIGV4Y2VwdCBjZWxsQ2xhc3NSdWxlcywgd2hpY2ggd2UgcmVzZXJ2ZSBmb3Igc3R5bGluZ1xuICAgICAgICBjZWxsQ2xhc3NSdWxlczogZGVmYXVsdEdyaWRPcHRpb25zLmRlZmF1bHRDb2xEZWY/LmNlbGxDbGFzc1J1bGVzLFxuICAgICAgfSxcbiAgICAgIGRlZmF1bHRDb2xHcm91cERlZjoge1xuICAgICAgICAuLi5kZWZhdWx0R3JpZE9wdGlvbnMuZGVmYXVsdENvbEdyb3VwRGVmLFxuICAgICAgICAuLi5wcm92aWRlZEdyaWRPcHRpb25zLmRlZmF1bHRDb2xHcm91cERlZixcbiAgICAgIH0sXG4gICAgICBpY29uczoge1xuICAgICAgICAuLi5kZWZhdWx0R3JpZE9wdGlvbnMuaWNvbnMsXG4gICAgICAgIC4uLnByb3ZpZGVkR3JpZE9wdGlvbnMuaWNvbnMsXG4gICAgICB9LFxuICAgIH07XG5cbiAgICAvLyBQcmVmZXIgYGdldFJvd05vZGVJZGAgb3ZlciBgZ2V0Tm9kZUlkYCBpZiBzZXQgYnkgdGhlIGNvbnN1bWVyLCBmb3IgYmFja3dhcmQgY29tcGF0aWJpbGl0eS5cbiAgICBpZiAobWVyZ2VkR3JpZE9wdGlvbnMuZ2V0Um93Tm9kZUlkKSB7XG4gICAgICBkZWxldGUgbWVyZ2VkR3JpZE9wdGlvbnMuZ2V0Um93SWQ7XG4gICAgfVxuXG4gICAgcmV0dXJuIG1lcmdlZEdyaWRPcHRpb25zO1xuICB9XG5cbiAgI2dldERlZmF1bHRHcmlkT3B0aW9ucyhhcmdzOiBTa3lHZXRHcmlkT3B0aW9uc0FyZ3MpOiBHcmlkT3B0aW9ucyB7XG4gICAgLy8gY2VsbENsYXNzUnVsZXMgY2FuIGJlIGZ1bmN0aW9ucyBvciBzdHJpbmcgZXhwcmVzc2lvbnNcbiAgICBjb25zdCBjZWxsQ2xhc3NSdWxlVHJ1ZUV4cHJlc3Npb24gPSAoKTogYm9vbGVhbiA9PiB0cnVlO1xuXG4gICAgZnVuY3Rpb24gZ2V0RWRpdGFibGVGbihcbiAgICAgIGlzVW5lZGl0YWJsZT86IGJvb2xlYW5cbiAgICApOiAocGFyYW1zOiBDZWxsQ2xhc3NQYXJhbXMpID0+IGJvb2xlYW4ge1xuICAgICAgcmV0dXJuIGZ1bmN0aW9uIChwYXJhbXM6IENlbGxDbGFzc1BhcmFtcyk6IGJvb2xlYW4ge1xuICAgICAgICBsZXQgaXNFZGl0YWJsZSA9IHBhcmFtcy5jb2xEZWYuZWRpdGFibGU7XG5cbiAgICAgICAgaWYgKHR5cGVvZiBpc0VkaXRhYmxlID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgY29uc3QgY29sdW1uID0gcGFyYW1zLmNvbHVtbkFwaS5nZXRDb2x1bW4ocGFyYW1zLmNvbERlZi5maWVsZCk7XG4gICAgICAgICAgaXNFZGl0YWJsZSA9IGlzRWRpdGFibGUoe1xuICAgICAgICAgICAgLi4ucGFyYW1zLFxuICAgICAgICAgICAgY29sdW1uLFxuICAgICAgICAgIH0gYXMgRWRpdGFibGVDYWxsYmFja1BhcmFtcyk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gaXNVbmVkaXRhYmxlID8gIWlzRWRpdGFibGUgOiAhIWlzRWRpdGFibGU7XG4gICAgICB9O1xuICAgIH1cblxuICAgIGNvbnN0IGVkaXRhYmxlQ2VsbENsYXNzUnVsZXMgPSB7XG4gICAgICBbU2t5Q2VsbENsYXNzLkVkaXRhYmxlXTogZ2V0RWRpdGFibGVGbigpLFxuICAgICAgW1NreUNlbGxDbGFzcy5VbmVkaXRhYmxlXTogZ2V0RWRpdGFibGVGbih0cnVlKSxcbiAgICB9O1xuXG4gICAgZnVuY3Rpb24gZ2V0VmFsaWRhdG9yRm4oKTogKHBhcmFtczogQ2VsbENsYXNzUGFyYW1zKSA9PiBib29sZWFuIHtcbiAgICAgIHJldHVybiBmdW5jdGlvbiAocGFyYW06IENlbGxDbGFzc1BhcmFtcykge1xuICAgICAgICBpZiAoXG4gICAgICAgICAgcGFyYW0uY29sRGVmICYmXG4gICAgICAgICAgdHlwZW9mIHBhcmFtLmNvbERlZi5jZWxsUmVuZGVyZXJQYXJhbXM/LnNreUNvbXBvbmVudFByb3BlcnRpZXNcbiAgICAgICAgICAgID8udmFsaWRhdG9yID09PSAnZnVuY3Rpb24nXG4gICAgICAgICkge1xuICAgICAgICAgIHJldHVybiAhcGFyYW0uY29sRGVmLmNlbGxSZW5kZXJlclBhcmFtcy5za3lDb21wb25lbnRQcm9wZXJ0aWVzLnZhbGlkYXRvcihcbiAgICAgICAgICAgIHBhcmFtLnZhbHVlLFxuICAgICAgICAgICAgcGFyYW0uZGF0YSxcbiAgICAgICAgICAgIHBhcmFtLnJvd0luZGV4XG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9O1xuICAgIH1cblxuICAgIGNvbnN0IHZhbGlkYXRvckNlbGxDbGFzc1J1bGVzID0ge1xuICAgICAgW1NreUNlbGxDbGFzcy5JbnZhbGlkXTogZ2V0VmFsaWRhdG9yRm4oKSxcbiAgICB9O1xuXG4gICAgY29uc3QgZGVmYXVsdFNreUdyaWRPcHRpb25zOiBHcmlkT3B0aW9ucyA9IHtcbiAgICAgIGNvbHVtblR5cGVzOiB7XG4gICAgICAgIFtTa3lDZWxsVHlwZS5BdXRvY29tcGxldGVdOiB7XG4gICAgICAgICAgY2VsbENsYXNzUnVsZXM6IHtcbiAgICAgICAgICAgIFtTa3lDZWxsQ2xhc3MuQXV0b2NvbXBsZXRlXTogY2VsbENsYXNzUnVsZVRydWVFeHByZXNzaW9uLFxuICAgICAgICAgICAgLi4uZWRpdGFibGVDZWxsQ2xhc3NSdWxlcyxcbiAgICAgICAgICB9LFxuICAgICAgICAgIGNlbGxFZGl0b3I6IFNreUFnR3JpZENlbGxFZGl0b3JBdXRvY29tcGxldGVDb21wb25lbnQsXG4gICAgICAgICAgdmFsdWVGb3JtYXR0ZXI6IGF1dG9jb21wbGV0ZUZvcm1hdHRlcixcbiAgICAgICAgICBjb21wYXJhdG9yOiBhdXRvY29tcGxldGVDb21wYXJhdG9yLFxuICAgICAgICAgIG1pbldpZHRoOiAxODUsXG4gICAgICAgIH0sXG4gICAgICAgIFtTa3lDZWxsVHlwZS5DdXJyZW5jeV06IHtcbiAgICAgICAgICBjZWxsQ2xhc3NSdWxlczoge1xuICAgICAgICAgICAgW1NreUNlbGxDbGFzcy5DdXJyZW5jeV06IGNlbGxDbGFzc1J1bGVUcnVlRXhwcmVzc2lvbixcbiAgICAgICAgICAgIC4uLnZhbGlkYXRvckNlbGxDbGFzc1J1bGVzLFxuICAgICAgICAgICAgLi4uZWRpdGFibGVDZWxsQ2xhc3NSdWxlcyxcbiAgICAgICAgICB9LFxuICAgICAgICAgIGNlbGxSZW5kZXJlclNlbGVjdG9yOiBnZXRWYWxpZGF0b3JDZWxsUmVuZGVyZXJTZWxlY3RvcihcbiAgICAgICAgICAgICdza3ktYWctZ3JpZC1jZWxsLXJlbmRlcmVyLWN1cnJlbmN5LXZhbGlkYXRvcicsXG4gICAgICAgICAgICB7IGNvbXBvbmVudDogJ3NreS1hZy1ncmlkLWNlbGwtcmVuZGVyZXItY3VycmVuY3knIH1cbiAgICAgICAgICApLFxuICAgICAgICAgIGNlbGxFZGl0b3I6IFNreUFnR3JpZENlbGxFZGl0b3JDdXJyZW5jeUNvbXBvbmVudCxcbiAgICAgICAgICBoZWFkZXJDbGFzczogU2t5SGVhZGVyQ2xhc3MuUmlnaHRBbGlnbmVkLFxuICAgICAgICAgIG1pbldpZHRoOiAxODUsXG4gICAgICAgIH0sXG4gICAgICAgIFtTa3lDZWxsVHlwZS5EYXRlXToge1xuICAgICAgICAgIGNlbGxDbGFzc1J1bGVzOiB7XG4gICAgICAgICAgICBbU2t5Q2VsbENsYXNzLkRhdGVdOiBjZWxsQ2xhc3NSdWxlVHJ1ZUV4cHJlc3Npb24sXG4gICAgICAgICAgICAuLi5lZGl0YWJsZUNlbGxDbGFzc1J1bGVzLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgY2VsbEVkaXRvcjogU2t5QWdHcmlkQ2VsbEVkaXRvckRhdGVwaWNrZXJDb21wb25lbnQsXG4gICAgICAgICAgY29tcGFyYXRvcjogZGF0ZUNvbXBhcmF0b3IsXG4gICAgICAgICAgbWluV2lkdGg6IHRoaXMuI2N1cnJlbnRUaGVtZT8udGhlbWU/Lm5hbWUgPT09ICdtb2Rlcm4nID8gMTgwIDogMTYwLFxuICAgICAgICAgIHZhbHVlRm9ybWF0dGVyOiAocGFyYW1zOiBWYWx1ZUZvcm1hdHRlclBhcmFtcykgPT5cbiAgICAgICAgICAgIHRoaXMuI2RhdGVGb3JtYXR0ZXIocGFyYW1zLCBhcmdzLmxvY2FsZSksXG4gICAgICAgIH0sXG4gICAgICAgIFtTa3lDZWxsVHlwZS5Mb29rdXBdOiB7XG4gICAgICAgICAgY2VsbENsYXNzUnVsZXM6IHtcbiAgICAgICAgICAgIFtTa3lDZWxsQ2xhc3MuTG9va3VwXTogY2VsbENsYXNzUnVsZVRydWVFeHByZXNzaW9uLFxuICAgICAgICAgICAgLi4uZWRpdGFibGVDZWxsQ2xhc3NSdWxlcyxcbiAgICAgICAgICB9LFxuICAgICAgICAgIGNlbGxFZGl0b3I6IFNreUFnR3JpZENlbGxFZGl0b3JMb29rdXBDb21wb25lbnQsXG4gICAgICAgICAgY2VsbFJlbmRlcmVyOiBTa3lBZ0dyaWRDZWxsUmVuZGVyZXJMb29rdXBDb21wb25lbnQsXG4gICAgICAgICAgdmFsdWVGb3JtYXR0ZXI6IChwYXJhbXMpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGxvb2t1cFByb3BlcnRpZXMgPSBhcHBseVNreUxvb2t1cFByb3BlcnRpZXNEZWZhdWx0cyhwYXJhbXMpO1xuICAgICAgICAgICAgcmV0dXJuIChwYXJhbXMudmFsdWUgfHwgW10pXG4gICAgICAgICAgICAgIC5tYXAoKHZhbHVlOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPikgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiB2YWx1ZVtsb29rdXBQcm9wZXJ0aWVzLmRlc2NyaXB0b3JQcm9wZXJ0eSBhcyBzdHJpbmddO1xuICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAuZmlsdGVyKCh2YWx1ZTogdW5rbm93bikgPT4gdmFsdWUgIT09ICcnICYmIHZhbHVlICE9PSB1bmRlZmluZWQpXG4gICAgICAgICAgICAgIC5qb2luKCc7ICcpO1xuICAgICAgICAgIH0sXG4gICAgICAgICAgbWluV2lkdGg6IDE4NSxcbiAgICAgICAgfSxcbiAgICAgICAgW1NreUNlbGxUeXBlLk51bWJlcl06IHtcbiAgICAgICAgICBjZWxsQ2xhc3NSdWxlczoge1xuICAgICAgICAgICAgW1NreUNlbGxDbGFzcy5OdW1iZXJdOiBjZWxsQ2xhc3NSdWxlVHJ1ZUV4cHJlc3Npb24sXG4gICAgICAgICAgICAuLi52YWxpZGF0b3JDZWxsQ2xhc3NSdWxlcyxcbiAgICAgICAgICAgIC4uLmVkaXRhYmxlQ2VsbENsYXNzUnVsZXMsXG4gICAgICAgICAgfSxcbiAgICAgICAgICBjZWxsUmVuZGVyZXJTZWxlY3RvcjogZ2V0VmFsaWRhdG9yQ2VsbFJlbmRlcmVyU2VsZWN0b3IoXG4gICAgICAgICAgICAnc2t5LWFnLWdyaWQtY2VsbC1yZW5kZXJlci12YWxpZGF0b3ItdG9vbHRpcCdcbiAgICAgICAgICApLFxuICAgICAgICAgIGNlbGxFZGl0b3I6IFNreUFnR3JpZENlbGxFZGl0b3JOdW1iZXJDb21wb25lbnQsXG4gICAgICAgICAgaGVhZGVyQ2xhc3M6IFNreUhlYWRlckNsYXNzLlJpZ2h0QWxpZ25lZCxcbiAgICAgICAgfSxcbiAgICAgICAgW1NreUNlbGxUeXBlLlJvd1NlbGVjdG9yXToge1xuICAgICAgICAgIGNlbGxDbGFzc1J1bGVzOiB7XG4gICAgICAgICAgICBbU2t5Q2VsbENsYXNzLlJvd1NlbGVjdG9yXTogY2VsbENsYXNzUnVsZVRydWVFeHByZXNzaW9uLFxuICAgICAgICAgICAgW1NreUNlbGxDbGFzcy5VbmVkaXRhYmxlXTogY2VsbENsYXNzUnVsZVRydWVFeHByZXNzaW9uLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgY2VsbFJlbmRlcmVyOiBTa3lBZ0dyaWRDZWxsUmVuZGVyZXJSb3dTZWxlY3RvckNvbXBvbmVudCxcbiAgICAgICAgICBoZWFkZXJOYW1lOiAnJyxcbiAgICAgICAgICBtaW5XaWR0aDogNTUsXG4gICAgICAgICAgbWF4V2lkdGg6IDU1LFxuICAgICAgICAgIHNvcnRhYmxlOiBmYWxzZSxcbiAgICAgICAgICB3aWR0aDogNTUsXG4gICAgICAgIH0sXG4gICAgICAgIFtTa3lDZWxsVHlwZS5UZXh0XToge1xuICAgICAgICAgIGNlbGxDbGFzc1J1bGVzOiB7XG4gICAgICAgICAgICBbU2t5Q2VsbENsYXNzLlRleHRdOiBjZWxsQ2xhc3NSdWxlVHJ1ZUV4cHJlc3Npb24sXG4gICAgICAgICAgICAuLi52YWxpZGF0b3JDZWxsQ2xhc3NSdWxlcyxcbiAgICAgICAgICAgIC4uLmVkaXRhYmxlQ2VsbENsYXNzUnVsZXMsXG4gICAgICAgICAgfSxcbiAgICAgICAgICBjZWxsRWRpdG9yOiBTa3lBZ0dyaWRDZWxsRWRpdG9yVGV4dENvbXBvbmVudCxcbiAgICAgICAgICBjZWxsUmVuZGVyZXJTZWxlY3RvcjogZ2V0VmFsaWRhdG9yQ2VsbFJlbmRlcmVyU2VsZWN0b3IoXG4gICAgICAgICAgICAnc2t5LWFnLWdyaWQtY2VsbC1yZW5kZXJlci12YWxpZGF0b3ItdG9vbHRpcCdcbiAgICAgICAgICApLFxuICAgICAgICB9LFxuICAgICAgICBbU2t5Q2VsbFR5cGUuVmFsaWRhdG9yXToge1xuICAgICAgICAgIGNlbGxDbGFzc1J1bGVzOiB7XG4gICAgICAgICAgICAuLi52YWxpZGF0b3JDZWxsQ2xhc3NSdWxlcyxcbiAgICAgICAgICAgIC4uLmVkaXRhYmxlQ2VsbENsYXNzUnVsZXMsXG4gICAgICAgICAgfSxcbiAgICAgICAgICBjZWxsUmVuZGVyZXJTZWxlY3RvcjogZ2V0VmFsaWRhdG9yQ2VsbFJlbmRlcmVyU2VsZWN0b3IoXG4gICAgICAgICAgICAnc2t5LWFnLWdyaWQtY2VsbC1yZW5kZXJlci12YWxpZGF0b3ItdG9vbHRpcCdcbiAgICAgICAgICApLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIGRlZmF1bHRDb2xEZWY6IHtcbiAgICAgICAgY2VsbENsYXNzUnVsZXM6IGVkaXRhYmxlQ2VsbENsYXNzUnVsZXMsXG4gICAgICAgIGhlYWRlckNvbXBvbmVudDogU2t5QWdHcmlkSGVhZGVyQ29tcG9uZW50LFxuICAgICAgICBtaW5XaWR0aDogMTAwLFxuICAgICAgICByZXNpemFibGU6IHRydWUsXG4gICAgICAgIHNvcnRhYmxlOiB0cnVlLFxuICAgICAgICBzdXBwcmVzc0hlYWRlcktleWJvYXJkRXZlbnQ6IChcbiAgICAgICAgICBrZXlwcmVzczogU3VwcHJlc3NIZWFkZXJLZXlib2FyZEV2ZW50UGFyYW1zXG4gICAgICAgICkgPT4ga2V5cHJlc3MuZXZlbnQuY29kZSA9PT0gJ1RhYicsXG4gICAgICAgIHN1cHByZXNzS2V5Ym9hcmRFdmVudDogKGtleXByZXNzOiBTdXBwcmVzc0tleWJvYXJkRXZlbnRQYXJhbXMpID0+XG4gICAgICAgICAgdGhpcy4jc3VwcHJlc3NUYWIoa2V5cHJlc3MpLFxuICAgICAgfSxcbiAgICAgIGRlZmF1bHRDb2xHcm91cERlZjoge1xuICAgICAgICBoZWFkZXJHcm91cENvbXBvbmVudDogU2t5QWdHcmlkSGVhZGVyR3JvdXBDb21wb25lbnQsXG4gICAgICB9LFxuICAgICAgZG9tTGF5b3V0OiAnYXV0b0hlaWdodCcsXG4gICAgICBlbnN1cmVEb21PcmRlcjogdHJ1ZSxcbiAgICAgIGVudGVyTW92ZXNEb3duQWZ0ZXJFZGl0OiB0cnVlLFxuICAgICAgY29tcG9uZW50czoge1xuICAgICAgICAnc2t5LWFnLWdyaWQtY2VsbC1yZW5kZXJlci1jdXJyZW5jeSc6XG4gICAgICAgICAgU2t5QWdHcmlkQ2VsbFJlbmRlcmVyQ3VycmVuY3lDb21wb25lbnQsXG4gICAgICAgICdza3ktYWctZ3JpZC1jZWxsLXJlbmRlcmVyLWN1cnJlbmN5LXZhbGlkYXRvcic6XG4gICAgICAgICAgU2t5QWdHcmlkQ2VsbFJlbmRlcmVyQ3VycmVuY3lWYWxpZGF0b3JDb21wb25lbnQsXG4gICAgICAgICdza3ktYWctZ3JpZC1jZWxsLXJlbmRlcmVyLXZhbGlkYXRvci10b29sdGlwJzpcbiAgICAgICAgICBTa3lBZ0dyaWRDZWxsUmVuZGVyZXJWYWxpZGF0b3JUb29sdGlwQ29tcG9uZW50LFxuICAgICAgfSxcbiAgICAgIGdldFJvd0lkOiAocGFyYW1zKSA9PiB7XG4gICAgICAgIGNvbnN0IGRhdGFJZCA9IHBhcmFtcy5kYXRhLmlkO1xuICAgICAgICBpZiAoZGF0YUlkICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICByZXR1cm4gYCR7cGFyYW1zLmRhdGEuaWR9YDtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIXRoaXMuI2tleU1hcC5oYXMocGFyYW1zLmRhdGEpKSB7XG4gICAgICAgICAgdGhpcy4ja2V5TWFwLnNldChwYXJhbXMuZGF0YSwgYCR7cm93Tm9kZUlkLS19YCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMuI2tleU1hcC5nZXQocGFyYW1zLmRhdGEpIGFzIHN0cmluZztcbiAgICAgIH0sXG4gICAgICBnZXRSb3dDbGFzczogKHBhcmFtczogUm93Q2xhc3NQYXJhbXMpID0+IHtcbiAgICAgICAgaWYgKHBhcmFtcy5ub2RlLmlkKSB7XG4gICAgICAgICAgcmV0dXJuIGBza3ktYWctZ3JpZC1yb3ctJHtwYXJhbXMubm9kZS5pZH1gO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBoZWFkZXJIZWlnaHQ6IHRoaXMuZ2V0SGVhZGVySGVpZ2h0KCksXG4gICAgICBpY29uczoge1xuICAgICAgICBzb3J0RGVzY2VuZGluZzogdGhpcy4jZ2V0SWNvblRlbXBsYXRlKCdzb3J0RGVzY2VuZGluZycpLFxuICAgICAgICBzb3J0QXNjZW5kaW5nOiB0aGlzLiNnZXRJY29uVGVtcGxhdGUoJ3NvcnRBc2NlbmRpbmcnKSxcbiAgICAgICAgY29sdW1uTW92ZU1vdmU6IHRoaXMuI2dldEljb25UZW1wbGF0ZSgnY29sdW1uTW92ZU1vdmUnKSxcbiAgICAgICAgY29sdW1uTW92ZUhpZGU6IHRoaXMuI2dldEljb25UZW1wbGF0ZSgnY29sdW1uTW92ZUhpZGUnKSxcbiAgICAgICAgY29sdW1uTW92ZUxlZnQ6IHRoaXMuI2dldEljb25UZW1wbGF0ZSgnY29sdW1uTW92ZUxlZnQnKSxcbiAgICAgICAgY29sdW1uTW92ZVJpZ2h0OiB0aGlzLiNnZXRJY29uVGVtcGxhdGUoJ2NvbHVtbk1vdmVSaWdodCcpLFxuICAgICAgICBjb2x1bW5Nb3ZlUGluOiB0aGlzLiNnZXRJY29uVGVtcGxhdGUoJ2NvbHVtbk1vdmVQaW4nKSxcbiAgICAgIH0sXG4gICAgICBvbkNlbGxGb2N1c2VkOiAoKSA9PiB0aGlzLiNvbkNlbGxGb2N1c2VkKCksXG4gICAgICByb3dIZWlnaHQ6IHRoaXMuI2dldFJvd0hlaWdodCgpLFxuICAgICAgZ2V0Um93SGVpZ2h0OiAoKSA9PiB0aGlzLiNnZXRSb3dIZWlnaHQoKSxcbiAgICAgIHJvd011bHRpU2VsZWN0V2l0aENsaWNrOiB0cnVlLFxuICAgICAgcm93U2VsZWN0aW9uOiAnbXVsdGlwbGUnLFxuICAgICAgc2luZ2xlQ2xpY2tFZGl0OiB0cnVlLFxuICAgICAgc29ydGluZ09yZGVyOiBbJ2Rlc2MnLCAnYXNjJywgbnVsbF0sXG4gICAgICBzdXBwcmVzc1Jvd0NsaWNrU2VsZWN0aW9uOiB0cnVlLFxuICAgICAgc3VwcHJlc3NEcmFnTGVhdmVIaWRlc0NvbHVtbnM6IHRydWUsXG4gICAgfTtcblxuICAgIGNvbnN0IGNvbHVtblR5cGVzID0gZGVmYXVsdFNreUdyaWRPcHRpb25zLmNvbHVtblR5cGVzIGFzIFJlY29yZDxcbiAgICAgIHN0cmluZyxcbiAgICAgIENvbERlZlxuICAgID47XG5cbiAgICBjb2x1bW5UeXBlc1tTa3lDZWxsVHlwZS5DdXJyZW5jeVZhbGlkYXRvcl0gPSB7XG4gICAgICAuLi5jb2x1bW5UeXBlc1tTa3lDZWxsVHlwZS5DdXJyZW5jeV0sXG4gICAgICBjZWxsUmVuZGVyZXJQYXJhbXM6IHtcbiAgICAgICAgc2t5Q29tcG9uZW50UHJvcGVydGllczoge1xuICAgICAgICAgIHZhbGlkYXRvcjogKHZhbHVlOiBzdHJpbmcpOiBib29sZWFuID0+IHtcbiAgICAgICAgICAgIHJldHVybiAhIWAke3ZhbHVlIHx8ICcnfWAubWF0Y2goL15bXjAtOV0qKFxcZCtbLC5dPykrXFxkKlteMC05XSokLyk7XG4gICAgICAgICAgfSxcbiAgICAgICAgICB2YWxpZGF0b3JNZXNzYWdlOiAnUGxlYXNlIGVudGVyIGEgdmFsaWQgY3VycmVuY3knLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9O1xuICAgIC8qaXN0YW5idWwgaWdub3JlIGVsc2UqL1xuICAgIGlmICh0aGlzLiNyZXNvdXJjZXMpIHtcbiAgICAgIHRoaXMuI3Jlc291cmNlc1xuICAgICAgICAuZ2V0U3RyaW5nKCdza3lfYWdfZ3JpZF9jZWxsX3JlbmRlcmVyX2N1cnJlbmN5X3ZhbGlkYXRvcl9tZXNzYWdlJylcbiAgICAgICAgLnN1YnNjcmliZSgodmFsdWUpID0+IHtcbiAgICAgICAgICBjb2x1bW5UeXBlc1tcbiAgICAgICAgICAgIFNreUNlbGxUeXBlLkN1cnJlbmN5VmFsaWRhdG9yXG4gICAgICAgICAgXS5jZWxsUmVuZGVyZXJQYXJhbXMuc2t5Q29tcG9uZW50UHJvcGVydGllcy52YWxpZGF0b3JNZXNzYWdlID0gdmFsdWU7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIGNvbHVtblR5cGVzW1NreUNlbGxUeXBlLk51bWJlclZhbGlkYXRvcl0gPSB7XG4gICAgICAuLi5jb2x1bW5UeXBlc1tTa3lDZWxsVHlwZS5WYWxpZGF0b3JdLFxuICAgICAgLi4uY29sdW1uVHlwZXNbU2t5Q2VsbFR5cGUuTnVtYmVyXSxcbiAgICAgIGNlbGxDbGFzc1J1bGVzOiB7XG4gICAgICAgIC4uLmNvbHVtblR5cGVzW1NreUNlbGxUeXBlLlZhbGlkYXRvcl0uY2VsbENsYXNzUnVsZXMsXG4gICAgICAgIC4uLmNvbHVtblR5cGVzW1NreUNlbGxUeXBlLk51bWJlcl0uY2VsbENsYXNzUnVsZXMsXG4gICAgICB9LFxuICAgICAgY2VsbFJlbmRlcmVyUGFyYW1zOiB7XG4gICAgICAgIHNreUNvbXBvbmVudFByb3BlcnRpZXM6IHtcbiAgICAgICAgICB2YWxpZGF0b3I6ICh2YWx1ZTogc3RyaW5nKTogYm9vbGVhbiA9PiB7XG4gICAgICAgICAgICByZXR1cm4gISF2YWx1ZSAmJiAhaXNOYU4ocGFyc2VGbG9hdCh2YWx1ZSkpO1xuICAgICAgICAgIH0sXG4gICAgICAgICAgdmFsaWRhdG9yTWVzc2FnZTogJ1BsZWFzZSBlbnRlciBhIHZhbGlkIG51bWJlcicsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH07XG4gICAgLyppc3RhbmJ1bCBpZ25vcmUgZWxzZSovXG4gICAgaWYgKHRoaXMuI3Jlc291cmNlcykge1xuICAgICAgdGhpcy4jcmVzb3VyY2VzXG4gICAgICAgIC5nZXRTdHJpbmcoJ3NreV9hZ19ncmlkX2NlbGxfcmVuZGVyZXJfbnVtYmVyX3ZhbGlkYXRvcl9tZXNzYWdlJylcbiAgICAgICAgLnN1YnNjcmliZSgodmFsdWUpID0+IHtcbiAgICAgICAgICBjb2x1bW5UeXBlc1tcbiAgICAgICAgICAgIFNreUNlbGxUeXBlLk51bWJlclZhbGlkYXRvclxuICAgICAgICAgIF0uY2VsbFJlbmRlcmVyUGFyYW1zLnNreUNvbXBvbmVudFByb3BlcnRpZXMudmFsaWRhdG9yTWVzc2FnZSA9IHZhbHVlO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICByZXR1cm4gZGVmYXVsdFNreUdyaWRPcHRpb25zO1xuICB9XG5cbiAgI29uQ2VsbEZvY3VzZWQoKTogdm9pZCB7XG4gICAgY29uc3QgY3VycmVudEVsZW1lbnQgPSB0aGlzLiNhZ0dyaWRBZGFwdGVyU2VydmljZS5nZXRGb2N1c2VkRWxlbWVudCgpO1xuXG4gICAgdGhpcy4jYWdHcmlkQWRhcHRlclNlcnZpY2UuZm9jdXNPbkZvY3VzYWJsZUNoaWxkcmVuKGN1cnJlbnRFbGVtZW50KTtcbiAgfVxuXG4gICNnZXREZWZhdWx0RWRpdGFibGVHcmlkT3B0aW9ucyhhcmdzOiBTa3lHZXRHcmlkT3B0aW9uc0FyZ3MpOiBHcmlkT3B0aW9ucyB7XG4gICAgY29uc3QgZGVmYXVsdEdyaWRPcHRpb25zID0gdGhpcy4jZ2V0RGVmYXVsdEdyaWRPcHRpb25zKGFyZ3MpO1xuXG4gICAgZGVmYXVsdEdyaWRPcHRpb25zLnJvd1NlbGVjdGlvbiA9IHVuZGVmaW5lZDtcblxuICAgIHJldHVybiBkZWZhdWx0R3JpZE9wdGlvbnM7XG4gIH1cblxuICAjZGF0ZUZvcm1hdHRlcihcbiAgICBwYXJhbXM6IFZhbHVlRm9ybWF0dGVyUGFyYW1zLFxuICAgIGxvY2FsZTogc3RyaW5nID0gJ2VuLXVzJ1xuICApOiBzdHJpbmcge1xuICAgIGNvbnN0IGRhdGVDb25maWcgPSB7IHllYXI6ICdudW1lcmljJywgbW9udGg6ICcyLWRpZ2l0JywgZGF5OiAnMi1kaWdpdCcgfTtcbiAgICBsZXQgZGF0ZTogRGF0ZSA9IHBhcmFtcy52YWx1ZTtcblxuICAgIGlmIChkYXRlICYmIHR5cGVvZiBkYXRlID09PSAnc3RyaW5nJykge1xuICAgICAgZGF0ZSA9IG5ldyBEYXRlKHBhcmFtcy52YWx1ZSk7XG4gICAgfVxuXG4gICAgY29uc3QgZm9ybWF0dGVkRGF0ZSA9XG4gICAgICBkYXRlICYmXG4gICAgICBkYXRlLnRvTG9jYWxlRGF0ZVN0cmluZyAmJlxuICAgICAgZGF0ZS50b0xvY2FsZURhdGVTdHJpbmcobG9jYWxlLCBkYXRlQ29uZmlnIGFzIEludGwuRGF0ZVRpbWVGb3JtYXRPcHRpb25zKTtcblxuICAgIGlmIChkYXRlICYmIGRhdGUuZ2V0VGltZSAmJiAhaXNOYU4oZGF0ZS5nZXRUaW1lKCkpKSB7XG4gICAgICByZXR1cm4gZm9ybWF0dGVkRGF0ZTtcbiAgICB9XG5cbiAgICByZXR1cm4gJyc7XG4gIH1cblxuICAjZ2V0SWNvblRlbXBsYXRlKGljb25OYW1lOiBrZXlvZiBJY29uTWFwVHlwZSk6ICgpID0+IHN0cmluZyB7XG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIGNvbnN0IGljb24gPSBpY29uTWFwW2ljb25OYW1lXTtcbiAgICAgIGlmICh0aGlzLiNjdXJyZW50VGhlbWU/LnRoZW1lLm5hbWUgPT09ICdtb2Rlcm4nICYmIGljb24uc2t5SWNvbikge1xuICAgICAgICByZXR1cm4gYDxpIGFyaWEtaGlkZGVuPVwidHJ1ZVwiIGNsYXNzPVwic2t5LWktJHtpY29uLnNreUljb259XCI+PC9pPmA7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gYDxpIGFyaWEtaGlkZGVuPVwidHJ1ZVwiIGNsYXNzPVwiZmEgZmEtJHtpY29uLmZhSWNvbn1cIj48L2k+YDtcbiAgICAgIH1cbiAgICB9O1xuICB9XG5cbiAgI3N1cHByZXNzVGFiKHBhcmFtczogU3VwcHJlc3NLZXlib2FyZEV2ZW50UGFyYW1zKTogYm9vbGVhbiB7XG4gICAgaWYgKHBhcmFtcy5ldmVudC5jb2RlID09PSAnVGFiJykge1xuICAgICAgaWYgKHBhcmFtcy5lZGl0aW5nKSB7XG4gICAgICAgIGNvbnN0IGN1cnJlbnRseUZvY3VzZWRFbCA9XG4gICAgICAgICAgdGhpcy4jYWdHcmlkQWRhcHRlclNlcnZpY2UuZ2V0Rm9jdXNlZEVsZW1lbnQoKTtcbiAgICAgICAgLy8gaW5saW5lIGNlbGwgZWRpdG9ycyBoYXZlIHRoZSAnYWctY2VsbCcgY2xhc3MsIHdoaWxlIHBvcHVwIGVkaXRvcnMgaGF2ZSB0aGUgJ2FnLXBvcHVwLWVkaXRvcicgY2xhc3NcbiAgICAgICAgY29uc3QgY2VsbEVsID0gdGhpcy4jYWdHcmlkQWRhcHRlclNlcnZpY2UuZ2V0RWxlbWVudE9yUGFyZW50V2l0aENsYXNzKFxuICAgICAgICAgIGN1cnJlbnRseUZvY3VzZWRFbCxcbiAgICAgICAgICAnYWctY2VsbCdcbiAgICAgICAgKTtcbiAgICAgICAgY29uc3QgcG9wdXBFbCA9IHRoaXMuI2FnR3JpZEFkYXB0ZXJTZXJ2aWNlLmdldEVsZW1lbnRPclBhcmVudFdpdGhDbGFzcyhcbiAgICAgICAgICBjdXJyZW50bHlGb2N1c2VkRWwsXG4gICAgICAgICAgJ2FnLXBvcHVwLWVkaXRvcidcbiAgICAgICAgKTtcbiAgICAgICAgY29uc3QgcGFyZW50RWwgPSBjZWxsRWwgfHwgcG9wdXBFbDtcblxuICAgICAgICBjb25zdCBuZXh0Rm9jdXNhYmxlRWxlbWVudEluQ2VsbCA9XG4gICAgICAgICAgdGhpcy4jYWdHcmlkQWRhcHRlclNlcnZpY2UuZ2V0TmV4dEZvY3VzYWJsZUVsZW1lbnQoXG4gICAgICAgICAgICBjdXJyZW50bHlGb2N1c2VkRWwsXG4gICAgICAgICAgICBwYXJlbnRFbCxcbiAgICAgICAgICAgIHBhcmFtcy5ldmVudC5zaGlmdEtleVxuICAgICAgICAgICk7XG4gICAgICAgIHJldHVybiAhIW5leHRGb2N1c2FibGVFbGVtZW50SW5DZWxsO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gICNnZXRSb3dIZWlnaHQoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy4jY3VycmVudFRoZW1lPy50aGVtZT8ubmFtZSA9PT0gJ21vZGVybicgPyA2MCA6IDM4O1xuICB9XG59XG4iXX0=
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
var _SkyAgGridCellEditorAutocompleteComponent_triggerType, _SkyAgGridCellEditorAutocompleteComponent_params;
|
|
1
|
+
var _SkyAgGridCellEditorAutocompleteComponent_instances, _SkyAgGridCellEditorAutocompleteComponent_autocompleteOpen, _SkyAgGridCellEditorAutocompleteComponent_triggerType, _SkyAgGridCellEditorAutocompleteComponent_params, _SkyAgGridCellEditorAutocompleteComponent_elementRef, _SkyAgGridCellEditorAutocompleteComponent_stopEditingOnBlur;
|
|
2
2
|
import { __classPrivateFieldGet, __classPrivateFieldSet } from "tslib";
|
|
3
|
-
import { ChangeDetectionStrategy, Component, ElementRef, ViewChild, } from '@angular/core';
|
|
3
|
+
import { ChangeDetectionStrategy, Component, ElementRef, HostListener, ViewChild, inject, } from '@angular/core';
|
|
4
4
|
import { UntypedFormControl, UntypedFormGroup } from '@angular/forms';
|
|
5
5
|
import { SkyAgGridCellEditorInitialAction } from '../../types/cell-editor-initial-action';
|
|
6
6
|
import { SkyAgGridCellEditorUtils } from '../../types/cell-editor-utils';
|
|
@@ -13,12 +13,18 @@ import * as i3 from "@skyux/i18n";
|
|
|
13
13
|
*/
|
|
14
14
|
export class SkyAgGridCellEditorAutocompleteComponent {
|
|
15
15
|
constructor() {
|
|
16
|
+
_SkyAgGridCellEditorAutocompleteComponent_instances.add(this);
|
|
16
17
|
this.editorForm = new UntypedFormGroup({
|
|
17
18
|
selection: new UntypedFormControl(),
|
|
18
19
|
});
|
|
19
20
|
this.skyComponentProperties = {};
|
|
21
|
+
_SkyAgGridCellEditorAutocompleteComponent_autocompleteOpen.set(this, false);
|
|
20
22
|
_SkyAgGridCellEditorAutocompleteComponent_triggerType.set(this, void 0);
|
|
21
23
|
_SkyAgGridCellEditorAutocompleteComponent_params.set(this, void 0);
|
|
24
|
+
_SkyAgGridCellEditorAutocompleteComponent_elementRef.set(this, inject(ElementRef));
|
|
25
|
+
}
|
|
26
|
+
onBlur() {
|
|
27
|
+
__classPrivateFieldGet(this, _SkyAgGridCellEditorAutocompleteComponent_instances, "m", _SkyAgGridCellEditorAutocompleteComponent_stopEditingOnBlur).call(this);
|
|
22
28
|
}
|
|
23
29
|
agInit(params) {
|
|
24
30
|
__classPrivateFieldSet(this, _SkyAgGridCellEditorAutocompleteComponent_params, params, "f");
|
|
@@ -61,15 +67,28 @@ export class SkyAgGridCellEditorAutocompleteComponent {
|
|
|
61
67
|
const val = this.editorForm.get('selection')?.value;
|
|
62
68
|
return val !== undefined && val !== null ? val : undefined;
|
|
63
69
|
}
|
|
70
|
+
onAutocompleteOpenChange($event) {
|
|
71
|
+
__classPrivateFieldSet(this, _SkyAgGridCellEditorAutocompleteComponent_autocompleteOpen, $event, "f");
|
|
72
|
+
__classPrivateFieldGet(this, _SkyAgGridCellEditorAutocompleteComponent_instances, "m", _SkyAgGridCellEditorAutocompleteComponent_stopEditingOnBlur).call(this);
|
|
73
|
+
}
|
|
64
74
|
}
|
|
65
|
-
_SkyAgGridCellEditorAutocompleteComponent_triggerType = new WeakMap(), _SkyAgGridCellEditorAutocompleteComponent_params = new WeakMap()
|
|
75
|
+
_SkyAgGridCellEditorAutocompleteComponent_autocompleteOpen = new WeakMap(), _SkyAgGridCellEditorAutocompleteComponent_triggerType = new WeakMap(), _SkyAgGridCellEditorAutocompleteComponent_params = new WeakMap(), _SkyAgGridCellEditorAutocompleteComponent_elementRef = new WeakMap(), _SkyAgGridCellEditorAutocompleteComponent_instances = new WeakSet(), _SkyAgGridCellEditorAutocompleteComponent_stopEditingOnBlur = function _SkyAgGridCellEditorAutocompleteComponent_stopEditingOnBlur() {
|
|
76
|
+
if (!__classPrivateFieldGet(this, _SkyAgGridCellEditorAutocompleteComponent_autocompleteOpen, "f") &&
|
|
77
|
+
__classPrivateFieldGet(this, _SkyAgGridCellEditorAutocompleteComponent_params, "f")?.context?.gridOptions?.stopEditingWhenCellsLoseFocus &&
|
|
78
|
+
!__classPrivateFieldGet(this, _SkyAgGridCellEditorAutocompleteComponent_elementRef, "f").nativeElement.matches(':focus-within')) {
|
|
79
|
+
__classPrivateFieldGet(this, _SkyAgGridCellEditorAutocompleteComponent_params, "f")?.api.stopEditing();
|
|
80
|
+
}
|
|
81
|
+
};
|
|
66
82
|
SkyAgGridCellEditorAutocompleteComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SkyAgGridCellEditorAutocompleteComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
67
|
-
SkyAgGridCellEditorAutocompleteComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: SkyAgGridCellEditorAutocompleteComponent, selector: "sky-ag-grid-cell-editor-autocomplete", viewQueries: [{ propertyName: "input", first: true, predicate: ["skyCellEditorAutocomplete"], descendants: true, read: ElementRef }], ngImport: i0, template: "<div class=\"sky-ag-grid-cell-editor-autocomplete\" [formGroup]=\"editorForm\">\n <sky-autocomplete\n [data]=\"skyComponentProperties.data\"\n [debounceTime]=\"skyComponentProperties.debounceTime\"\n [descriptorProperty]=\"skyComponentProperties.descriptorProperty\"\n [propertiesToSearch]=\"skyComponentProperties.propertiesToSearch\"\n [search]=\"skyComponentProperties.search\"\n [searchFilters]=\"skyComponentProperties.searchFilters\"\n [searchResultsLimit]=\"skyComponentProperties.searchResultsLimit\"\n [searchResultTemplate]=\"skyComponentProperties.searchResultTemplate\"\n [searchTextMinimumCharacters]=\"\n skyComponentProperties.searchTextMinimumCharacters\n \"\n (selectionChange)=\"\n skyComponentProperties.selectionChange &&\n skyComponentProperties.selectionChange($event)\n \"\n >\n <input\n formControlName=\"selection\"\n skyAutocomplete\n #skyCellEditorAutocomplete\n type=\"text\"\n [attr.aria-label]=\"\n 'sky_ag_grid_cell_editor_autocomplete_aria_label'\n | skyLibResources : columnHeader : rowNumber\n \"\n />\n </sky-autocomplete>\n</div>\n", styles: ["sky-autocomplete input{border:none;box-shadow:none}\n"], dependencies: [{ kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i2.λ2, selector: "sky-autocomplete", inputs: ["ariaLabelledBy", "data", "debounceTime", "descriptorProperty", "enableShowMore", "messageStream", "wrapperClass", "propertiesToSearch", "search", "searchResultTemplate", "searchTextMinimumCharacters", "searchFilters", "searchResultsLimit", "showAddButton", "noResultsFoundText", "searchAsyncDisabled"], outputs: ["addClick", "showMoreClick", "selectionChange", "searchAsync"] }, { kind: "directive", type: i2.λ1, selector: "input[skyAutocomplete], textarea[skyAutocomplete]", inputs: ["autocompleteAttribute", "disabled"] }, { kind: "pipe", type: i3.SkyLibResourcesPipe, name: "skyLibResources" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
83
|
+
SkyAgGridCellEditorAutocompleteComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: SkyAgGridCellEditorAutocompleteComponent, selector: "sky-ag-grid-cell-editor-autocomplete", host: { listeners: { "blur": "onBlur()" } }, viewQueries: [{ propertyName: "input", first: true, predicate: ["skyCellEditorAutocomplete"], descendants: true, read: ElementRef }], ngImport: i0, template: "<div class=\"sky-ag-grid-cell-editor-autocomplete\" [formGroup]=\"editorForm\">\n <sky-autocomplete\n [data]=\"skyComponentProperties.data\"\n [debounceTime]=\"skyComponentProperties.debounceTime\"\n [descriptorProperty]=\"skyComponentProperties.descriptorProperty\"\n [propertiesToSearch]=\"skyComponentProperties.propertiesToSearch\"\n [search]=\"skyComponentProperties.search\"\n [searchFilters]=\"skyComponentProperties.searchFilters\"\n [searchResultsLimit]=\"skyComponentProperties.searchResultsLimit\"\n [searchResultTemplate]=\"skyComponentProperties.searchResultTemplate\"\n [searchTextMinimumCharacters]=\"\n skyComponentProperties.searchTextMinimumCharacters\n \"\n (selectionChange)=\"\n skyComponentProperties.selectionChange &&\n skyComponentProperties.selectionChange($event)\n \"\n (openChange)=\"onAutocompleteOpenChange($event)\"\n >\n <input\n formControlName=\"selection\"\n skyAutocomplete\n #skyCellEditorAutocomplete\n type=\"text\"\n [attr.aria-label]=\"\n 'sky_ag_grid_cell_editor_autocomplete_aria_label'\n | skyLibResources : columnHeader : rowNumber\n \"\n />\n </sky-autocomplete>\n</div>\n", styles: ["sky-autocomplete input{border:none;box-shadow:none}\n"], dependencies: [{ kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i2.λ2, selector: "sky-autocomplete", inputs: ["ariaLabelledBy", "data", "debounceTime", "descriptorProperty", "enableShowMore", "messageStream", "wrapperClass", "propertiesToSearch", "search", "searchResultTemplate", "searchTextMinimumCharacters", "searchFilters", "searchResultsLimit", "showAddButton", "noResultsFoundText", "searchAsyncDisabled"], outputs: ["addClick", "showMoreClick", "selectionChange", "searchAsync", "openChange"] }, { kind: "directive", type: i2.λ1, selector: "input[skyAutocomplete], textarea[skyAutocomplete]", inputs: ["autocompleteAttribute", "disabled"] }, { kind: "pipe", type: i3.SkyLibResourcesPipe, name: "skyLibResources" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
68
84
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SkyAgGridCellEditorAutocompleteComponent, decorators: [{
|
|
69
85
|
type: Component,
|
|
70
|
-
args: [{ selector: 'sky-ag-grid-cell-editor-autocomplete', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"sky-ag-grid-cell-editor-autocomplete\" [formGroup]=\"editorForm\">\n <sky-autocomplete\n [data]=\"skyComponentProperties.data\"\n [debounceTime]=\"skyComponentProperties.debounceTime\"\n [descriptorProperty]=\"skyComponentProperties.descriptorProperty\"\n [propertiesToSearch]=\"skyComponentProperties.propertiesToSearch\"\n [search]=\"skyComponentProperties.search\"\n [searchFilters]=\"skyComponentProperties.searchFilters\"\n [searchResultsLimit]=\"skyComponentProperties.searchResultsLimit\"\n [searchResultTemplate]=\"skyComponentProperties.searchResultTemplate\"\n [searchTextMinimumCharacters]=\"\n skyComponentProperties.searchTextMinimumCharacters\n \"\n (selectionChange)=\"\n skyComponentProperties.selectionChange &&\n skyComponentProperties.selectionChange($event)\n \"\n >\n <input\n formControlName=\"selection\"\n skyAutocomplete\n #skyCellEditorAutocomplete\n type=\"text\"\n [attr.aria-label]=\"\n 'sky_ag_grid_cell_editor_autocomplete_aria_label'\n | skyLibResources : columnHeader : rowNumber\n \"\n />\n </sky-autocomplete>\n</div>\n", styles: ["sky-autocomplete input{border:none;box-shadow:none}\n"] }]
|
|
86
|
+
args: [{ selector: 'sky-ag-grid-cell-editor-autocomplete', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"sky-ag-grid-cell-editor-autocomplete\" [formGroup]=\"editorForm\">\n <sky-autocomplete\n [data]=\"skyComponentProperties.data\"\n [debounceTime]=\"skyComponentProperties.debounceTime\"\n [descriptorProperty]=\"skyComponentProperties.descriptorProperty\"\n [propertiesToSearch]=\"skyComponentProperties.propertiesToSearch\"\n [search]=\"skyComponentProperties.search\"\n [searchFilters]=\"skyComponentProperties.searchFilters\"\n [searchResultsLimit]=\"skyComponentProperties.searchResultsLimit\"\n [searchResultTemplate]=\"skyComponentProperties.searchResultTemplate\"\n [searchTextMinimumCharacters]=\"\n skyComponentProperties.searchTextMinimumCharacters\n \"\n (selectionChange)=\"\n skyComponentProperties.selectionChange &&\n skyComponentProperties.selectionChange($event)\n \"\n (openChange)=\"onAutocompleteOpenChange($event)\"\n >\n <input\n formControlName=\"selection\"\n skyAutocomplete\n #skyCellEditorAutocomplete\n type=\"text\"\n [attr.aria-label]=\"\n 'sky_ag_grid_cell_editor_autocomplete_aria_label'\n | skyLibResources : columnHeader : rowNumber\n \"\n />\n </sky-autocomplete>\n</div>\n", styles: ["sky-autocomplete input{border:none;box-shadow:none}\n"] }]
|
|
71
87
|
}], propDecorators: { input: [{
|
|
72
88
|
type: ViewChild,
|
|
73
89
|
args: ['skyCellEditorAutocomplete', { read: ElementRef }]
|
|
90
|
+
}], onBlur: [{
|
|
91
|
+
type: HostListener,
|
|
92
|
+
args: ['blur']
|
|
74
93
|
}] } });
|
|
75
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2VsbC1lZGl0b3ItYXV0b2NvbXBsZXRlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9hZy1ncmlkL3NyYy9saWIvbW9kdWxlcy9hZy1ncmlkL2NlbGwtZWRpdG9ycy9jZWxsLWVkaXRvci1hdXRvY29tcGxldGUvY2VsbC1lZGl0b3ItYXV0b2NvbXBsZXRlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9hZy1ncmlkL3NyYy9saWIvbW9kdWxlcy9hZy1ncmlkL2NlbGwtZWRpdG9ycy9jZWxsLWVkaXRvci1hdXRvY29tcGxldGUvY2VsbC1lZGl0b3ItYXV0b2NvbXBsZXRlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsVUFBVSxFQUNWLFNBQVMsR0FDVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQU10RSxPQUFPLEVBQUUsZ0NBQWdDLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUMxRixPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQzs7Ozs7QUFFekU7O0dBRUc7QUFPSCxNQUFNLE9BQU8sd0NBQXdDO0lBTnJEO1FBVVMsZUFBVSxHQUFHLElBQUksZ0JBQWdCLENBQUM7WUFDdkMsU0FBUyxFQUFFLElBQUksa0JBQWtCLEVBQUU7U0FDcEMsQ0FBQyxDQUFDO1FBRUksMkJBQXNCLEdBQW9DLEVBQUUsQ0FBQztRQUVwRSx3RUFBMkQ7UUFDM0QsbUVBQXFEO0tBcUR0RDtJQWhEUSxNQUFNLENBQUMsTUFBdUM7UUFDbkQsdUJBQUEsSUFBSSxvREFBVyxNQUFNLE1BQUEsQ0FBQztRQUN0Qix1QkFBQSxJQUFJLHlEQUFnQix3QkFBd0IsQ0FBQyxzQkFBc0IsQ0FBQyxNQUFNLENBQUMsTUFBQSxDQUFDO1FBQzVFLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ2pELElBQUksT0FBTyxFQUFFO1lBQ1gsUUFBUSx1QkFBQSxJQUFJLDZEQUFhLEVBQUU7Z0JBQ3pCLEtBQUssZ0NBQWdDLENBQUMsTUFBTTtvQkFDMUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsQ0FBQztvQkFDNUIsTUFBTTtnQkFDUixLQUFLLGdDQUFnQyxDQUFDLE9BQU8sQ0FBQztnQkFDOUMsS0FBSyxnQ0FBZ0MsQ0FBQyxXQUFXLENBQUM7Z0JBQ2xELEtBQUssZ0NBQWdDLENBQUMsU0FBUyxDQUFDO2dCQUNoRDtvQkFDRSxPQUFPLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztvQkFDL0IsTUFBTTthQUNUO1NBQ0Y7UUFFRCxJQUFJLENBQUMsWUFBWSxHQUFHLHVCQUFBLElBQUksd0RBQVEsQ0FBQyxNQUFNLElBQUksdUJBQUEsSUFBSSx3REFBUSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUM7UUFDMUUsSUFBSSxDQUFDLFNBQVMsR0FBRyx1QkFBQSxJQUFJLHdEQUFRLENBQUMsUUFBUSxHQUFHLENBQUMsQ0FBQztRQUMzQyxJQUFJLENBQUMsc0JBQXNCLEdBQUcsdUJBQUEsSUFBSSx3REFBUSxDQUFDLHNCQUFzQixJQUFJLEVBQUUsQ0FBQztJQUMxRSxDQUFDO0lBRU0sZ0JBQWdCO1FBQ3JCLElBQUksSUFBSSxDQUFDLEtBQUssRUFBRTtZQUNkLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ2pDLElBQUksdUJBQUEsSUFBSSw2REFBYSxLQUFLLGdDQUFnQyxDQUFDLE9BQU8sRUFBRTtnQkFDbEUsTUFBTSxTQUFTLEdBQUcsdUJBQUEsSUFBSSx3REFBUSxFQUFFLFNBQW1CLENBQUM7Z0JBRXBELElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLE1BQU0sRUFBRSxDQUFDO2dCQUNsQyxJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLENBQUM7Z0JBQ2pELCtDQUErQztnQkFDL0MsSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsaUJBQWlCLENBQ3hDLFNBQVMsQ0FBQyxNQUFNLEVBQ2hCLFNBQVMsQ0FBQyxNQUFNLENBQ2pCLENBQUM7Z0JBQ0YsSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsYUFBYSxDQUFDLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7YUFDNUQ7WUFDRCxJQUFJLHVCQUFBLElBQUksNkRBQWEsS0FBSyxnQ0FBZ0MsQ0FBQyxXQUFXLEVBQUU7Z0JBQ3RFLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLE1BQU0sRUFBRSxDQUFDO2FBQ25DO1NBQ0Y7SUFDSCxDQUFDO0lBRU0sUUFBUTtRQUNiLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxFQUFFLEtBQUssQ0FBQztRQUNwRCxPQUFPLEdBQUcsS0FBSyxTQUFTLElBQUksR0FBRyxLQUFLLElBQUksQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7SUFDN0QsQ0FBQzs7O3FJQS9EVSx3Q0FBd0M7eUhBQXhDLHdDQUF3QywyS0FhSCxVQUFVLDZCQ3JDNUQseXBDQThCQTsyRkROYSx3Q0FBd0M7a0JBTnBELFNBQVM7K0JBQ0Usc0NBQXNDLG1CQUcvQix1QkFBdUIsQ0FBQyxNQUFNOzhCQWdCeEMsS0FBSztzQkFEWCxTQUFTO3VCQUFDLDJCQUEyQixFQUFFLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIFZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBVbnR5cGVkRm9ybUNvbnRyb2wsIFVudHlwZWRGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbmltcG9ydCB7IElDZWxsRWRpdG9yQW5ndWxhckNvbXAgfSBmcm9tICdhZy1ncmlkLWFuZ3VsYXInO1xuXG5pbXBvcnQgeyBTa3lBZ0dyaWRBdXRvY29tcGxldGVQcm9wZXJ0aWVzIH0gZnJvbSAnLi4vLi4vdHlwZXMvYXV0b2NvbXBsZXRlLXByb3BlcnRpZXMnO1xuaW1wb3J0IHsgU2t5Q2VsbEVkaXRvckF1dG9jb21wbGV0ZVBhcmFtcyB9IGZyb20gJy4uLy4uL3R5cGVzL2NlbGwtZWRpdG9yLWF1dG9jb21wbGV0ZS1wYXJhbXMnO1xuaW1wb3J0IHsgU2t5QWdHcmlkQ2VsbEVkaXRvckluaXRpYWxBY3Rpb24gfSBmcm9tICcuLi8uLi90eXBlcy9jZWxsLWVkaXRvci1pbml0aWFsLWFjdGlvbic7XG5pbXBvcnQgeyBTa3lBZ0dyaWRDZWxsRWRpdG9yVXRpbHMgfSBmcm9tICcuLi8uLi90eXBlcy9jZWxsLWVkaXRvci11dGlscyc7XG5cbi8qKlxuICogQGludGVybmFsXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NreS1hZy1ncmlkLWNlbGwtZWRpdG9yLWF1dG9jb21wbGV0ZScsXG4gIHRlbXBsYXRlVXJsOiAnLi9jZWxsLWVkaXRvci1hdXRvY29tcGxldGUuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9jZWxsLWVkaXRvci1hdXRvY29tcGxldGUuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIFNreUFnR3JpZENlbGxFZGl0b3JBdXRvY29tcGxldGVDb21wb25lbnRcbiAgaW1wbGVtZW50cyBJQ2VsbEVkaXRvckFuZ3VsYXJDb21wXG57XG4gIHB1YmxpYyBjb2x1bW5IZWFkZXI6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgcHVibGljIGVkaXRvckZvcm0gPSBuZXcgVW50eXBlZEZvcm1Hcm91cCh7XG4gICAgc2VsZWN0aW9uOiBuZXcgVW50eXBlZEZvcm1Db250cm9sKCksXG4gIH0pO1xuICBwdWJsaWMgcm93TnVtYmVyOiBudW1iZXIgfCB1bmRlZmluZWQ7XG4gIHB1YmxpYyBza3lDb21wb25lbnRQcm9wZXJ0aWVzOiBTa3lBZ0dyaWRBdXRvY29tcGxldGVQcm9wZXJ0aWVzID0ge307XG5cbiAgI3RyaWdnZXJUeXBlOiBTa3lBZ0dyaWRDZWxsRWRpdG9ySW5pdGlhbEFjdGlvbiB8IHVuZGVmaW5lZDtcbiAgI3BhcmFtczogU2t5Q2VsbEVkaXRvckF1dG9jb21wbGV0ZVBhcmFtcyB8IHVuZGVmaW5lZDtcblxuICBAVmlld0NoaWxkKCdza3lDZWxsRWRpdG9yQXV0b2NvbXBsZXRlJywgeyByZWFkOiBFbGVtZW50UmVmIH0pXG4gIHB1YmxpYyBpbnB1dDogRWxlbWVudFJlZiB8IHVuZGVmaW5lZDtcblxuICBwdWJsaWMgYWdJbml0KHBhcmFtczogU2t5Q2VsbEVkaXRvckF1dG9jb21wbGV0ZVBhcmFtcyk6IHZvaWQge1xuICAgIHRoaXMuI3BhcmFtcyA9IHBhcmFtcztcbiAgICB0aGlzLiN0cmlnZ2VyVHlwZSA9IFNreUFnR3JpZENlbGxFZGl0b3JVdGlscy5nZXRFZGl0b3JJbml0aWFsQWN0aW9uKHBhcmFtcyk7XG4gICAgY29uc3QgY29udHJvbCA9IHRoaXMuZWRpdG9yRm9ybS5nZXQoJ3NlbGVjdGlvbicpO1xuICAgIGlmIChjb250cm9sKSB7XG4gICAgICBzd2l0Y2ggKHRoaXMuI3RyaWdnZXJUeXBlKSB7XG4gICAgICAgIGNhc2UgU2t5QWdHcmlkQ2VsbEVkaXRvckluaXRpYWxBY3Rpb24uRGVsZXRlOlxuICAgICAgICAgIGNvbnRyb2wuc2V0VmFsdWUodW5kZWZpbmVkKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBTa3lBZ0dyaWRDZWxsRWRpdG9ySW5pdGlhbEFjdGlvbi5SZXBsYWNlOlxuICAgICAgICBjYXNlIFNreUFnR3JpZENlbGxFZGl0b3JJbml0aWFsQWN0aW9uLkhpZ2hsaWdodGVkOlxuICAgICAgICBjYXNlIFNreUFnR3JpZENlbGxFZGl0b3JJbml0aWFsQWN0aW9uLlVudG91Y2hlZDpcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICBjb250cm9sLnNldFZhbHVlKHBhcmFtcy52YWx1ZSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfVxuXG4gICAgdGhpcy5jb2x1bW5IZWFkZXIgPSB0aGlzLiNwYXJhbXMuY29sRGVmICYmIHRoaXMuI3BhcmFtcy5jb2xEZWYuaGVhZGVyTmFtZTtcbiAgICB0aGlzLnJvd051bWJlciA9IHRoaXMuI3BhcmFtcy5yb3dJbmRleCArIDE7XG4gICAgdGhpcy5za3lDb21wb25lbnRQcm9wZXJ0aWVzID0gdGhpcy4jcGFyYW1zLnNreUNvbXBvbmVudFByb3BlcnRpZXMgfHwge307XG4gIH1cblxuICBwdWJsaWMgYWZ0ZXJHdWlBdHRhY2hlZCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5pbnB1dCkge1xuICAgICAgdGhpcy5pbnB1dC5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gICAgICBpZiAodGhpcy4jdHJpZ2dlclR5cGUgPT09IFNreUFnR3JpZENlbGxFZGl0b3JJbml0aWFsQWN0aW9uLlJlcGxhY2UpIHtcbiAgICAgICAgY29uc3QgY2hhclByZXNzID0gdGhpcy4jcGFyYW1zPy5jaGFyUHJlc3MgYXMgc3RyaW5nO1xuXG4gICAgICAgIHRoaXMuaW5wdXQubmF0aXZlRWxlbWVudC5zZWxlY3QoKTtcbiAgICAgICAgdGhpcy5pbnB1dC5uYXRpdmVFbGVtZW50LnNldFJhbmdlVGV4dChjaGFyUHJlc3MpO1xuICAgICAgICAvLyBFbnN1cmUgdGhlIGN1cnNvciBpcyBhdCB0aGUgZW5kIG9mIHRoZSB0ZXh0LlxuICAgICAgICB0aGlzLmlucHV0Lm5hdGl2ZUVsZW1lbnQuc2V0U2VsZWN0aW9uUmFuZ2UoXG4gICAgICAgICAgY2hhclByZXNzLmxlbmd0aCxcbiAgICAgICAgICBjaGFyUHJlc3MubGVuZ3RoXG4gICAgICAgICk7XG4gICAgICAgIHRoaXMuaW5wdXQubmF0aXZlRWxlbWVudC5kaXNwYXRjaEV2ZW50KG5ldyBFdmVudCgnaW5wdXQnKSk7XG4gICAgICB9XG4gICAgICBpZiAodGhpcy4jdHJpZ2dlclR5cGUgPT09IFNreUFnR3JpZENlbGxFZGl0b3JJbml0aWFsQWN0aW9uLkhpZ2hsaWdodGVkKSB7XG4gICAgICAgIHRoaXMuaW5wdXQubmF0aXZlRWxlbWVudC5zZWxlY3QoKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZ2V0VmFsdWUoKTogYW55IHwgdW5kZWZpbmVkIHtcbiAgICBjb25zdCB2YWwgPSB0aGlzLmVkaXRvckZvcm0uZ2V0KCdzZWxlY3Rpb24nKT8udmFsdWU7XG4gICAgcmV0dXJuIHZhbCAhPT0gdW5kZWZpbmVkICYmIHZhbCAhPT0gbnVsbCA/IHZhbCA6IHVuZGVmaW5lZDtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cInNreS1hZy1ncmlkLWNlbGwtZWRpdG9yLWF1dG9jb21wbGV0ZVwiIFtmb3JtR3JvdXBdPVwiZWRpdG9yRm9ybVwiPlxuICA8c2t5LWF1dG9jb21wbGV0ZVxuICAgIFtkYXRhXT1cInNreUNvbXBvbmVudFByb3BlcnRpZXMuZGF0YVwiXG4gICAgW2RlYm91bmNlVGltZV09XCJza3lDb21wb25lbnRQcm9wZXJ0aWVzLmRlYm91bmNlVGltZVwiXG4gICAgW2Rlc2NyaXB0b3JQcm9wZXJ0eV09XCJza3lDb21wb25lbnRQcm9wZXJ0aWVzLmRlc2NyaXB0b3JQcm9wZXJ0eVwiXG4gICAgW3Byb3BlcnRpZXNUb1NlYXJjaF09XCJza3lDb21wb25lbnRQcm9wZXJ0aWVzLnByb3BlcnRpZXNUb1NlYXJjaFwiXG4gICAgW3NlYXJjaF09XCJza3lDb21wb25lbnRQcm9wZXJ0aWVzLnNlYXJjaFwiXG4gICAgW3NlYXJjaEZpbHRlcnNdPVwic2t5Q29tcG9uZW50UHJvcGVydGllcy5zZWFyY2hGaWx0ZXJzXCJcbiAgICBbc2VhcmNoUmVzdWx0c0xpbWl0XT1cInNreUNvbXBvbmVudFByb3BlcnRpZXMuc2VhcmNoUmVzdWx0c0xpbWl0XCJcbiAgICBbc2VhcmNoUmVzdWx0VGVtcGxhdGVdPVwic2t5Q29tcG9uZW50UHJvcGVydGllcy5zZWFyY2hSZXN1bHRUZW1wbGF0ZVwiXG4gICAgW3NlYXJjaFRleHRNaW5pbXVtQ2hhcmFjdGVyc109XCJcbiAgICAgIHNreUNvbXBvbmVudFByb3BlcnRpZXMuc2VhcmNoVGV4dE1pbmltdW1DaGFyYWN0ZXJzXG4gICAgXCJcbiAgICAoc2VsZWN0aW9uQ2hhbmdlKT1cIlxuICAgICAgc2t5Q29tcG9uZW50UHJvcGVydGllcy5zZWxlY3Rpb25DaGFuZ2UgJiZcbiAgICAgICAgc2t5Q29tcG9uZW50UHJvcGVydGllcy5zZWxlY3Rpb25DaGFuZ2UoJGV2ZW50KVxuICAgIFwiXG4gID5cbiAgICA8aW5wdXRcbiAgICAgIGZvcm1Db250cm9sTmFtZT1cInNlbGVjdGlvblwiXG4gICAgICBza3lBdXRvY29tcGxldGVcbiAgICAgICNza3lDZWxsRWRpdG9yQXV0b2NvbXBsZXRlXG4gICAgICB0eXBlPVwidGV4dFwiXG4gICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIlxuICAgICAgICAnc2t5X2FnX2dyaWRfY2VsbF9lZGl0b3JfYXV0b2NvbXBsZXRlX2FyaWFfbGFiZWwnXG4gICAgICAgICAgfCBza3lMaWJSZXNvdXJjZXMgOiBjb2x1bW5IZWFkZXIgOiByb3dOdW1iZXJcbiAgICAgIFwiXG4gICAgLz5cbiAgPC9za3ktYXV0b2NvbXBsZXRlPlxuPC9kaXY+XG4iXX0=
|
|
94
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2VsbC1lZGl0b3ItYXV0b2NvbXBsZXRlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9hZy1ncmlkL3NyYy9saWIvbW9kdWxlcy9hZy1ncmlkL2NlbGwtZWRpdG9ycy9jZWxsLWVkaXRvci1hdXRvY29tcGxldGUvY2VsbC1lZGl0b3ItYXV0b2NvbXBsZXRlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9hZy1ncmlkL3NyYy9saWIvbW9kdWxlcy9hZy1ncmlkL2NlbGwtZWRpdG9ycy9jZWxsLWVkaXRvci1hdXRvY29tcGxldGUvY2VsbC1lZGl0b3ItYXV0b2NvbXBsZXRlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsVUFBVSxFQUNWLFlBQVksRUFDWixTQUFTLEVBQ1QsTUFBTSxHQUNQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBTXRFLE9BQU8sRUFBRSxnQ0FBZ0MsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQzFGLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLCtCQUErQixDQUFDOzs7OztBQUV6RTs7R0FFRztBQU9ILE1BQU0sT0FBTyx3Q0FBd0M7SUFOckQ7O1FBVVMsZUFBVSxHQUFHLElBQUksZ0JBQWdCLENBQUM7WUFDdkMsU0FBUyxFQUFFLElBQUksa0JBQWtCLEVBQUU7U0FDcEMsQ0FBQyxDQUFDO1FBRUksMkJBQXNCLEdBQW9DLEVBQUUsQ0FBQztRQUVwRSxxRUFBb0IsS0FBSyxFQUFDO1FBQzFCLHdFQUEyRDtRQUMzRCxtRUFBcUQ7UUFDckQsK0RBQWMsTUFBTSxDQUFDLFVBQVUsQ0FB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LENBQUMsdUJBQUEsSUFBSSxrRUFBa0I7UUFDdkIsdUJBQUEsSUFBSSx3REFBUSxFQUFFLE9BQU8sRUFBRSxXQUFXLEVBQUUsNkJBQTZCO1FBQ2pFLENBQUMsdUJBQUEsSUFBSSw0REFBWSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsZUFBZSxDQUFDLEVBQ3hEO1FBQ0EsdUJBQUEsSUFBSSx3REFBUSxFQUFFLEdBQUcsQ0FBQyxXQUFXLEVBQUUsQ0FBQztLQUNqQztBQUNILENBQUM7cUlBckZVLHdDQUF3Qzt5SEFBeEMsd0NBQXdDLHdOQWVILFVBQVUsNkJDekM1RCxndENBK0JBOzJGRExhLHdDQUF3QztrQkFOcEQsU0FBUzsrQkFDRSxzQ0FBc0MsbUJBRy9CLHVCQUF1QixDQUFDLE1BQU07OEJBa0J4QyxLQUFLO3NCQURYLFNBQVM7dUJBQUMsMkJBQTJCLEVBQUUsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFO2dCQUlyRCxNQUFNO3NCQURaLFlBQVk7dUJBQUMsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIEhvc3RMaXN0ZW5lcixcbiAgVmlld0NoaWxkLFxuICBpbmplY3QsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVW50eXBlZEZvcm1Db250cm9sLCBVbnR5cGVkRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5pbXBvcnQgeyBJQ2VsbEVkaXRvckFuZ3VsYXJDb21wIH0gZnJvbSAnYWctZ3JpZC1hbmd1bGFyJztcblxuaW1wb3J0IHsgU2t5QWdHcmlkQXV0b2NvbXBsZXRlUHJvcGVydGllcyB9IGZyb20gJy4uLy4uL3R5cGVzL2F1dG9jb21wbGV0ZS1wcm9wZXJ0aWVzJztcbmltcG9ydCB7IFNreUNlbGxFZGl0b3JBdXRvY29tcGxldGVQYXJhbXMgfSBmcm9tICcuLi8uLi90eXBlcy9jZWxsLWVkaXRvci1hdXRvY29tcGxldGUtcGFyYW1zJztcbmltcG9ydCB7IFNreUFnR3JpZENlbGxFZGl0b3JJbml0aWFsQWN0aW9uIH0gZnJvbSAnLi4vLi4vdHlwZXMvY2VsbC1lZGl0b3ItaW5pdGlhbC1hY3Rpb24nO1xuaW1wb3J0IHsgU2t5QWdHcmlkQ2VsbEVkaXRvclV0aWxzIH0gZnJvbSAnLi4vLi4vdHlwZXMvY2VsbC1lZGl0b3ItdXRpbHMnO1xuXG4vKipcbiAqIEBpbnRlcm5hbFxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdza3ktYWctZ3JpZC1jZWxsLWVkaXRvci1hdXRvY29tcGxldGUnLFxuICB0ZW1wbGF0ZVVybDogJy4vY2VsbC1lZGl0b3ItYXV0b2NvbXBsZXRlLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vY2VsbC1lZGl0b3ItYXV0b2NvbXBsZXRlLmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBTa3lBZ0dyaWRDZWxsRWRpdG9yQXV0b2NvbXBsZXRlQ29tcG9uZW50XG4gIGltcGxlbWVudHMgSUNlbGxFZGl0b3JBbmd1bGFyQ29tcFxue1xuICBwdWJsaWMgY29sdW1uSGVhZGVyOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gIHB1YmxpYyBlZGl0b3JGb3JtID0gbmV3IFVudHlwZWRGb3JtR3JvdXAoe1xuICAgIHNlbGVjdGlvbjogbmV3IFVudHlwZWRGb3JtQ29udHJvbCgpLFxuICB9KTtcbiAgcHVibGljIHJvd051bWJlcjogbnVtYmVyIHwgdW5kZWZpbmVkO1xuICBwdWJsaWMgc2t5Q29tcG9uZW50UHJvcGVydGllczogU2t5QWdHcmlkQXV0b2NvbXBsZXRlUHJvcGVydGllcyA9IHt9O1xuXG4gICNhdXRvY29tcGxldGVPcGVuID0gZmFsc2U7XG4gICN0cmlnZ2VyVHlwZTogU2t5QWdHcmlkQ2VsbEVkaXRvckluaXRpYWxBY3Rpb24gfCB1bmRlZmluZWQ7XG4gICNwYXJhbXM6IFNreUNlbGxFZGl0b3JBdXRvY29tcGxldGVQYXJhbXMgfCB1bmRlZmluZWQ7XG4gICNlbGVtZW50UmVmID0gaW5qZWN0KEVsZW1lbnRSZWYpIGFzIEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+O1xuXG4gIEBWaWV3Q2hpbGQoJ3NreUNlbGxFZGl0b3JBdXRvY29tcGxldGUnLCB7IHJlYWQ6IEVsZW1lbnRSZWYgfSlcbiAgcHVibGljIGlucHV0OiBFbGVtZW50UmVmIHwgdW5kZWZpbmVkO1xuXG4gIEBIb3N0TGlzdGVuZXIoJ2JsdXInKVxuICBwdWJsaWMgb25CbHVyKCk6IHZvaWQge1xuICAgIHRoaXMuI3N0b3BFZGl0aW5nT25CbHVyKCk7XG4gIH1cblxuICBwdWJsaWMgYWdJbml0KHBhcmFtczogU2t5Q2VsbEVkaXRvckF1dG9jb21wbGV0ZVBhcmFtcyk6IHZvaWQge1xuICAgIHRoaXMuI3BhcmFtcyA9IHBhcmFtcztcbiAgICB0aGlzLiN0cmlnZ2VyVHlwZSA9IFNreUFnR3JpZENlbGxFZGl0b3JVdGlscy5nZXRFZGl0b3JJbml0aWFsQWN0aW9uKHBhcmFtcyk7XG4gICAgY29uc3QgY29udHJvbCA9IHRoaXMuZWRpdG9yRm9ybS5nZXQoJ3NlbGVjdGlvbicpO1xuICAgIGlmIChjb250cm9sKSB7XG4gICAgICBzd2l0Y2ggKHRoaXMuI3RyaWdnZXJUeXBlKSB7XG4gICAgICAgIGNhc2UgU2t5QWdHcmlkQ2VsbEVkaXRvckluaXRpYWxBY3Rpb24uRGVsZXRlOlxuICAgICAgICAgIGNvbnRyb2wuc2V0VmFsdWUodW5kZWZpbmVkKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBTa3lBZ0dyaWRDZWxsRWRpdG9ySW5pdGlhbEFjdGlvbi5SZXBsYWNlOlxuICAgICAgICBjYXNlIFNreUFnR3JpZENlbGxFZGl0b3JJbml0aWFsQWN0aW9uLkhpZ2hsaWdodGVkOlxuICAgICAgICBjYXNlIFNreUFnR3JpZENlbGxFZGl0b3JJbml0aWFsQWN0aW9uLlVudG91Y2hlZDpcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICBjb250cm9sLnNldFZhbHVlKHBhcmFtcy52YWx1ZSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfVxuXG4gICAgdGhpcy5jb2x1bW5IZWFkZXIgPSB0aGlzLiNwYXJhbXMuY29sRGVmICYmIHRoaXMuI3BhcmFtcy5jb2xEZWYuaGVhZGVyTmFtZTtcbiAgICB0aGlzLnJvd051bWJlciA9IHRoaXMuI3BhcmFtcy5yb3dJbmRleCArIDE7XG4gICAgdGhpcy5za3lDb21wb25lbnRQcm9wZXJ0aWVzID0gdGhpcy4jcGFyYW1zLnNreUNvbXBvbmVudFByb3BlcnRpZXMgfHwge307XG4gIH1cblxuICBwdWJsaWMgYWZ0ZXJHdWlBdHRhY2hlZCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5pbnB1dCkge1xuICAgICAgdGhpcy5pbnB1dC5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gICAgICBpZiAodGhpcy4jdHJpZ2dlclR5cGUgPT09IFNreUFnR3JpZENlbGxFZGl0b3JJbml0aWFsQWN0aW9uLlJlcGxhY2UpIHtcbiAgICAgICAgY29uc3QgY2hhclByZXNzID0gdGhpcy4jcGFyYW1zPy5jaGFyUHJlc3MgYXMgc3RyaW5nO1xuXG4gICAgICAgIHRoaXMuaW5wdXQubmF0aXZlRWxlbWVudC5zZWxlY3QoKTtcbiAgICAgICAgdGhpcy5pbnB1dC5uYXRpdmVFbGVtZW50LnNldFJhbmdlVGV4dChjaGFyUHJlc3MpO1xuICAgICAgICAvLyBFbnN1cmUgdGhlIGN1cnNvciBpcyBhdCB0aGUgZW5kIG9mIHRoZSB0ZXh0LlxuICAgICAgICB0aGlzLmlucHV0Lm5hdGl2ZUVsZW1lbnQuc2V0U2VsZWN0aW9uUmFuZ2UoXG4gICAgICAgICAgY2hhclByZXNzLmxlbmd0aCxcbiAgICAgICAgICBjaGFyUHJlc3MubGVuZ3RoXG4gICAgICAgICk7XG4gICAgICAgIHRoaXMuaW5wdXQubmF0aXZlRWxlbWVudC5kaXNwYXRjaEV2ZW50KG5ldyBFdmVudCgnaW5wdXQnKSk7XG4gICAgICB9XG4gICAgICBpZiAodGhpcy4jdHJpZ2dlclR5cGUgPT09IFNreUFnR3JpZENlbGxFZGl0b3JJbml0aWFsQWN0aW9uLkhpZ2hsaWdodGVkKSB7XG4gICAgICAgIHRoaXMuaW5wdXQubmF0aXZlRWxlbWVudC5zZWxlY3QoKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZ2V0VmFsdWUoKTogYW55IHwgdW5kZWZpbmVkIHtcbiAgICBjb25zdCB2YWwgPSB0aGlzLmVkaXRvckZvcm0uZ2V0KCdzZWxlY3Rpb24nKT8udmFsdWU7XG4gICAgcmV0dXJuIHZhbCAhPT0gdW5kZWZpbmVkICYmIHZhbCAhPT0gbnVsbCA/IHZhbCA6IHVuZGVmaW5lZDtcbiAgfVxuXG4gIHB1YmxpYyBvbkF1dG9jb21wbGV0ZU9wZW5DaGFuZ2UoJGV2ZW50OiBib29sZWFuKTogdm9pZCB7XG4gICAgdGhpcy4jYXV0b2NvbXBsZXRlT3BlbiA9ICRldmVudDtcbiAgICB0aGlzLiNzdG9wRWRpdGluZ09uQmx1cigpO1xuICB9XG5cbiAgI3N0b3BFZGl0aW5nT25CbHVyKCk6IHZvaWQge1xuICAgIGlmIChcbiAgICAgICF0aGlzLiNhdXRvY29tcGxldGVPcGVuICYmXG4gICAgICB0aGlzLiNwYXJhbXM/LmNvbnRleHQ/LmdyaWRPcHRpb25zPy5zdG9wRWRpdGluZ1doZW5DZWxsc0xvc2VGb2N1cyAmJlxuICAgICAgIXRoaXMuI2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5tYXRjaGVzKCc6Zm9jdXMtd2l0aGluJylcbiAgICApIHtcbiAgICAgIHRoaXMuI3BhcmFtcz8uYXBpLnN0b3BFZGl0aW5nKCk7XG4gICAgfVxuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwic2t5LWFnLWdyaWQtY2VsbC1lZGl0b3ItYXV0b2NvbXBsZXRlXCIgW2Zvcm1Hcm91cF09XCJlZGl0b3JGb3JtXCI+XG4gIDxza3ktYXV0b2NvbXBsZXRlXG4gICAgW2RhdGFdPVwic2t5Q29tcG9uZW50UHJvcGVydGllcy5kYXRhXCJcbiAgICBbZGVib3VuY2VUaW1lXT1cInNreUNvbXBvbmVudFByb3BlcnRpZXMuZGVib3VuY2VUaW1lXCJcbiAgICBbZGVzY3JpcHRvclByb3BlcnR5XT1cInNreUNvbXBvbmVudFByb3BlcnRpZXMuZGVzY3JpcHRvclByb3BlcnR5XCJcbiAgICBbcHJvcGVydGllc1RvU2VhcmNoXT1cInNreUNvbXBvbmVudFByb3BlcnRpZXMucHJvcGVydGllc1RvU2VhcmNoXCJcbiAgICBbc2VhcmNoXT1cInNreUNvbXBvbmVudFByb3BlcnRpZXMuc2VhcmNoXCJcbiAgICBbc2VhcmNoRmlsdGVyc109XCJza3lDb21wb25lbnRQcm9wZXJ0aWVzLnNlYXJjaEZpbHRlcnNcIlxuICAgIFtzZWFyY2hSZXN1bHRzTGltaXRdPVwic2t5Q29tcG9uZW50UHJvcGVydGllcy5zZWFyY2hSZXN1bHRzTGltaXRcIlxuICAgIFtzZWFyY2hSZXN1bHRUZW1wbGF0ZV09XCJza3lDb21wb25lbnRQcm9wZXJ0aWVzLnNlYXJjaFJlc3VsdFRlbXBsYXRlXCJcbiAgICBbc2VhcmNoVGV4dE1pbmltdW1DaGFyYWN0ZXJzXT1cIlxuICAgICAgc2t5Q29tcG9uZW50UHJvcGVydGllcy5zZWFyY2hUZXh0TWluaW11bUNoYXJhY3RlcnNcbiAgICBcIlxuICAgIChzZWxlY3Rpb25DaGFuZ2UpPVwiXG4gICAgICBza3lDb21wb25lbnRQcm9wZXJ0aWVzLnNlbGVjdGlvbkNoYW5nZSAmJlxuICAgICAgICBza3lDb21wb25lbnRQcm9wZXJ0aWVzLnNlbGVjdGlvbkNoYW5nZSgkZXZlbnQpXG4gICAgXCJcbiAgICAob3BlbkNoYW5nZSk9XCJvbkF1dG9jb21wbGV0ZU9wZW5DaGFuZ2UoJGV2ZW50KVwiXG4gID5cbiAgICA8aW5wdXRcbiAgICAgIGZvcm1Db250cm9sTmFtZT1cInNlbGVjdGlvblwiXG4gICAgICBza3lBdXRvY29tcGxldGVcbiAgICAgICNza3lDZWxsRWRpdG9yQXV0b2NvbXBsZXRlXG4gICAgICB0eXBlPVwidGV4dFwiXG4gICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIlxuICAgICAgICAnc2t5X2FnX2dyaWRfY2VsbF9lZGl0b3JfYXV0b2NvbXBsZXRlX2FyaWFfbGFiZWwnXG4gICAgICAgICAgfCBza3lMaWJSZXNvdXJjZXMgOiBjb2x1bW5IZWFkZXIgOiByb3dOdW1iZXJcbiAgICAgIFwiXG4gICAgLz5cbiAgPC9za3ktYXV0b2NvbXBsZXRlPlxuPC9kaXY+XG4iXX0=
|
|
@@ -1,32 +1,42 @@
|
|
|
1
|
-
var _SkyAgGridCellEditorDatepickerComponent_params, _SkyAgGridCellEditorDatepickerComponent_triggerType, _SkyAgGridCellEditorDatepickerComponent_changeDetector, _SkyAgGridCellEditorDatepickerComponent_themeSvc;
|
|
1
|
+
var _SkyAgGridCellEditorDatepickerComponent_instances, _SkyAgGridCellEditorDatepickerComponent_calendarOpen, _SkyAgGridCellEditorDatepickerComponent_params, _SkyAgGridCellEditorDatepickerComponent_triggerType, _SkyAgGridCellEditorDatepickerComponent_elementRef, _SkyAgGridCellEditorDatepickerComponent_changeDetector, _SkyAgGridCellEditorDatepickerComponent_themeSvc, _SkyAgGridCellEditorDatepickerComponent_stopEditingOnBlur;
|
|
2
2
|
import { __classPrivateFieldGet, __classPrivateFieldSet } from "tslib";
|
|
3
|
-
import { ChangeDetectionStrategy, Component, ElementRef,
|
|
3
|
+
import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, HostListener, ViewChild, ViewEncapsulation, inject, } from '@angular/core';
|
|
4
4
|
import { UntypedFormControl, UntypedFormGroup } from '@angular/forms';
|
|
5
|
+
import { SkyThemeService } from '@skyux/theme';
|
|
5
6
|
import { PopupComponent } from 'ag-grid-community';
|
|
6
7
|
import { fromEvent } from 'rxjs';
|
|
7
8
|
import { first } from 'rxjs/operators';
|
|
8
9
|
import { SkyAgGridCellEditorInitialAction } from '../../types/cell-editor-initial-action';
|
|
9
10
|
import { SkyAgGridCellEditorUtils } from '../../types/cell-editor-utils';
|
|
10
11
|
import * as i0 from "@angular/core";
|
|
11
|
-
import * as i1 from "@skyux/
|
|
12
|
-
import * as i2 from "@
|
|
13
|
-
import * as i3 from "@angular/forms";
|
|
12
|
+
import * as i1 from "@skyux/datetime";
|
|
13
|
+
import * as i2 from "@angular/forms";
|
|
14
14
|
/**
|
|
15
15
|
* @internal
|
|
16
16
|
*/
|
|
17
17
|
export class SkyAgGridCellEditorDatepickerComponent extends PopupComponent {
|
|
18
|
-
constructor(
|
|
18
|
+
constructor() {
|
|
19
19
|
super();
|
|
20
|
+
_SkyAgGridCellEditorDatepickerComponent_instances.add(this);
|
|
20
21
|
this.editorForm = new UntypedFormGroup({
|
|
21
22
|
date: new UntypedFormControl(),
|
|
22
23
|
});
|
|
23
24
|
this.skyComponentProperties = {};
|
|
25
|
+
_SkyAgGridCellEditorDatepickerComponent_calendarOpen.set(this, false);
|
|
24
26
|
_SkyAgGridCellEditorDatepickerComponent_params.set(this, void 0);
|
|
25
27
|
_SkyAgGridCellEditorDatepickerComponent_triggerType.set(this, void 0);
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
28
|
+
_SkyAgGridCellEditorDatepickerComponent_elementRef.set(this, inject(ElementRef));
|
|
29
|
+
_SkyAgGridCellEditorDatepickerComponent_changeDetector.set(this, inject(ChangeDetectorRef));
|
|
30
|
+
_SkyAgGridCellEditorDatepickerComponent_themeSvc.set(this, inject(SkyThemeService, { optional: true }) || undefined);
|
|
31
|
+
}
|
|
32
|
+
onFocusOut(event) {
|
|
33
|
+
if (event.target === this.datepickerInput?.nativeElement) {
|
|
34
|
+
__classPrivateFieldGet(this, _SkyAgGridCellEditorDatepickerComponent_instances, "m", _SkyAgGridCellEditorDatepickerComponent_stopEditingOnBlur).call(this);
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
onCalendarOpenChange(isOpen) {
|
|
38
|
+
__classPrivateFieldSet(this, _SkyAgGridCellEditorDatepickerComponent_calendarOpen, isOpen, "f");
|
|
39
|
+
__classPrivateFieldGet(this, _SkyAgGridCellEditorDatepickerComponent_instances, "m", _SkyAgGridCellEditorDatepickerComponent_stopEditingOnBlur).call(this);
|
|
30
40
|
}
|
|
31
41
|
/**
|
|
32
42
|
* agInit is called by agGrid once after the editor is created and provides the editor with the information it needs.
|
|
@@ -107,16 +117,23 @@ export class SkyAgGridCellEditorDatepickerComponent extends PopupComponent {
|
|
|
107
117
|
return this.editorForm.get('date')?.value;
|
|
108
118
|
}
|
|
109
119
|
}
|
|
110
|
-
_SkyAgGridCellEditorDatepickerComponent_params = new WeakMap(), _SkyAgGridCellEditorDatepickerComponent_triggerType = new WeakMap(), _SkyAgGridCellEditorDatepickerComponent_changeDetector = new WeakMap(), _SkyAgGridCellEditorDatepickerComponent_themeSvc = new WeakMap()
|
|
111
|
-
|
|
112
|
-
|
|
120
|
+
_SkyAgGridCellEditorDatepickerComponent_calendarOpen = new WeakMap(), _SkyAgGridCellEditorDatepickerComponent_params = new WeakMap(), _SkyAgGridCellEditorDatepickerComponent_triggerType = new WeakMap(), _SkyAgGridCellEditorDatepickerComponent_elementRef = new WeakMap(), _SkyAgGridCellEditorDatepickerComponent_changeDetector = new WeakMap(), _SkyAgGridCellEditorDatepickerComponent_themeSvc = new WeakMap(), _SkyAgGridCellEditorDatepickerComponent_instances = new WeakSet(), _SkyAgGridCellEditorDatepickerComponent_stopEditingOnBlur = function _SkyAgGridCellEditorDatepickerComponent_stopEditingOnBlur() {
|
|
121
|
+
if (!__classPrivateFieldGet(this, _SkyAgGridCellEditorDatepickerComponent_calendarOpen, "f") &&
|
|
122
|
+
__classPrivateFieldGet(this, _SkyAgGridCellEditorDatepickerComponent_params, "f")?.context.gridOptions.stopEditingWhenCellsLoseFocus &&
|
|
123
|
+
!__classPrivateFieldGet(this, _SkyAgGridCellEditorDatepickerComponent_elementRef, "f").nativeElement.matches(':focus-within')) {
|
|
124
|
+
__classPrivateFieldGet(this, _SkyAgGridCellEditorDatepickerComponent_params, "f")?.api.stopEditing();
|
|
125
|
+
}
|
|
126
|
+
};
|
|
127
|
+
SkyAgGridCellEditorDatepickerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SkyAgGridCellEditorDatepickerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
128
|
+
SkyAgGridCellEditorDatepickerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: SkyAgGridCellEditorDatepickerComponent, selector: "sky-ag-grid-cell-editor-datepicker", host: { listeners: { "focusout": "onFocusOut($event)" } }, viewQueries: [{ propertyName: "datepickerInput", first: true, predicate: ["skyCellEditorDatepickerInput"], descendants: true, read: ElementRef }], usesInheritance: true, ngImport: i0, template: "<div\n class=\"sky-ag-grid-cell-editor-datepicker\"\n [formGroup]=\"editorForm\"\n [style.width.px]=\"columnWidthWithoutBorders\"\n>\n <sky-datepicker\n data-sky-id=\"cell-datepicker\"\n pickerClass=\"ag-custom-component-popup\"\n (openChange)=\"onCalendarOpenChange($event)\"\n >\n <input\n formControlName=\"date\"\n skyDatepickerInput\n [minDate]=\"skyComponentProperties.minDate\"\n [maxDate]=\"skyComponentProperties.maxDate\"\n [dateFormat]=\"skyComponentProperties.dateFormat\"\n [startingDay]=\"skyComponentProperties.startingDay\"\n [skyDatepickerNoValidate]=\"skyComponentProperties.skyDatepickerNoValidate\"\n [style.height.px]=\"rowHeightWithoutBorders\"\n #skyCellEditorDatepickerInput\n />\n </sky-datepicker>\n</div>\n", styles: [".sky-ag-grid-cell-editor-datepicker{position:relative;top:1px;left:1px}.sky-ag-grid-cell-editor-datepicker sky-datepicker input.sky-form-control{box-shadow:none;border-width:1px;border-style:solid;border-color:transparent #cdcfd2 transparent transparent}.sky-ag-grid-cell-editor-datepicker sky-datepicker .sky-input-group-datepicker-btn{border-radius:0}:host-context(.sky-theme-modern) .sky-ag-grid-cell-editor-datepicker{position:static;top:initial;left:initial}:host-context(.sky-theme-modern) .sky-ag-grid-cell-editor-datepicker sky-datepicker input.sky-form-control{border-radius:0;border:1px solid #1870B8}:host-context(.sky-theme-modern) .sky-ag-grid-cell-editor-datepicker sky-datepicker input.sky-form-control:focus{border-width:2px!important}.sky-theme-modern .sky-ag-grid-cell-editor-datepicker{position:static;top:initial;left:initial}.sky-theme-modern .sky-ag-grid-cell-editor-datepicker sky-datepicker input.sky-form-control{border-radius:0;border:1px solid #1870B8}.sky-theme-modern .sky-ag-grid-cell-editor-datepicker sky-datepicker input.sky-form-control:focus{border-width:2px!important}\n"], dependencies: [{ kind: "component", type: i1.λ2, selector: "sky-datepicker", inputs: ["pickerClass"], outputs: ["calendarDateRangeChange", "openChange"] }, { kind: "directive", type: i1.λ3, selector: "[skyDatepickerInput]", inputs: ["dateFormat", "disabled", "maxDate", "minDate", "skyDatepickerInput", "skyDatepickerNoValidate", "startingDay", "strict"] }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
113
129
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SkyAgGridCellEditorDatepickerComponent, decorators: [{
|
|
114
130
|
type: Component,
|
|
115
|
-
args: [{ selector: 'sky-ag-grid-cell-editor-datepicker', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "<div\n class=\"sky-ag-grid-cell-editor-datepicker\"\n [formGroup]=\"editorForm\"\n [style.width.px]=\"columnWidthWithoutBorders\"\n>\n <sky-datepicker\n data-sky-id=\"cell-datepicker\"\n pickerClass=\"ag-custom-component-popup\"\n >\n <input\n formControlName=\"date\"\n skyDatepickerInput\n [minDate]=\"skyComponentProperties.minDate\"\n [maxDate]=\"skyComponentProperties.maxDate\"\n [dateFormat]=\"skyComponentProperties.dateFormat\"\n [startingDay]=\"skyComponentProperties.startingDay\"\n [skyDatepickerNoValidate]=\"skyComponentProperties.skyDatepickerNoValidate\"\n [style.height.px]=\"rowHeightWithoutBorders\"\n #skyCellEditorDatepickerInput\n />\n </sky-datepicker>\n</div>\n", styles: [".sky-ag-grid-cell-editor-datepicker{position:relative;top:1px;left:1px}.sky-ag-grid-cell-editor-datepicker sky-datepicker input.sky-form-control{box-shadow:none;border-width:1px;border-style:solid;border-color:transparent #cdcfd2 transparent transparent}.sky-ag-grid-cell-editor-datepicker sky-datepicker .sky-input-group-datepicker-btn{border-radius:0}:host-context(.sky-theme-modern) .sky-ag-grid-cell-editor-datepicker{position:static;top:initial;left:initial}:host-context(.sky-theme-modern) .sky-ag-grid-cell-editor-datepicker sky-datepicker input.sky-form-control{border-radius:0;border:1px solid #1870B8}:host-context(.sky-theme-modern) .sky-ag-grid-cell-editor-datepicker sky-datepicker input.sky-form-control:focus{border-width:2px!important}.sky-theme-modern .sky-ag-grid-cell-editor-datepicker{position:static;top:initial;left:initial}.sky-theme-modern .sky-ag-grid-cell-editor-datepicker sky-datepicker input.sky-form-control{border-radius:0;border:1px solid #1870B8}.sky-theme-modern .sky-ag-grid-cell-editor-datepicker sky-datepicker input.sky-form-control:focus{border-width:2px!important}\n"] }]
|
|
116
|
-
}], ctorParameters: function () { return [
|
|
117
|
-
type: Optional
|
|
118
|
-
}] }]; }, propDecorators: { datepickerInput: [{
|
|
131
|
+
args: [{ selector: 'sky-ag-grid-cell-editor-datepicker', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "<div\n class=\"sky-ag-grid-cell-editor-datepicker\"\n [formGroup]=\"editorForm\"\n [style.width.px]=\"columnWidthWithoutBorders\"\n>\n <sky-datepicker\n data-sky-id=\"cell-datepicker\"\n pickerClass=\"ag-custom-component-popup\"\n (openChange)=\"onCalendarOpenChange($event)\"\n >\n <input\n formControlName=\"date\"\n skyDatepickerInput\n [minDate]=\"skyComponentProperties.minDate\"\n [maxDate]=\"skyComponentProperties.maxDate\"\n [dateFormat]=\"skyComponentProperties.dateFormat\"\n [startingDay]=\"skyComponentProperties.startingDay\"\n [skyDatepickerNoValidate]=\"skyComponentProperties.skyDatepickerNoValidate\"\n [style.height.px]=\"rowHeightWithoutBorders\"\n #skyCellEditorDatepickerInput\n />\n </sky-datepicker>\n</div>\n", styles: [".sky-ag-grid-cell-editor-datepicker{position:relative;top:1px;left:1px}.sky-ag-grid-cell-editor-datepicker sky-datepicker input.sky-form-control{box-shadow:none;border-width:1px;border-style:solid;border-color:transparent #cdcfd2 transparent transparent}.sky-ag-grid-cell-editor-datepicker sky-datepicker .sky-input-group-datepicker-btn{border-radius:0}:host-context(.sky-theme-modern) .sky-ag-grid-cell-editor-datepicker{position:static;top:initial;left:initial}:host-context(.sky-theme-modern) .sky-ag-grid-cell-editor-datepicker sky-datepicker input.sky-form-control{border-radius:0;border:1px solid #1870B8}:host-context(.sky-theme-modern) .sky-ag-grid-cell-editor-datepicker sky-datepicker input.sky-form-control:focus{border-width:2px!important}.sky-theme-modern .sky-ag-grid-cell-editor-datepicker{position:static;top:initial;left:initial}.sky-theme-modern .sky-ag-grid-cell-editor-datepicker sky-datepicker input.sky-form-control{border-radius:0;border:1px solid #1870B8}.sky-theme-modern .sky-ag-grid-cell-editor-datepicker sky-datepicker input.sky-form-control:focus{border-width:2px!important}\n"] }]
|
|
132
|
+
}], ctorParameters: function () { return []; }, propDecorators: { datepickerInput: [{
|
|
119
133
|
type: ViewChild,
|
|
120
134
|
args: ['skyCellEditorDatepickerInput', { read: ElementRef }]
|
|
135
|
+
}], onFocusOut: [{
|
|
136
|
+
type: HostListener,
|
|
137
|
+
args: ['focusout', ['$event']]
|
|
121
138
|
}] } });
|
|
122
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2VsbC1lZGl0b3ItZGF0ZXBpY2tlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvYWctZ3JpZC9zcmMvbGliL21vZHVsZXMvYWctZ3JpZC9jZWxsLWVkaXRvcnMvY2VsbC1lZGl0b3ItZGF0ZXBpY2tlci9jZWxsLWVkaXRvci1kYXRlcGlja2VyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9hZy1ncmlkL3NyYy9saWIvbW9kdWxlcy9hZy1ncmlkL2NlbGwtZWRpdG9ycy9jZWxsLWVkaXRvci1kYXRlcGlja2VyL2NlbGwtZWRpdG9yLWRhdGVwaWNrZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBRXZCLFNBQVMsRUFDVCxVQUFVLEVBQ1YsUUFBUSxFQUNSLFNBQVMsRUFDVCxpQkFBaUIsR0FDbEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGtCQUFrQixFQUFFLGdCQUFnQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFJdEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDakMsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBR3ZDLE9BQU8sRUFBRSxnQ0FBZ0MsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQzFGLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLCtCQUErQixDQUFDOzs7OztBQUd6RTs7R0FFRztBQVFILE1BQU0sT0FBTyxzQ0FDWCxTQUFRLGNBQWM7SUFtQnRCLFlBQ0UsY0FBaUMsRUFDckIsUUFBMEI7UUFFdEMsS0FBSyxFQUFFLENBQUM7UUFsQkgsZUFBVSxHQUFHLElBQUksZ0JBQWdCLENBQUM7WUFDdkMsSUFBSSxFQUFFLElBQUksa0JBQWtCLEVBQUU7U0FDL0IsQ0FBQyxDQUFDO1FBRUksMkJBQXNCLEdBQWtDLEVBQUUsQ0FBQztRQUtsRSxpRUFBbUQ7UUFDbkQsc0VBQTJEO1FBQzNELHlFQUFtQztRQUNuQyxtRUFBdUM7UUFRckMsdUJBQUEsSUFBSSwwREFBbUIsY0FBYyxNQUFBLENBQUM7UUFDdEMsdUJBQUEsSUFBSSxvREFBYSxRQUFRLE1BQUEsQ0FBQztJQUM1QixDQUFDO0lBRUQ7OztPQUdHO0lBQ0ksTUFBTSxDQUFDLE1BQXFDO1FBQ2pELHVCQUFBLElBQUksa0RBQVcsTUFBTSxNQUFBLENBQUM7UUFFdEIsdUJBQUEsSUFBSSx1REFBZ0Isd0JBQXdCLENBQUMsc0JBQXNCLENBQUMsTUFBTSxDQUFDLE1BQUEsQ0FBQztRQUM1RSxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUU1QyxJQUFJLE9BQU8sRUFBRTtZQUNYLFFBQVEsdUJBQUEsSUFBSSwyREFBYSxFQUFFO2dCQUN6QixLQUFLLGdDQUFnQyxDQUFDLE1BQU07b0JBQzFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLENBQUM7b0JBQzVCLE1BQU07Z0JBQ1IsS0FBSyxnQ0FBZ0MsQ0FBQyxPQUFPO29CQUMzQyxPQUFPLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQztvQkFDbkMsTUFBTTtnQkFDUixLQUFLLGdDQUFnQyxDQUFDLFdBQVcsQ0FBQztnQkFDbEQsS0FBSyxnQ0FBZ0MsQ0FBQyxTQUFTLENBQUM7Z0JBQ2hEO29CQUNFLE9BQU8sQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO29CQUMvQixNQUFNO2FBQ1Q7WUFDRCxJQUFJLHVCQUFBLElBQUksc0RBQVEsQ0FBQyxzQkFBc0IsRUFBRSxRQUFRLEVBQUU7Z0JBQ2pELE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQzthQUNuQjtTQUNGO1FBQ0QsdUJBQUEsSUFBSSw4REFBZ0IsQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUVwQyxJQUFJLENBQUMsc0JBQXNCLEdBQUcsdUJBQUEsSUFBSSxzREFBUSxDQUFDLHNCQUFzQixJQUFJLEVBQUUsQ0FBQztRQUN4RSxJQUFJLENBQUMsV0FBVyxHQUFHLHVCQUFBLElBQUksc0RBQVEsQ0FBQyxNQUFNLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDeEQsSUFBSSxDQUFDLHlCQUF5QixHQUFHLElBQUksQ0FBQyxXQUFXLEdBQUcsQ0FBQyxDQUFDO1FBQ3RELElBQUksQ0FBQyx1QkFBdUIsR0FBSSx1QkFBQSxJQUFJLHNEQUFRLENBQUMsSUFBSSxDQUFDLFNBQW9CLEdBQUcsQ0FBQyxDQUFDO1FBQzNFLHVCQUFBLElBQUksd0RBQVUsRUFBRSxjQUFjLENBQUMsU0FBUyxDQUFDLENBQUMsYUFBYSxFQUFFLEVBQUU7WUFDekQsSUFBSSxhQUFhLENBQUMsZUFBZSxDQUFDLEtBQUssQ0FBQyxJQUFJLEtBQUssUUFBUSxFQUFFO2dCQUN6RCxJQUFJLENBQUMseUJBQXlCLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQztnQkFDbEQsSUFBSSxDQUFDLHVCQUF1QixHQUFHLHVCQUFBLElBQUksc0RBQVEsRUFBRSxJQUFJLEVBQUUsU0FBUyxDQUFDO2FBQzlEO2lCQUFNO2dCQUNMLElBQUksQ0FBQyx5QkFBeUI7b0JBQzVCLElBQUksQ0FBQyxXQUFXLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLEdBQUcsQ0FBQyxDQUFDO2dCQUNwRSxJQUFJLENBQUMsdUJBQXVCLEdBQUcsd0JBQXdCLENBQUMsY0FBYyxDQUNwRSx1QkFBQSxJQUFJLHNEQUFRLEVBQUUsSUFBSSxDQUFDLFNBQVMsRUFDNUIsQ0FBQyxDQUNGLENBQUM7YUFDSDtRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVEOztPQUVHO0lBQ0ksZ0JBQWdCO1FBQ3JCLE1BQU0saUJBQWlCLEdBQUcsSUFBSSxDQUFDLGVBQWUsRUFBRSxhQUVuQyxDQUFDO1FBRWQsSUFBSSxpQkFBaUIsRUFBRTtZQUNyQixpQkFBaUIsQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUUxQix1SkFBdUo7WUFDdkosb01BQW9NO1lBQ3BNLElBQUksdUJBQUEsSUFBSSwyREFBYSxLQUFLLGdDQUFnQyxDQUFDLE9BQU8sRUFBRTtnQkFDbEUsU0FBUyxDQUFDLGlCQUFpQixFQUFFLE1BQU0sQ0FBQztxQkFDakMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO3FCQUNiLFNBQVMsQ0FBQyxHQUFHLEVBQUU7b0JBQ2QsaUJBQWlCLENBQUMsYUFBYSxDQUFDLElBQUksS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7Z0JBQ3ZELENBQUMsQ0FBQyxDQUFDO2dCQUNMLGlCQUFpQixDQUFDLE1BQU0sRUFBRSxDQUFDO2dCQUUzQixNQUFNLFNBQVMsR0FBRyx1QkFBQSxJQUFJLHNEQUFRLEVBQUUsU0FBUyxDQUFDO2dCQUUxQyxJQUFJLFNBQVMsRUFBRTtvQkFDYixpQkFBaUIsQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLENBQUM7b0JBQzFDLCtDQUErQztvQkFDL0MsaUJBQWlCLENBQUMsaUJBQWlCLENBQ2pDLFNBQVMsQ0FBQyxNQUFNLEVBQ2hCLFNBQVMsQ0FBQyxNQUFNLENBQ2pCLENBQUM7aUJBQ0g7YUFDRjtZQUVELElBQUksdUJBQUEsSUFBSSwyREFBYSxLQUFLLGdDQUFnQyxDQUFDLFdBQVcsRUFBRTtnQkFDdEUsaUJBQWlCLENBQUMsTUFBTSxFQUFFLENBQUM7YUFDNUI7U0FDRjtJQUNILENBQUM7SUFFRDs7T0FFRztJQUNJLFFBQVE7UUFDYixJQUFJLENBQUMsZUFBZSxFQUFFLGFBQWEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUMzQyxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFFLEtBQUssQ0FBQztJQUM1QyxDQUFDOzs7bUlBNUhVLHNDQUFzQzt1SEFBdEMsc0NBQXNDLHNMQVlFLFVBQVUsb0RDNUMvRCw4dUJBc0JBOzJGRFVhLHNDQUFzQztrQkFQbEQsU0FBUzsrQkFDRSxvQ0FBb0MsbUJBRzdCLHVCQUF1QixDQUFDLE1BQU0saUJBQ2hDLGlCQUFpQixDQUFDLElBQUk7OzBCQXdCbEMsUUFBUTs0Q0FUSixlQUFlO3NCQURyQixTQUFTO3VCQUFDLDhCQUE4QixFQUFFLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBPcHRpb25hbCxcbiAgVmlld0NoaWxkLFxuICBWaWV3RW5jYXBzdWxhdGlvbixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBVbnR5cGVkRm9ybUNvbnRyb2wsIFVudHlwZWRGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBTa3lUaGVtZVNlcnZpY2UgfSBmcm9tICdAc2t5dXgvdGhlbWUnO1xuXG5pbXBvcnQgeyBJQ2VsbEVkaXRvckFuZ3VsYXJDb21wIH0gZnJvbSAnYWctZ3JpZC1hbmd1bGFyJztcbmltcG9ydCB7IFBvcHVwQ29tcG9uZW50IH0gZnJvbSAnYWctZ3JpZC1jb21tdW5pdHknO1xuaW1wb3J0IHsgZnJvbUV2ZW50IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBmaXJzdCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgU2t5Q2VsbEVkaXRvckRhdGVwaWNrZXJQYXJhbXMgfSBmcm9tICcuLi8uLi90eXBlcy9jZWxsLWVkaXRvci1kYXRlcGlja2VyLXBhcmFtcyc7XG5pbXBvcnQgeyBTa3lBZ0dyaWRDZWxsRWRpdG9ySW5pdGlhbEFjdGlvbiB9IGZyb20gJy4uLy4uL3R5cGVzL2NlbGwtZWRpdG9yLWluaXRpYWwtYWN0aW9uJztcbmltcG9ydCB7IFNreUFnR3JpZENlbGxFZGl0b3JVdGlscyB9IGZyb20gJy4uLy4uL3R5cGVzL2NlbGwtZWRpdG9yLXV0aWxzJztcbmltcG9ydCB7IFNreUFnR3JpZERhdGVwaWNrZXJQcm9wZXJ0aWVzIH0gZnJvbSAnLi4vLi4vdHlwZXMvZGF0ZXBpY2tlci1wcm9wZXJ0aWVzJztcblxuLyoqXG4gKiBAaW50ZXJuYWxcbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2t5LWFnLWdyaWQtY2VsbC1lZGl0b3ItZGF0ZXBpY2tlcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9jZWxsLWVkaXRvci1kYXRlcGlja2VyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vY2VsbC1lZGl0b3ItZGF0ZXBpY2tlci5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbn0pXG5leHBvcnQgY2xhc3MgU2t5QWdHcmlkQ2VsbEVkaXRvckRhdGVwaWNrZXJDb21wb25lbnRcbiAgZXh0ZW5kcyBQb3B1cENvbXBvbmVudFxuICBpbXBsZW1lbnRzIElDZWxsRWRpdG9yQW5ndWxhckNvbXBcbntcbiAgcHVibGljIGNvbHVtbldpZHRoOiBudW1iZXIgfCB1bmRlZmluZWQ7XG4gIHB1YmxpYyBjb2x1bW5XaWR0aFdpdGhvdXRCb3JkZXJzOiBudW1iZXIgfCB1bmRlZmluZWQ7XG4gIHB1YmxpYyBlZGl0b3JGb3JtID0gbmV3IFVudHlwZWRGb3JtR3JvdXAoe1xuICAgIGRhdGU6IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2woKSxcbiAgfSk7XG4gIHB1YmxpYyByb3dIZWlnaHRXaXRob3V0Qm9yZGVyczogbnVtYmVyIHwgbnVsbCB8IHVuZGVmaW5lZDtcbiAgcHVibGljIHNreUNvbXBvbmVudFByb3BlcnRpZXM6IFNreUFnR3JpZERhdGVwaWNrZXJQcm9wZXJ0aWVzID0ge307XG5cbiAgQFZpZXdDaGlsZCgnc2t5Q2VsbEVkaXRvckRhdGVwaWNrZXJJbnB1dCcsIHsgcmVhZDogRWxlbWVudFJlZiB9KVxuICBwdWJsaWMgZGF0ZXBpY2tlcklucHV0OiBFbGVtZW50UmVmIHwgdW5kZWZpbmVkO1xuXG4gICNwYXJhbXM6IFNreUNlbGxFZGl0b3JEYXRlcGlja2VyUGFyYW1zIHwgdW5kZWZpbmVkO1xuICAjdHJpZ2dlclR5cGU6IFNreUFnR3JpZENlbGxFZGl0b3JJbml0aWFsQWN0aW9uIHwgdW5kZWZpbmVkO1xuICAjY2hhbmdlRGV0ZWN0b3I6IENoYW5nZURldGVjdG9yUmVmO1xuICAjdGhlbWVTdmM6IFNreVRoZW1lU2VydmljZSB8IHVuZGVmaW5lZDtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBjaGFuZ2VEZXRlY3RvcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgQE9wdGlvbmFsKCkgdGhlbWVTdmM/OiBTa3lUaGVtZVNlcnZpY2VcbiAgKSB7XG4gICAgc3VwZXIoKTtcblxuICAgIHRoaXMuI2NoYW5nZURldGVjdG9yID0gY2hhbmdlRGV0ZWN0b3I7XG4gICAgdGhpcy4jdGhlbWVTdmMgPSB0aGVtZVN2YztcbiAgfVxuXG4gIC8qKlxuICAgKiBhZ0luaXQgaXMgY2FsbGVkIGJ5IGFnR3JpZCBvbmNlIGFmdGVyIHRoZSBlZGl0b3IgaXMgY3JlYXRlZCBhbmQgcHJvdmlkZXMgdGhlIGVkaXRvciB3aXRoIHRoZSBpbmZvcm1hdGlvbiBpdCBuZWVkcy5cbiAgICogQHBhcmFtIHBhcmFtcyBUaGUgY2VsbCBlZGl0b3IgcGFyYW1zIHRoYXQgaW5jbHVkZSBkYXRhIGFib3V0IHRoZSBjZWxsLCBjb2x1bW4sIHJvdywgYW5kIGdyaWQuXG4gICAqL1xuICBwdWJsaWMgYWdJbml0KHBhcmFtczogU2t5Q2VsbEVkaXRvckRhdGVwaWNrZXJQYXJhbXMpOiB2b2lkIHtcbiAgICB0aGlzLiNwYXJhbXMgPSBwYXJhbXM7XG5cbiAgICB0aGlzLiN0cmlnZ2VyVHlwZSA9IFNreUFnR3JpZENlbGxFZGl0b3JVdGlscy5nZXRFZGl0b3JJbml0aWFsQWN0aW9uKHBhcmFtcyk7XG4gICAgY29uc3QgY29udHJvbCA9IHRoaXMuZWRpdG9yRm9ybS5nZXQoJ2RhdGUnKTtcblxuICAgIGlmIChjb250cm9sKSB7XG4gICAgICBzd2l0Y2ggKHRoaXMuI3RyaWdnZXJUeXBlKSB7XG4gICAgICAgIGNhc2UgU2t5QWdHcmlkQ2VsbEVkaXRvckluaXRpYWxBY3Rpb24uRGVsZXRlOlxuICAgICAgICAgIGNvbnRyb2wuc2V0VmFsdWUodW5kZWZpbmVkKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBTa3lBZ0dyaWRDZWxsRWRpdG9ySW5pdGlhbEFjdGlvbi5SZXBsYWNlOlxuICAgICAgICAgIGNvbnRyb2wuc2V0VmFsdWUocGFyYW1zLmNoYXJQcmVzcyk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgU2t5QWdHcmlkQ2VsbEVkaXRvckluaXRpYWxBY3Rpb24uSGlnaGxpZ2h0ZWQ6XG4gICAgICAgIGNhc2UgU2t5QWdHcmlkQ2VsbEVkaXRvckluaXRpYWxBY3Rpb24uVW50b3VjaGVkOlxuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgIGNvbnRyb2wuc2V0VmFsdWUocGFyYW1zLnZhbHVlKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIGlmICh0aGlzLiNwYXJhbXMuc2t5Q29tcG9uZW50UHJvcGVydGllcz8uZGlzYWJsZWQpIHtcbiAgICAgICAgY29udHJvbC5kaXNhYmxlKCk7XG4gICAgICB9XG4gICAgfVxuICAgIHRoaXMuI2NoYW5nZURldGVjdG9yLm1hcmtGb3JDaGVjaygpO1xuXG4gICAgdGhpcy5za3lDb21wb25lbnRQcm9wZXJ0aWVzID0gdGhpcy4jcGFyYW1zLnNreUNvbXBvbmVudFByb3BlcnRpZXMgfHwge307XG4gICAgdGhpcy5jb2x1bW5XaWR0aCA9IHRoaXMuI3BhcmFtcy5jb2x1bW4uZ2V0QWN0dWFsV2lkdGgoKTtcbiAgICB0aGlzLmNvbHVtbldpZHRoV2l0aG91dEJvcmRlcnMgPSB0aGlzLmNvbHVtbldpZHRoIC0gMjtcbiAgICB0aGlzLnJvd0hlaWdodFdpdGhvdXRCb3JkZXJzID0gKHRoaXMuI3BhcmFtcy5ub2RlLnJvd0hlaWdodCBhcyBudW1iZXIpIC0gMztcbiAgICB0aGlzLiN0aGVtZVN2Yz8uc2V0dGluZ3NDaGFuZ2Uuc3Vic2NyaWJlKCh0aGVtZVNldHRpbmdzKSA9PiB7XG4gICAgICBpZiAodGhlbWVTZXR0aW5ncy5jdXJyZW50U2V0dGluZ3MudGhlbWUubmFtZSA9PT0gJ21vZGVybicpIHtcbiAgICAgICAgdGhpcy5jb2x1bW5XaWR0aFdpdGhvdXRCb3JkZXJzID0gdGhpcy5jb2x1bW5XaWR0aDtcbiAgICAgICAgdGhpcy5yb3dIZWlnaHRXaXRob3V0Qm9yZGVycyA9IHRoaXMuI3BhcmFtcz8ubm9kZT8ucm93SGVpZ2h0O1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5jb2x1bW5XaWR0aFdpdGhvdXRCb3JkZXJzID1cbiAgICAgICAgICB0aGlzLmNvbHVtbldpZHRoID09PSB1bmRlZmluZWQgPyB1bmRlZmluZWQgOiB0aGlzLmNvbHVtbldpZHRoIC0gMjtcbiAgICAgICAgdGhpcy5yb3dIZWlnaHRXaXRob3V0Qm9yZGVycyA9IFNreUFnR3JpZENlbGxFZGl0b3JVdGlscy5zdWJ0cmFjdE9yWmVybyhcbiAgICAgICAgICB0aGlzLiNwYXJhbXM/Lm5vZGUucm93SGVpZ2h0LFxuICAgICAgICAgIDNcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBhZnRlckd1aUF0dGFjaGVkIGlzIGNhbGxlZCBieSBhZ0dyaWQgYWZ0ZXIgdGhlIGVkaXRvciBpcyByZW5kZXJlZCBpbiB0aGUgRE9NLiBPbmNlIGl0IGlzIGF0dGFjaGVkIHRoZSBlZGl0b3IgaXMgcmVhZHkgdG8gYmUgZm9jdXNlZCBvbi5cbiAgICovXG4gIHB1YmxpYyBhZnRlckd1aUF0dGFjaGVkKCk6IHZvaWQge1xuICAgIGNvbnN0IGRhdGVwaWNrZXJJbnB1dEVsID0gdGhpcy5kYXRlcGlja2VySW5wdXQ/Lm5hdGl2ZUVsZW1lbnQgYXNcbiAgICAgIHwgSFRNTElucHV0RWxlbWVudFxuICAgICAgfCB1bmRlZmluZWQ7XG5cbiAgICBpZiAoZGF0ZXBpY2tlcklucHV0RWwpIHtcbiAgICAgIGRhdGVwaWNrZXJJbnB1dEVsLmZvY3VzKCk7XG5cbiAgICAgIC8vIHByb2dyYW1tYXRpY2FsbHkgc2V0IHRoZSB2YWx1ZSBvZiBpbiB0aGUgaW5wdXQ7IGhvd2V2ZXIsIGRvIG5vdCBkbyB0aGlzIHZpYSB0aGUgZm9ybSBjb250cm9sIHNvIHRoYXQgdGhlIHZhbHVlIGlzIG5vdCBmb3JtYXR0ZWQgd2hlbiBlZGl0aW5nIHN0YXJ0cy5cbiAgICAgIC8vIFdhdGNoIGZvciB0aGUgZmlyc3QgYmx1ciBhbmQgZmlyZSBhICdjaGFuZ2UnIGV2ZW50IGFzIHByb2dyYW1tYXRpYyBjaGFuZ2VzIHdvbid0IHF1ZXVlIGEgY2hhbmdlIGV2ZW50LCBidXQgd2UgbmVlZCB0byBkbyB0aGlzIHNvIHRoYXQgZm9ybWF0dGluZyBoYXBwZW5zIGlmIHRoZSB1c2VyIHRhYnMgdG8gdGhlIGNhbGVuZGFyIGJ1dHRvbi5cbiAgICAgIGlmICh0aGlzLiN0cmlnZ2VyVHlwZSA9PT0gU2t5QWdHcmlkQ2VsbEVkaXRvckluaXRpYWxBY3Rpb24uUmVwbGFjZSkge1xuICAgICAgICBmcm9tRXZlbnQoZGF0ZXBpY2tlcklucHV0RWwsICdibHVyJylcbiAgICAgICAgICAucGlwZShmaXJzdCgpKVxuICAgICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgZGF0ZXBpY2tlcklucHV0RWwuZGlzcGF0Y2hFdmVudChuZXcgRXZlbnQoJ2NoYW5nZScpKTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgZGF0ZXBpY2tlcklucHV0RWwuc2VsZWN0KCk7XG5cbiAgICAgICAgY29uc3QgY2hhclByZXNzID0gdGhpcy4jcGFyYW1zPy5jaGFyUHJlc3M7XG5cbiAgICAgICAgaWYgKGNoYXJQcmVzcykge1xuICAgICAgICAgIGRhdGVwaWNrZXJJbnB1dEVsLnNldFJhbmdlVGV4dChjaGFyUHJlc3MpO1xuICAgICAgICAgIC8vIEVuc3VyZSB0aGUgY3Vyc29yIGlzIGF0IHRoZSBlbmQgb2YgdGhlIHRleHQuXG4gICAgICAgICAgZGF0ZXBpY2tlcklucHV0RWwuc2V0U2VsZWN0aW9uUmFuZ2UoXG4gICAgICAgICAgICBjaGFyUHJlc3MubGVuZ3RoLFxuICAgICAgICAgICAgY2hhclByZXNzLmxlbmd0aFxuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgaWYgKHRoaXMuI3RyaWdnZXJUeXBlID09PSBTa3lBZ0dyaWRDZWxsRWRpdG9ySW5pdGlhbEFjdGlvbi5IaWdobGlnaHRlZCkge1xuICAgICAgICBkYXRlcGlja2VySW5wdXRFbC5zZWxlY3QoKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogZ2V0VmFsdWUgaXMgY2FsbGVkIGJ5IGFnR3JpZCB3aGVuIGVkaXRpbmcgaXMgc3RvcHBlZCB0byBnZXQgdGhlIG5ldyB2YWx1ZSBvZiB0aGUgY2VsbC5cbiAgICovXG4gIHB1YmxpYyBnZXRWYWx1ZSgpOiBEYXRlIHtcbiAgICB0aGlzLmRhdGVwaWNrZXJJbnB1dD8ubmF0aXZlRWxlbWVudC5ibHVyKCk7XG4gICAgcmV0dXJuIHRoaXMuZWRpdG9yRm9ybS5nZXQoJ2RhdGUnKT8udmFsdWU7XG4gIH1cbn1cbiIsIjxkaXZcbiAgY2xhc3M9XCJza3ktYWctZ3JpZC1jZWxsLWVkaXRvci1kYXRlcGlja2VyXCJcbiAgW2Zvcm1Hcm91cF09XCJlZGl0b3JGb3JtXCJcbiAgW3N0eWxlLndpZHRoLnB4XT1cImNvbHVtbldpZHRoV2l0aG91dEJvcmRlcnNcIlxuPlxuICA8c2t5LWRhdGVwaWNrZXJcbiAgICBkYXRhLXNreS1pZD1cImNlbGwtZGF0ZXBpY2tlclwiXG4gICAgcGlja2VyQ2xhc3M9XCJhZy1jdXN0b20tY29tcG9uZW50LXBvcHVwXCJcbiAgPlxuICAgIDxpbnB1dFxuICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiZGF0ZVwiXG4gICAgICBza3lEYXRlcGlja2VySW5wdXRcbiAgICAgIFttaW5EYXRlXT1cInNreUNvbXBvbmVudFByb3BlcnRpZXMubWluRGF0ZVwiXG4gICAgICBbbWF4RGF0ZV09XCJza3lDb21wb25lbnRQcm9wZXJ0aWVzLm1heERhdGVcIlxuICAgICAgW2RhdGVGb3JtYXRdPVwic2t5Q29tcG9uZW50UHJvcGVydGllcy5kYXRlRm9ybWF0XCJcbiAgICAgIFtzdGFydGluZ0RheV09XCJza3lDb21wb25lbnRQcm9wZXJ0aWVzLnN0YXJ0aW5nRGF5XCJcbiAgICAgIFtza3lEYXRlcGlja2VyTm9WYWxpZGF0ZV09XCJza3lDb21wb25lbnRQcm9wZXJ0aWVzLnNreURhdGVwaWNrZXJOb1ZhbGlkYXRlXCJcbiAgICAgIFtzdHlsZS5oZWlnaHQucHhdPVwicm93SGVpZ2h0V2l0aG91dEJvcmRlcnNcIlxuICAgICAgI3NreUNlbGxFZGl0b3JEYXRlcGlja2VySW5wdXRcbiAgICAvPlxuICA8L3NreS1kYXRlcGlja2VyPlxuPC9kaXY+XG4iXX0=
|
|
139
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2VsbC1lZGl0b3ItZGF0ZXBpY2tlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvYWctZ3JpZC9zcmMvbGliL21vZHVsZXMvYWctZ3JpZC9jZWxsLWVkaXRvcnMvY2VsbC1lZGl0b3ItZGF0ZXBpY2tlci9jZWxsLWVkaXRvci1kYXRlcGlja2VyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9hZy1ncmlkL3NyYy9saWIvbW9kdWxlcy9hZy1ncmlkL2NlbGwtZWRpdG9ycy9jZWxsLWVkaXRvci1kYXRlcGlja2VyL2NlbGwtZWRpdG9yLWRhdGVwaWNrZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsVUFBVSxFQUNWLFlBQVksRUFDWixTQUFTLEVBQ1QsaUJBQWlCLEVBQ2pCLE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN0RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBRy9DLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2pDLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUd2QyxPQUFPLEVBQUUsZ0NBQWdDLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUMxRixPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQzs7OztBQUd6RTs7R0FFRztBQVFILE1BQU0sT0FBTyxzQ0FDWCxTQUFRLGNBQWM7SUFz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ZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIEhvc3RMaXN0ZW5lcixcbiAgVmlld0NoaWxkLFxuICBWaWV3RW5jYXBzdWxhdGlvbixcbiAgaW5qZWN0LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFVudHlwZWRGb3JtQ29udHJvbCwgVW50eXBlZEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IFNreVRoZW1lU2VydmljZSB9IGZyb20gJ0Bza3l1eC90aGVtZSc7XG5cbmltcG9ydCB7IElDZWxsRWRpdG9yQW5ndWxhckNvbXAgfSBmcm9tICdhZy1ncmlkLWFuZ3VsYXInO1xuaW1wb3J0IHsgUG9wdXBDb21wb25lbnQgfSBmcm9tICdhZy1ncmlkLWNvbW11bml0eSc7XG5pbXBvcnQgeyBmcm9tRXZlbnQgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGZpcnN0IH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBTa3lDZWxsRWRpdG9yRGF0ZXBpY2tlclBhcmFtcyB9IGZyb20gJy4uLy4uL3R5cGVzL2NlbGwtZWRpdG9yLWRhdGVwaWNrZXItcGFyYW1zJztcbmltcG9ydCB7IFNreUFnR3JpZENlbGxFZGl0b3JJbml0aWFsQWN0aW9uIH0gZnJvbSAnLi4vLi4vdHlwZXMvY2VsbC1lZGl0b3ItaW5pdGlhbC1hY3Rpb24nO1xuaW1wb3J0IHsgU2t5QWdHcmlkQ2VsbEVkaXRvclV0aWxzIH0gZnJvbSAnLi4vLi4vdHlwZXMvY2VsbC1lZGl0b3ItdXRpbHMnO1xuaW1wb3J0IHsgU2t5QWdHcmlkRGF0ZXBpY2tlclByb3BlcnRpZXMgfSBmcm9tICcuLi8uLi90eXBlcy9kYXRlcGlja2VyLXByb3BlcnRpZXMnO1xuXG4vKipcbiAqIEBpbnRlcm5hbFxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdza3ktYWctZ3JpZC1jZWxsLWVkaXRvci1kYXRlcGlja2VyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2NlbGwtZWRpdG9yLWRhdGVwaWNrZXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9jZWxsLWVkaXRvci1kYXRlcGlja2VyLmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxufSlcbmV4cG9ydCBjbGFzcyBTa3lBZ0dyaWRDZWxsRWRpdG9yRGF0ZXBpY2tlckNvbXBvbmVudFxuICBleHRlbmRzIFBvcHVwQ29tcG9uZW50XG4gIGltcGxlbWVudHMgSUNlbGxFZGl0b3JBbmd1bGFyQ29tcFxue1xuICBwdWJsaWMgY29sdW1uV2lkdGg6IG51bWJlciB8IHVuZGVmaW5lZDtcbiAgcHVibGljIGNvbHVtbldpZHRoV2l0aG91dEJvcmRlcnM6IG51bWJlciB8IHVuZGVmaW5lZDtcbiAgcHVibGljIGVkaXRvckZvcm0gPSBuZXcgVW50eXBlZEZvcm1Hcm91cCh7XG4gICAgZGF0ZTogbmV3IFVudHlwZWRGb3JtQ29udHJvbCgpLFxuICB9KTtcbiAgcHVibGljIHJvd0hlaWdodFdpdGhvdXRCb3JkZXJzOiBudW1iZXIgfCBudWxsIHwgdW5kZWZpbmVkO1xuICBwdWJsaWMgc2t5Q29tcG9uZW50UHJvcGVydGllczogU2t5QWdHcmlkRGF0ZXBpY2tlclByb3BlcnRpZXMgPSB7fTtcblxuICBAVmlld0NoaWxkKCdza3lDZWxsRWRpdG9yRGF0ZXBpY2tlcklucHV0JywgeyByZWFkOiBFbGVtZW50UmVmIH0pXG4gIHB1YmxpYyBkYXRlcGlja2VySW5wdXQ6IEVsZW1lbnRSZWYgfCB1bmRlZmluZWQ7XG5cbiAgI2NhbGVuZGFyT3BlbiA9IGZhbHNlO1xuICAjcGFyYW1zOiBTa3lDZWxsRWRpdG9yRGF0ZXBpY2tlclBhcmFtcyB8IHVuZGVmaW5lZDtcbiAgI3RyaWdnZXJUeXBlOiBTa3lBZ0dyaWRDZWxsRWRpdG9ySW5pdGlhbEFjdGlvbiB8IHVuZGVmaW5lZDtcblxuICAjZWxlbWVudFJlZiA9IGluamVjdChFbGVtZW50UmVmKSBhcyBFbGVtZW50UmVmPEhUTUxFbGVtZW50PjtcbiAgI2NoYW5nZURldGVjdG9yID0gaW5qZWN0KENoYW5nZURldGVjdG9yUmVmKTtcbiAgI3RoZW1lU3ZjID0gaW5qZWN0KFNreVRoZW1lU2VydmljZSwgeyBvcHRpb25hbDogdHJ1ZSB9KSB8fCB1bmRlZmluZWQ7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoKTtcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ2ZvY3Vzb3V0JywgWyckZXZlbnQnXSlcbiAgcHVibGljIG9uRm9jdXNPdXQoZXZlbnQ6IEZvY3VzRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAoZXZlbnQudGFyZ2V0ID09PSB0aGlzLmRhdGVwaWNrZXJJbnB1dD8ubmF0aXZlRWxlbWVudCkge1xuICAgICAgdGhpcy4jc3RvcEVkaXRpbmdPbkJsdXIoKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgb25DYWxlbmRhck9wZW5DaGFuZ2UoaXNPcGVuOiBib29sZWFuKTogdm9pZCB7XG4gICAgdGhpcy4jY2FsZW5kYXJPcGVuID0gaXNPcGVuO1xuICAgIHRoaXMuI3N0b3BFZGl0aW5nT25CbHVyKCk7XG4gIH1cblxuICAvKipcbiAgICogYWdJbml0IGlzIGNhbGxlZCBieSBhZ0dyaWQgb25jZSBhZnRlciB0aGUgZWRpdG9yIGlzIGNyZWF0ZWQgYW5kIHByb3ZpZGVzIHRoZSBlZGl0b3Igd2l0aCB0aGUgaW5mb3JtYXRpb24gaXQgbmVlZHMuXG4gICAqIEBwYXJhbSBwYXJhbXMgVGhlIGNlbGwgZWRpdG9yIHBhcmFtcyB0aGF0IGluY2x1ZGUgZGF0YSBhYm91dCB0aGUgY2VsbCwgY29sdW1uLCByb3csIGFuZCBncmlkLlxuICAgKi9cbiAgcHVibGljIGFnSW5pdChwYXJhbXM6IFNreUNlbGxFZGl0b3JEYXRlcGlja2VyUGFyYW1zKTogdm9pZCB7XG4gICAgdGhpcy4jcGFyYW1zID0gcGFyYW1zO1xuXG4gICAgdGhpcy4jdHJpZ2dlclR5cGUgPSBTa3lBZ0dyaWRDZWxsRWRpdG9yVXRpbHMuZ2V0RWRpdG9ySW5pdGlhbEFjdGlvbihwYXJhbXMpO1xuICAgIGNvbnN0IGNvbnRyb2wgPSB0aGlzLmVkaXRvckZvcm0uZ2V0KCdkYXRlJyk7XG5cbiAgICBpZiAoY29udHJvbCkge1xuICAgICAgc3dpdGNoICh0aGlzLiN0cmlnZ2VyVHlwZSkge1xuICAgICAgICBjYXNlIFNreUFnR3JpZENlbGxFZGl0b3JJbml0aWFsQWN0aW9uLkRlbGV0ZTpcbiAgICAgICAgICBjb250cm9sLnNldFZhbHVlKHVuZGVmaW5lZCk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgU2t5QWdHcmlkQ2VsbEVkaXRvckluaXRpYWxBY3Rpb24uUmVwbGFjZTpcbiAgICAgICAgICBjb250cm9sLnNldFZhbHVlKHBhcmFtcy5jaGFyUHJlc3MpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIFNreUFnR3JpZENlbGxFZGl0b3JJbml0aWFsQWN0aW9uLkhpZ2hsaWdodGVkOlxuICAgICAgICBjYXNlIFNreUFnR3JpZENlbGxFZGl0b3JJbml0aWFsQWN0aW9uLlVudG91Y2hlZDpcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICBjb250cm9sLnNldFZhbHVlKHBhcmFtcy52YWx1ZSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBpZiAodGhpcy4jcGFyYW1zLnNreUNvbXBvbmVudFByb3BlcnRpZXM/LmRpc2FibGVkKSB7XG4gICAgICAgIGNvbnRyb2wuZGlzYWJsZSgpO1xuICAgICAgfVxuICAgIH1cbiAgICB0aGlzLiNjaGFuZ2VEZXRlY3Rvci5tYXJrRm9yQ2hlY2soKTtcblxuICAgIHRoaXMuc2t5Q29tcG9uZW50UHJvcGVydGllcyA9IHRoaXMuI3BhcmFtcy5za3lDb21wb25lbnRQcm9wZXJ0aWVzIHx8IHt9O1xuICAgIHRoaXMuY29sdW1uV2lkdGggPSB0aGlzLiNwYXJhbXMuY29sdW1uLmdldEFjdHVhbFdpZHRoKCk7XG4gICAgdGhpcy5jb2x1bW5XaWR0aFdpdGhvdXRCb3JkZXJzID0gdGhpcy5jb2x1bW5XaWR0aCAtIDI7XG4gICAgdGhpcy5yb3dIZWlnaHRXaXRob3V0Qm9yZGVycyA9ICh0aGlzLiNwYXJhbXMubm9kZS5yb3dIZWlnaHQgYXMgbnVtYmVyKSAtIDM7XG4gICAgdGhpcy4jdGhlbWVTdmM/LnNldHRpbmdzQ2hhbmdlLnN1YnNjcmliZSgodGhlbWVTZXR0aW5ncykgPT4ge1xuICAgICAgaWYgKHRoZW1lU2V0dGluZ3MuY3VycmVudFNldHRpbmdzLnRoZW1lLm5hbWUgPT09ICdtb2Rlcm4nKSB7XG4gICAgICAgIHRoaXMuY29sdW1uV2lkdGhXaXRob3V0Qm9yZGVycyA9IHRoaXMuY29sdW1uV2lkdGg7XG4gICAgICAgIHRoaXMucm93SGVpZ2h0V2l0aG91dEJvcmRlcnMgPSB0aGlzLiNwYXJhbXM/Lm5vZGU/LnJvd0hlaWdodDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuY29sdW1uV2lkdGhXaXRob3V0Qm9yZGVycyA9XG4gICAgICAgICAgdGhpcy5jb2x1bW5XaWR0aCA9PT0gdW5kZWZpbmVkID8gdW5kZWZpbmVkIDogdGhpcy5jb2x1bW5XaWR0aCAtIDI7XG4gICAgICAgIHRoaXMucm93SGVpZ2h0V2l0aG91dEJvcmRlcnMgPSBTa3lBZ0dyaWRDZWxsRWRpdG9yVXRpbHMuc3VidHJhY3RPclplcm8oXG4gICAgICAgICAgdGhpcy4jcGFyYW1zPy5ub2RlLnJvd0hlaWdodCxcbiAgICAgICAgICAzXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogYWZ0ZXJHdWlBdHRhY2hlZCBpcyBjYWxsZWQgYnkgYWdHcmlkIGFmdGVyIHRoZSBlZGl0b3IgaXMgcmVuZGVyZWQgaW4gdGhlIERPTS4gT25jZSBpdCBpcyBhdHRhY2hlZCB0aGUgZWRpdG9yIGlzIHJlYWR5IHRvIGJlIGZvY3VzZWQgb24uXG4gICAqL1xuICBwdWJsaWMgYWZ0ZXJHdWlBdHRhY2hlZCgpOiB2b2lkIHtcbiAgICBjb25zdCBkYXRlcGlja2VySW5wdXRFbCA9IHRoaXMuZGF0ZXBpY2tlcklucHV0Py5uYXRpdmVFbGVtZW50IGFzXG4gICAgICB8IEhUTUxJbnB1dEVsZW1lbnRcbiAgICAgIHwgdW5kZWZpbmVkO1xuXG4gICAgaWYgKGRhdGVwaWNrZXJJbnB1dEVsKSB7XG4gICAgICBkYXRlcGlja2VySW5wdXRFbC5mb2N1cygpO1xuXG4gICAgICAvLyBwcm9ncmFtbWF0aWNhbGx5IHNldCB0aGUgdmFsdWUgb2YgaW4gdGhlIGlucHV0OyBob3dldmVyLCBkbyBub3QgZG8gdGhpcyB2aWEgdGhlIGZvcm0gY29udHJvbCBzbyB0aGF0IHRoZSB2YWx1ZSBpcyBub3QgZm9ybWF0dGVkIHdoZW4gZWRpdGluZyBzdGFydHMuXG4gICAgICAvLyBXYXRjaCBmb3IgdGhlIGZpcnN0IGJsdXIgYW5kIGZpcmUgYSAnY2hhbmdlJyBldmVudCBhcyBwcm9ncmFtbWF0aWMgY2hhbmdlcyB3b24ndCBxdWV1ZSBhIGNoYW5nZSBldmVudCwgYnV0IHdlIG5lZWQgdG8gZG8gdGhpcyBzbyB0aGF0IGZvcm1hdHRpbmcgaGFwcGVucyBpZiB0aGUgdXNlciB0YWJzIHRvIHRoZSBjYWxlbmRhciBidXR0b24uXG4gICAgICBpZiAodGhpcy4jdHJpZ2dlclR5cGUgPT09IFNreUFnR3JpZENlbGxFZGl0b3JJbml0aWFsQWN0aW9uLlJlcGxhY2UpIHtcbiAgICAgICAgZnJvbUV2ZW50KGRhdGVwaWNrZXJJbnB1dEVsLCAnYmx1cicpXG4gICAgICAgICAgLnBpcGUoZmlyc3QoKSlcbiAgICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgIGRhdGVwaWNrZXJJbnB1dEVsLmRpc3BhdGNoRXZlbnQobmV3IEV2ZW50KCdjaGFuZ2UnKSk7XG4gICAgICAgICAgfSk7XG4gICAgICAgIGRhdGVwaWNrZXJJbnB1dEVsLnNlbGVjdCgpO1xuXG4gICAgICAgIGNvbnN0IGNoYXJQcmVzcyA9IHRoaXMuI3BhcmFtcz8uY2hhclByZXNzO1xuXG4gICAgICAgIGlmIChjaGFyUHJlc3MpIHtcbiAgICAgICAgICBkYXRlcGlja2VySW5wdXRFbC5zZXRSYW5nZVRleHQoY2hhclByZXNzKTtcbiAgICAgICAgICAvLyBFbnN1cmUgdGhlIGN1cnNvciBpcyBhdCB0aGUgZW5kIG9mIHRoZSB0ZXh0LlxuICAgICAgICAgIGRhdGVwaWNrZXJJbnB1dEVsLnNldFNlbGVjdGlvblJhbmdlKFxuICAgICAgICAgICAgY2hhclByZXNzLmxlbmd0aCxcbiAgICAgICAgICAgIGNoYXJQcmVzcy5sZW5ndGhcbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGlmICh0aGlzLiN0cmlnZ2VyVHlwZSA9PT0gU2t5QWdHcmlkQ2VsbEVkaXRvckluaXRpYWxBY3Rpb24uSGlnaGxpZ2h0ZWQpIHtcbiAgICAgICAgZGF0ZXBpY2tlcklucHV0RWwuc2VsZWN0KCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIGdldFZhbHVlIGlzIGNhbGxlZCBieSBhZ0dyaWQgd2hlbiBlZGl0aW5nIGlzIHN0b3BwZWQgdG8gZ2V0IHRoZSBuZXcgdmFsdWUgb2YgdGhlIGNlbGwuXG4gICAqL1xuICBwdWJsaWMgZ2V0VmFsdWUoKTogRGF0ZSB7XG4gICAgdGhpcy5kYXRlcGlja2VySW5wdXQ/Lm5hdGl2ZUVsZW1lbnQuYmx1cigpO1xuICAgIHJldHVybiB0aGlzLmVkaXRvckZvcm0uZ2V0KCdkYXRlJyk/LnZhbHVlO1xuICB9XG5cbiAgI3N0b3BFZGl0aW5nT25CbHVyKCk6IHZvaWQge1xuICAgIGlmIChcbiAgICAgICF0aGlzLiNjYWxlbmRhck9wZW4gJiZcbiAgICAgIHRoaXMuI3BhcmFtcz8uY29udGV4dC5ncmlkT3B0aW9ucy5zdG9wRWRpdGluZ1doZW5DZWxsc0xvc2VGb2N1cyAmJlxuICAgICAgIXRoaXMuI2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5tYXRjaGVzKCc6Zm9jdXMtd2l0aGluJylcbiAgICApIHtcbiAgICAgIHRoaXMuI3BhcmFtcz8uYXBpLnN0b3BFZGl0aW5nKCk7XG4gICAgfVxuICB9XG59XG4iLCI8ZGl2XG4gIGNsYXNzPVwic2t5LWFnLWdyaWQtY2VsbC1lZGl0b3ItZGF0ZXBpY2tlclwiXG4gIFtmb3JtR3JvdXBdPVwiZWRpdG9yRm9ybVwiXG4gIFtzdHlsZS53aWR0aC5weF09XCJjb2x1bW5XaWR0aFdpdGhvdXRCb3JkZXJzXCJcbj5cbiAgPHNreS1kYXRlcGlja2VyXG4gICAgZGF0YS1za3ktaWQ9XCJjZWxsLWRhdGVwaWNrZXJcIlxuICAgIHBpY2tlckNsYXNzPVwiYWctY3VzdG9tLWNvbXBvbmVudC1wb3B1cFwiXG4gICAgKG9wZW5DaGFuZ2UpPVwib25DYWxlbmRhck9wZW5DaGFuZ2UoJGV2ZW50KVwiXG4gID5cbiAgICA8aW5wdXRcbiAgICAgIGZvcm1Db250cm9sTmFtZT1cImRhdGVcIlxuICAgICAgc2t5RGF0ZXBpY2tlcklucHV0XG4gICAgICBbbWluRGF0ZV09XCJza3lDb21wb25lbnRQcm9wZXJ0aWVzLm1pbkRhdGVcIlxuICAgICAgW21heERhdGVdPVwic2t5Q29tcG9uZW50UHJvcGVydGllcy5tYXhEYXRlXCJcbiAgICAgIFtkYXRlRm9ybWF0XT1cInNreUNvbXBvbmVudFByb3BlcnRpZXMuZGF0ZUZvcm1hdFwiXG4gICAgICBbc3RhcnRpbmdEYXldPVwic2t5Q29tcG9uZW50UHJvcGVydGllcy5zdGFydGluZ0RheVwiXG4gICAgICBbc2t5RGF0ZXBpY2tlck5vVmFsaWRhdGVdPVwic2t5Q29tcG9uZW50UHJvcGVydGllcy5za3lEYXRlcGlja2VyTm9WYWxpZGF0ZVwiXG4gICAgICBbc3R5bGUuaGVpZ2h0LnB4XT1cInJvd0hlaWdodFdpdGhvdXRCb3JkZXJzXCJcbiAgICAgICNza3lDZWxsRWRpdG9yRGF0ZXBpY2tlcklucHV0XG4gICAgLz5cbiAgPC9za3ktZGF0ZXBpY2tlcj5cbjwvZGl2PlxuIl19
|